워게임
-
RSA STARTER 4 문제 개인 키 d는 해당 공용 키로 작성된 암호 텍스트를 해독하는 데 사용됩니다(메시지에 "서명"하는 데도 사용되지만 나중에 설명하겠습니다). 개인 키는 암호화 기능을 신속하게 반전시킬 수 있는 비밀 정보 또는 "트랩도어"입니다. RSA가 제대로 구현된 경우 개인 키가 없는 경우 암호를 해독하는 가장 빠른 방법은 먼저 계수를 분해하는 것입니다. RSA에서 개인 키는 N의 합계에 대한 지수 모듈의 모듈식 곱셈 역입니다. 두 소수를 고려할 때: p = 8575040833397127524899993810777 q = 1029224947942998075080348647219 지수: e = 65537 개인 키 d는 무엇입니까? 풀이 더보기 RSA에서 개인키는 지수 모듈로서 오일러 피함수의..
[Cryptohack] RSA (RSA STARTER 4, 5, 6)RSA STARTER 4 문제 개인 키 d는 해당 공용 키로 작성된 암호 텍스트를 해독하는 데 사용됩니다(메시지에 "서명"하는 데도 사용되지만 나중에 설명하겠습니다). 개인 키는 암호화 기능을 신속하게 반전시킬 수 있는 비밀 정보 또는 "트랩도어"입니다. RSA가 제대로 구현된 경우 개인 키가 없는 경우 암호를 해독하는 가장 빠른 방법은 먼저 계수를 분해하는 것입니다. RSA에서 개인 키는 N의 합계에 대한 지수 모듈의 모듈식 곱셈 역입니다. 두 소수를 고려할 때: p = 8575040833397127524899993810777 q = 1029224947942998075080348647219 지수: e = 65537 개인 키 d는 무엇입니까? 풀이 더보기 RSA에서 개인키는 지수 모듈로서 오일러 피함수의..
2023.05.15 -
RSA STARTER1 문제 및 설명 RSA의 모든 작업에는 모듈식 지수화가 포함됩니다. 모듈식 지수화는 암호학에서 광범위하게 사용되는 연산이며 일반적으로 다음과 같이 작성된다: 2^10 mod 17 이것은 어떤 수를 특정 거듭제곱(2^10 = 1024)으로 올리고 나머지 수를 다른 수만큼 취하는 것이라고 생각할 수 있다(1024 mod 17 = 4). 파이썬에는 이 작업을 수행하기 위한 기본 연산자가 있습니다: pow(기본, 지수, 계수) RSA에서 모듈식 지수화는 프라임 팩터화 문제와 함께 "트랩도어 기능"을 구축하는 데 도움이 됩니다. 이것은 한 방향으로 계산하기는 쉽지만, 올바른 정보가 없으면 역으로 계산하기가 어려운 함수이다. 그것은 우리가 메시지를 암호화할 수 있게 해주고, 오직 키를 가진 사..
[Cryptohack] RSA (RSA STARTER 1, 2, 3)RSA STARTER1 문제 및 설명 RSA의 모든 작업에는 모듈식 지수화가 포함됩니다. 모듈식 지수화는 암호학에서 광범위하게 사용되는 연산이며 일반적으로 다음과 같이 작성된다: 2^10 mod 17 이것은 어떤 수를 특정 거듭제곱(2^10 = 1024)으로 올리고 나머지 수를 다른 수만큼 취하는 것이라고 생각할 수 있다(1024 mod 17 = 4). 파이썬에는 이 작업을 수행하기 위한 기본 연산자가 있습니다: pow(기본, 지수, 계수) RSA에서 모듈식 지수화는 프라임 팩터화 문제와 함께 "트랩도어 기능"을 구축하는 데 도움이 됩니다. 이것은 한 방향으로 계산하기는 쉽지만, 올바른 정보가 없으면 역으로 계산하기가 어려운 함수이다. 그것은 우리가 메시지를 암호화할 수 있게 해주고, 오직 키를 가진 사..
2023.05.14 -
Modes of Operation Starter 문제 및 설명 이전 일련의 과제는 AES가 데이터 블록에서 키 순열을 수행하는 방법을 보여주었다. 실제로, 우리는 단일 블록보다 훨씬 더 긴 메시지를 암호화해야 한다. 작동 모드는 긴 메시지에서 AES와 같은 암호를 사용하는 방법을 설명합니다. 모든 모드는 잘못 사용하면 심각한 약점이 있습니다. 이 범주의 과제는 API와 상호 작용하고 이러한 약점을 이용할 수 있는 웹 사이트의 다른 섹션으로 이동합니다. 인터페이스를 숙지하고 다음 플래그를 사용하십시오! https://aes.cryptohack.org/block_cipher_starter/ 풀이 더보기 from Crypto.Cipher import AES KEY = ? FLAG = ? @chal.route(..
[CryptoHack] SYMMETRIC CIPHERS(Modes of Operation Starter, Symmetry)Modes of Operation Starter 문제 및 설명 이전 일련의 과제는 AES가 데이터 블록에서 키 순열을 수행하는 방법을 보여주었다. 실제로, 우리는 단일 블록보다 훨씬 더 긴 메시지를 암호화해야 한다. 작동 모드는 긴 메시지에서 AES와 같은 암호를 사용하는 방법을 설명합니다. 모든 모드는 잘못 사용하면 심각한 약점이 있습니다. 이 범주의 과제는 API와 상호 작용하고 이러한 약점을 이용할 수 있는 웹 사이트의 다른 섹션으로 이동합니다. 인터페이스를 숙지하고 다음 플래그를 사용하십시오! https://aes.cryptohack.org/block_cipher_starter/ 풀이 더보기 from Crypto.Cipher import AES KEY = ? FLAG = ? @chal.route(..
2023.05.13 -
CTRIME 문제 우리의 평문에는 중복되는 부분이 많을 수 있으니, 먼저 압축해보는 것은 어떨까요? https://aes.cryptohack.org/ctrime/ 풀이 더보기 from Crypto.Cipher import AES from Crypto.Util import Counter import zlib KEY = ? FLAG = ? @chal.route('/ctrime/encrypt//') def encrypt(plaintext): plaintext = bytes.fromhex(plaintext) iv = int.from_bytes(os.urandom(16), 'big') cipher = AES.new(KEY, AES.MODE_CTR, counter=Counter.new(128, initial_val..
[Cryptohack] SYMMETRIC CIPHERS (CTRIME)CTRIME 문제 우리의 평문에는 중복되는 부분이 많을 수 있으니, 먼저 압축해보는 것은 어떨까요? https://aes.cryptohack.org/ctrime/ 풀이 더보기 from Crypto.Cipher import AES from Crypto.Util import Counter import zlib KEY = ? FLAG = ? @chal.route('/ctrime/encrypt//') def encrypt(plaintext): plaintext = bytes.fromhex(plaintext) iv = int.from_bytes(os.urandom(16), 'big') cipher = AES.new(KEY, AES.MODE_CTR, counter=Counter.new(128, initial_val..
2023.05.12 -
Bean Counter 문제 나는 PyCrypto의 카운터 모드를 내가 원하는 것을 하기 위해 고심했고, 그래서 나는 ECB 모드에서 직접 CTR모드로 바꾸었다. 내 카운터는 암호 분석가들을 따돌리기 위해 위아래로 움직일 수 있다! 그들이 내 사진을 읽을 가능성은 없다. 풀이 더보기 from Crypto.Cipher import AES KEY = ? class StepUpCounter(object): def __init__(self, value=os.urandom(16), step_up=False): self.value = value.hex() self.step = 1 self.stup = step_up def increment(self): if self.stup: self.newIV = hex(int(..
[CryptoHack] SYMMETRIC CIPHERS(Bean Counter)Bean Counter 문제 나는 PyCrypto의 카운터 모드를 내가 원하는 것을 하기 위해 고심했고, 그래서 나는 ECB 모드에서 직접 CTR모드로 바꾸었다. 내 카운터는 암호 분석가들을 따돌리기 위해 위아래로 움직일 수 있다! 그들이 내 사진을 읽을 가능성은 없다. 풀이 더보기 from Crypto.Cipher import AES KEY = ? class StepUpCounter(object): def __init__(self, value=os.urandom(16), step_up=False): self.value = value.hex() self.step = 1 self.stup = step_up def increment(self): if self.stup: self.newIV = hex(int(..
2023.05.11 -
XOR Starter 문제 및 설명 XOR은 비트가 같으면 0을 반환하고, 그렇지 않으면 1을 반환하는 비트 연산자입니다. 교과서에서 XOR 연산자는 ⊕로 표시되지만, 대부분의 문제와 프로그래밍 언어에서 '^'이 대신 사용되는 것을 볼 수 있습니다. 더 긴 이진수의 경우, 0110 ^1010 = 1100 비트 단위로 XOR를 수행합니다. 우리는 먼저 정수를 십진법에서 이진법으로 변환하여 정수를 XOR할 수 있다. 먼저 각 문자를 유니코드 문자를 나타내는 정수로 변환하여 문자열을 XOR할 수 있습니다. 문자열 'label'과 정수 13과 XOR 하십시오. 이러한 정수를 다시 문자열로 변환하고 플래그를 crypto{new_string}(으)로 제출하십시오. 풀이 더보기 문제에서 'label'이라는 문자열을 ..
[CryptoHack] GENERAL(XOR Starter, XOR Properties, Favourite byte, 'You either know, XOR you don't', Lemur XOR)XOR Starter 문제 및 설명 XOR은 비트가 같으면 0을 반환하고, 그렇지 않으면 1을 반환하는 비트 연산자입니다. 교과서에서 XOR 연산자는 ⊕로 표시되지만, 대부분의 문제와 프로그래밍 언어에서 '^'이 대신 사용되는 것을 볼 수 있습니다. 더 긴 이진수의 경우, 0110 ^1010 = 1100 비트 단위로 XOR를 수행합니다. 우리는 먼저 정수를 십진법에서 이진법으로 변환하여 정수를 XOR할 수 있다. 먼저 각 문자를 유니코드 문자를 나타내는 정수로 변환하여 문자열을 XOR할 수 있습니다. 문자열 'label'과 정수 13과 XOR 하십시오. 이러한 정수를 다시 문자열로 변환하고 플래그를 crypto{new_string}(으)로 제출하십시오. 풀이 더보기 문제에서 'label'이라는 문자열을 ..
2023.05.10