Security/암호학(Cryptography)

Security/암호학(Cryptography)

[CryptoHack] Extended GCD

개념 설명 확장된 유클리드 알고리즘 a와 b를 양의 정수로 하자. 확장된 유클리드 알고리즘은 다음과 같은 정수 u, v를 찾는 효율적인 방법이다. a*u + b*v = gcd(a,b) ! 나중에 RSA를 해독하는 방법을 배울 때, Public exponent의 modular inverse를 계산하기 위해 이 알고리즘이 필요할 것이다. 두 소수 p = 26513, q = 33221을 사용하여 다음과 같은 정수 u, v를 구한다. p*u + q*v = gcd(p, q) u와 v중 낮은 숫자를 플래그로 입력한다. ! p와 q가 소수라는 것을 알고, gcd(p, q)가 무엇이라고 생각되는가? 확장된 유클리드 알고리즘에 대한 자세한 내용은 아래 페이지를 참조하자. http://www-math.ucdenver.ed..

Security/암호학(Cryptography)

[CryptoHack] Greatest Common Divisor

Modular Arithmetic의 시작 개념 설명 (Greatest Common Divisor을 최대공약수라고 한다.) 최대공약수(GCD)는 두개의 양의 정수 (a, b)를 나누는 가장 큰 약수로 알려져있다. a=12, b=8의 경우 우리는 a: {1, 2, 3, 4, 6, 12}, b: {1, 2, 4, 8}로 약수를 계산할 수 있다. 이 둘을 비교하면 우리는 gcd(a, b) = 4라는 것을 알 수 있다. 이제 a=11, b=17을 예로 들어보자. a와 b는 모두 소수이다. 소수는 자기 자신과 1을 약수로 가지므로 gcd(a, b) = 1이다. 우리는 임의의 두 정수 a, b에 대해 gcd(a,b) = 1이면 a와 b는 서로소(coprime integers)라고 말한다. a와 b가 소수라면(a !=..

Security/암호학(Cryptography)

[CryptoHack] You either know, XOR you don't

설명 https://cryptohack.org/courses/intro/xorkey1/ CryptoHack – Home A fun, free platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard? cryptohack.org 내 비밀키로 암호화 했는데, 당신은 절대 추측할 수 없을 것이다. ! 플래그 형식과 이 과제에 도움이 될 수 있는 방법을 기억하라. 예제 풀이 0e0b213f26041e480b26217f27342e175d0e070a3c5b103e2526217f27342e175d0e077e263451150104 from ..

Security/암호학(Cryptography)

[CryptoHack] Favourite byte

설명 https://cryptohack.org/courses/intro/xorkey0/ CryptoHack – Home A fun, free platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard? cryptohack.org 다음 몇 과제에서는 이전에 배운 내용을 사용하여 XOR 퍼즐을 더 풀어볼 것이다. 단일 바이트로 XOR을 사용하여 데이터를 숨겼지만 그 바이트는 비밀이다. 16진수부터 디코딩하는 것을 잊지 마십시오. 예제 풀이 73626960647f6b206821204f21254f7d694f7624662065622127..

Security/암호학(Cryptography)

[CryptoHack] XOR Properties

개념 설명 https://cryptohack.org/courses/intro/xor1/ CryptoHack – Home A fun, free platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard? cryptohack.org 지난 과제에서는 XOR이 비트 수준에서 어떻게 동작하는지 보았다. 여기서는 XOR 작업의 속성을 다루고 플래그를 암호화한 일련의 작업을 무력화하는데 사용할 것이다. 이것이 어떻게 작동하는지에 대한 직관을 얻는 것은 나중에 특히 블록 암호 범주에서 실제 암호 시스템을 공격할 떄 크게 도움이 될 것이다. X..

Security/암호학(Cryptography)

[CryptoHack] XOR Starter

개념 설명 https://cryptohack.org/courses/intro/xor0/ CryptoHack – Home A fun, free platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard? cryptohack.org XOR은 비트가 같으면 0을 반환하고 그렇지 않으면 1을 반혼하는 비트 연산자이다. 교과서에서 XOR 연산자는 ⊕로 표시되지만, 대부분의 과제와 프로그래밍 언어에서는 caret ^이 대신 사용된다. 더 긴 이진수의 경우 비트별 XOR: 0110 ^ 1010 = 1100이다. 우리는 먼저 정수를 십진법에서..

Security/암호학(Cryptography)

[CryptoHack] Bytes and Big Integers

개념 설명 https://cryptohack.org/courses/intro/enc4/ CryptoHack – Home A fun, free platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard? cryptohack.org RSA와 같은 암호 시스템은 숫자로 작동하지만 메세지는 문자로 구성된다. 우리가 어떻게 수학적 연산이 적용되도록 메세지를 숫자로 변환해야 할까? 가장 일반적인 방법은 메세지의 ordinal(서수) 바이트를 가져와 16진수로 변환하고 연결하는 것이다. 이는 base-16/hexadecimal number로..

Security/암호학(Cryptography)

[CryptoHack] Base64

개념 설명 또 다른 일반적인 인코딩 표현 방식은 Base64로, 64자의 알파벳을 사용하여 이진 데이터를 ASCII로 표현할 수 있다. Base64 문자열의 한 문자는 6개의 이진 숫자(bits)를 인코딩하므로 Base64의 4문자는 3개의 8bit 바이트를 인코딩한다. (6*4 == 8*3) Base64는 온라인에서 가장 일반적으로 사용되므로 이미지와 같은 이진 데이터를 HTML 또는 CSS 파일에 쉽게 포함할 수 있다. ! python에서 base64 모듈을 import 후 base64.b64encode() 함수를 사용할 수 있다. 이 문제에서는 설명에 따라 hex를 먼저 디코딩해야 한다. 예제 import base64 cipher = '72bca9b68fc16ac7beeb8f849dca1d8a783..

그믐​
'Security/암호학(Cryptography)' 카테고리의 글 목록 (5 Page)