cryptohack(3)
-
CryptoHack [crypto] Modular Exponentiation / Public Keys
Modular Exponentiation모듈러 지수 연산 문제입니다.RSA의 모든 연산은 모듈러 지수 연산을 포함한다.모듈러 지수 연산은 암호학에서 광범위하게 사용되는 연산으로, 보통 다음과 같이 표현된다 : 2^10 mod 17이는 어떤 숫자를 특정 지수만큼 제곱한 후(2^10 = 1024), 다른 숫자로 나눈 나머지를 구하는 작업(1024 mod 17 = 4)으로 생각할 수 있다. python에서는 이 작업을 수행하는 내장 연산자인 pow(base, exponent, modulus)를 제공한다.RSA에서는 모듈러 지수 연산과 소인수분해 문제를 활용하여 trapdoor function을 만든다. 이 함수는 한 방향으로는 쉽게 계산할 수 있지만, 올바른 정보를 가지고 있지 않으면 역으로 계산하기 어렵다...
2024.12.03 -
CryptoHack [crypto] Favourite byte
암호학 중에서 XOR 문제 입니다. XOR 퍼즐을 푸는 문제다.단일 바이트로 XOR을 사용하여 일부 데이터를 숨겼지만, 해당 바이트는 비밀이다.먼저 16진수부터 디코딩하는 것을 잊지마라. hex 값과 어떠한 값을 XOR 연산하면 FLAG가 되야하는데.그 어떠한 값을 모르는 상황. hex XOR ? = FLAG FLAG의 형태가 crypto로 시작하기 때문에hex 값과 1바이트씩 무차별적으로 XOR 연산을 해서crypto로 시작하는 문자열을 찾으면 된다~ 해당 조건을 python코드화 시켰다.#hex를 바이트 배열로 변환hex_bytes = bytes.fromhex("73626960647f6b206821204f21254f7d694f7624662065622127234f726927756d")for key..
2024.11.18 -
CryptoHack [crypto] XOR Properties
암호학 중에서 XOR 문제 입니다. XOR의 4가지 주요 속성을 사용하여 아래 FLAG의 값을 찾는 문제다. 1. 교환법칙: A ⊕ B = B ⊕ A교환하여 XOR 연산을 수행해도 값은 같다. 2. 결합법칙: A ⊕ (B ⊕ C) = (A ⊕ B) ⊕ C어떤 XOR 연산을 먼저 하든 값은 같다.3. 항등법칙: A ⊕ 0 = A어떠한 값과 0을 XOR 연산하면 어떠한 값 그대로이다. 4. 자기 역함수: A ⊕ A = 0똑같은 값을 XOR 연산하면 0이다. 문제풀이는 간단하다.FLAG^KEY1 ^KEY3 ^KEY2 = 04ee... 에서양 변에 ^KEY1 ^KEY3 ^KEY2를 해주면 KEY1과 KEY2, KEY3 값들이 모두 0이 되고,FLAG^0 = FLAG 이기 때문에 FLAG 값을 찾을 수 있다...
2024.11.17