문제 설명 OFB, CTR 또는 CFB와 같은 일부 블록 사이퍼 모드는 블록 사이퍼를 스트림 사이퍼로 변환합니다. 스트림 암호의 기본 개념은 의사 랜덤 키 스트림을 생성한 다음 일반 텍스트와 XOR하는 것입니다. 스트림 암호의 한 가지 장점은 패딩 없이 임의의 길이의 평문으로 작업할 수 있다는 것입니다. OFB는 모호한 암호 모드로, 요즘에는 CTR을 사용하는 것보다 실질적인 이점이 없습니다. 이번 챌린지는 OFB의 특이한 속성을 소개합니다. from Crypto.Cipher import AES KEY = ? FLAG = ? @chal.route('/symmetry/encrypt///') def encrypt(plaintext, iv): plaintext = bytes.fromhex(plaintext) ..
제 웹사이트를 위한 쿠키를 얻을 수 있지만 flag를 읽는 데 도움이 되지 않습니다... 제 생각에는 말이죠. from Crypto.Cipher import AES import os from Crypto.Util.Padding import pad, unpad from datetime import datetime, timedelta KEY = ? FLAG = ? @chal.route('/flipping_cookie/check_admin///') def check_admin(cookie, iv): cookie = bytes.fromhex(cookie) iv = bytes.fromhex(iv) try: cipher = AES.new(KEY, AES.MODE_CBC, iv) decrypted = cipher.d..
HTML 삽입 미리보기할 수 없는 소스 폴라드의 p-1 알고리즘? 폴라드의 p-1알고리즘은 폴라드가 1974년 폴라드가 발견한 소인수분해 알고리즘이다. 특수한 유형에서 어떤 수 n-1의 소인수들이 매우 많거나 작은 소인수들이 많은 자연수에 적합하다고 한다. 이름이 p-1인 이유로 주어진 정수 n을 소인수분해 하기 위해 n의 소인수 p를 알아내고자, 페르마의 소정리에서 p-1을 활용하기 때문이다. 원리 pollard's p-1 algorithm은 페르마의 소정리를 이용한다. n이 p라는 소인수를 가진다고 하자. p와 서로소인 a에 대해서, 페르마의 소정리 $a^{p-1} \equiv 1 \pmod p$가 성립한다. a를 보통 2로 많이 사용한다. $a^{p-1} \equiv 1 \pmod p$ 이므로 $a..
HTML 삽입 미리보기할 수 없는 소스 https://en.wikipedia.org/wiki/Fermat%27s_factorization_method Fermat's factorization method - Wikipedia From Wikipedia, the free encyclopedia Fermat's factorization method, named after Pierre de Fermat, is based on the representation of an odd integer as the difference of two squares: N = a 2 − b 2 . {\displaystyle N=a^{2}-b^{2}.} That difference is algebr en.wikipedia.org ..
문제 설명 여기서는 CBC로 암호화할 수 있지만 ECB로만 해독할 수 있습니다. 서로 다른 모드이기 때문에 약점이 될 수는..없겠죠..? Play at https://aes.cryptohack.org/ecbcbcwtf/ ECB CBC WTF Hex Encoder/Decoder This is a convenient encoder designed for ASCII Hex translations. It won't work for decoding hex to byte streams and will just show [unprintable] in that case. aes.cryptohack.org 문제 풀이 from Crypto.Cipher import AES KEY = ? FLAG = ? @chal.route..
개념 설명 ECB is the most simple mode, with each plaintext block encrypted entirely independently. In this case, your input is prepended to the secret flag and encrypted and that's it. We don't even provide a decrypt function. Perhaps you don't need a padding oracle when you have an "ECB oracle"? ECB는 가장 간단한 모드로, 각 일반 텍스트 블록이 완전히 독립적으로 암호화된다. 이 경우 입력 내용이 비밀 플래그 앞에 추가되고 암호화되며, 그게 전부이다. 암호 해독 기능도 제공하지..
개념 설명 대칭 키 알고리즘의 키는 비밀번호나 기타 예측 가능한 데이터가 아닌 무작위 바이트여야 한다. 무작위 바이트는 암호학적으로 안전한 의사 난수 생성기(CSPRNG)를 사용하여 생성해야 한다. 어떤 식으로든 키를 예측할 수 있는 경우 암호의 보안 수준이 낮아지고 암호 텍스트에 엑세스한 공격자가 암호를 해독할 수 있다. ! PRNG는 Pseudo RandomNumber Generator이고 CSPRNG는 앞에 Cryptography Secure가 붙는다. 난수 생성에 대해서는 다른 글에서 다뤄보자. 키가 무작위 바이트처럼 보인다고 해서 반드시 그게 무작위라는 것은 아니다. 이 경우에 키는 해싱 함수를 사용하여 비밀번호에서 파생된 것이므로 암호문 해독이 가능하다. 이 챌린지의 경우, 엔드포인트*에 대한..
개념 설명(?) 이전 과제에서는 AES가 데이터 블록에서 키 순열을 수행하는 방법을 보여주었다. 실제로는 단일 블록보다 더 긴 메시지를 암호화해야한다. 작동 모드는 더 긴 메시지에 AES와 같은 암호를 사용하는 방법을 설명한다. 모든 모드에는 잘못 사용할 경우 심각한 약점이 있다. 이 카테고리의 도전 과제는 API와 상호작용하고 이러한 약점을 악용할 수 있는 웹 사이트의 다른 다른 섹션으로 이동한다. 인터페이스에 익숙해져서 다음 플래그에 도전해보자. https://aes.cryptohack.org/block_cipher_starter/ Modes of Operation Starter Description The previous set of challenges showed how AES performs a..