본문 바로가기

암호학

(9)
[CryptoHack] Modular Arithmetic (1) from math import * print(gcd(12,8)) print(gcd(66528,52920)) https://web.archive.org/web/20230511143526/http://www-math.ucdenver.edu/~wcherowi/courses/m5410/exeucalg.html Extended Euclidean Algorithm The Extended Euclidean Algorithm As we know from grade school, when we divide one integer by another (nonzero) integer we get an integer quotient (the "answer") plus a remainder (generally a rational..
[CryptoHack] Introduction to CryptoHack (2) c = 'label' e = '' for i in c: i = ord(i) e += chr(i^13) print(e) c = 'label' print("".join(chr(ord(i)^13) for i in c)) from pwn import * c = 'label' print(xor(c, 13)) 앞의 설명과 같이 pwntool 모듈에서 xor()을 사용해 해결할 수도 있습니다. pwntool 모듈을 사용한 경우 결과가 바이트 문자열로 옴을 확인할 수 있습니다. (밑에 결과는 pwntool 모듈을 사용하지 않은 결과 입니다.) from pwn import * k1 = bytes.fromhex("a6c8b6733c9b22de7bc0253266a3867df55acde8635e19c73313") k23 = ..
[CryptoHack] Introduction to CryptoHack (1) #!/usr/bin/env python3 import sys # import this if sys.version_info.major == 2: print("You are running Python 2, which is no longer supported. Please update to Python 3.") ords = [81, 64, 75, 66, 70, 93, 73, 72, 1, 92, 109, 2, 84, 109, 66, 75, 70, 90, 2, 92, 79] print("Here is your flag:") print("".join(chr(o ^ 0x32) for o in ords)) c = [99, 114, 121, 112, 116, 111, 123, 65, 83, 67, 73, 73, 95, ..
[Dreamhack] Textbook-RSA 풀이 보호되어 있는 글입니다.
[Dreamhack] Basic_Crypto1 풀이 보호되어 있는 글입니다.
[Dreamhack] Textbook-DH 풀이 보호되어 있는 글입니다.
[암호학 이론] AES 암호화 알고리즘 2023.10.31 - [crypto] - [암호학 이론] DES 암호화 알고리즘 [암호학 이론] DES 암호화 알고리즘 - DES(Data Encryption Standard) DES 알고리즘은 위의 그림과 같이 초기 순열(Initial permutation), 총 16번의 라운드 함수, 그리고 최종 순열(Final permutation)의 과정으로 이루어져 있습니다. 또한 8바이트(64bit)를 434official.tistory.com 이번 게시물은 DES에서 발전된 알고리즘인 만큼 서로 유사한 부분들이 있습니다. 또한 이번 AES에서 쓰이는 쉬프트 연산, S-box에 대해 이전 게시물인 DES에서 이미 설명을 했기 때문에 별다른 설명을 하지 않습니다. DES 암호화 알고리즘에 대해 모르시는 분들은..
[암호학 이론] Feistel cipher - 페이스텔 구조 (Feistel cipher) 다음과 같은 구조를 페이스텔 구조(Feistel cipher)라고 합니다. 이를 바탕으로 다양한 블록 암호들이 파생되는 설계 모델입니다. 입력으로 들어오는 평문을 P(plaintext block), 평문을 암호화와 복호화 할 때 사용되는 키값을 K라고 둡니다. - 암호화 과정 (encryption process) 1. 입력으로 들어온 평문 P를 절반으로 두 블록으로 나누고 각각을 L과 R이라고 합니다. 2. 현재 라운드의 R은 다음 라운드의 L이 됩니다. 3. 현재 라운드의 L은 현재 라운드의 K와 R을 파라미터로 가진 함수 F를 실행한 결과 값과 XOR 연산을 하고 이 값이 다음 라운드의 R이 됩니다. 즉 L은 F(K,R)과 XOR한 뒤 다음 라운드의 R..
[암호학 이론] DES 암호화 알고리즘 - DES(Data Encryption Standard) DES 알고리즘은 위의 그림과 같이 초기 순열(Initial permutation), 총 16번의 라운드 함수, 그리고 최종 순열(Final permutation)의 과정으로 이루어져 있습니다. 또한 8바이트(64bit)를 한 블록으로 하는 블록 암호임을 그림을 보면 알 수 있습니다. DES 알고리즘에서 라운드 함수를 적용하는 부분을 조금 더 자세히 보면 다음과 같이 페이스텔 구조로 이루어져 있음을 알 수 있습니다. 2023.11.01 - [crypto] - [암호학 이론] Feistel cipher [암호학 이론] Feistel cipher - 페이스텔 구조 (Feistel cipher) 다음과 같은 구조를 페이스텔 구조(Feistel ciphe..