본문 바로가기
  • 適者生存

WorkOut/Dreamhack5

Cryptography | Double DES _ Exploit : Meet-in-the-middle Attack Level 1 | Double DEShttps://dreamhack.io/wargame/challenges/1118 Double DES4바이트 전수 조사 쯤이야 간단하죠! Exploit Tech: Meet in the middle attack에서 함께 실습하는 문제입니다.dreamhack.io prob.py#!/usr/bin/env python3from Crypto.Cipher import DESimport signalimport osif __name__ == "__main__": signal.alarm(15) with open("flag", "rb") as f: flag = f.read() key = b'Dream_' + os.urandom(4) + b'Hacker'.. 2024. 7. 16.
Cryptography | 현대 암호 (대칭키 & 비대칭키 암호, 기밀성/무결성/인증/부인방지) ⚠️ 고전 암호의 문제점송신자와 수신자 간 키 공유 문제▶ 카이사르(알파벳을 미는 칸의 수), 비제네르(키워드) ...대칭키 암호 시스템(Symmetric key cryptosystem)- 송신자와 수신자가 같은 키를 공유하는 암호 시스템- 사전 키 공유 과정 필요▶ 네트워크 도청 문제로 키 공유 알고리즘(Key exchange algorithm) 연구→ 1970년 중반 Diffie-Hellman 키 교환 알고리즘 등장공개키 암호 시스템(Public key cryptosystem) 등장- 송신자와 수신자가 서로 다른 키 사용하는 암호 시스템- 대칭키와 대비하여 비대칭키 암호 시스템(Asymmetric cryptography) 으로도 불림  현대 암호 🔎 케르크호프스의 원리 (Kerchhoffs' pri.. 2024. 7. 15.
Cryptography | 고전 암호 (치환 & 전치) 📌 고전 암호간단한 기계와 손으로 암복화를 수행하던 암호 치환 (Substitution) : 평문의 문자를 다른 문자로 바꾸는 것전치 (Transposition) : 평문 문자들의 위치를 바꾸는 것 ▶ 단순 고전 암호 : 치환 / 전치 中 한 가지 원리만 사용▶ 복잡한 고전 암호 : 2가지 모두 사용   ✔️ 치환 암호1. 단일 문자 치환 암호 (Monoalphabetic substitution cipher)2. 다중 문자 치환 암호 (Polyalphabetic substitution cipher)   단일 문자 치환 암호 (Monoalphabetic substitution cipher) 평문의 각 문자를 약속된 다른 문자로 치환하는 암호▶ 일대일 대응 관계 🔎 카이사르 암호 (Caesar ciphe.. 2024. 7. 7.
Cryptography | 배타적 논리합과 합동식 📌 배타적 논리합 (eXclusive OR, XOR)입력값으로 들어온 2개의 인자가 서로 다를 때, 참을 반환하는 연산주로 비트 연산으로 이루어짐 (2진법) ▶ 2개의 입력값을 2진법으로 표기, 각 자릿수 값이 다르면 1(참) / 같으면 0(거짓)입력출력000011101110 예시)$5\oplus7 = 101_2 \oplus 111_2 = 010_2 = 2$$3\oplus10 = 0011_2 \oplus 1010_2 = 1001_2 =9$ 📌 합동식두 정수 a, b 를 각각 정수 m으로 나눴을 때 나머지가 같은 식 ▶ a와 b 각각을 m으로 나눈 나머지가 같을 때, a와 b가 mod m에 대해 합동(congruent)이라 표현 예시1)7과 17은 10으로 나눈 나머지가 같으므로 7과 17은 mod 1.. 2024. 7. 7.
Cryptography | 분명히 시작은 암호학 공부였는데.. 🔑 암호학 (Cryptography) ✅ 협의 : 제3자로부터 정보를 보호하는 방법에 대한 연구 ✅ 광의 : 수신자와 송신자가 신원을 확인하는 방법, 메세지가 중간에 조작되지 않았음을 보증하는 방법 등에 대한 연구   ➕ 주요 keyword : 키 생성, 암호화, 복호화  키 생성 : 암호화와 복호화에 사용할 키를 만드는 과정암호화 : 키를 이용해 평문을 암호문으로 변환하는 과정복호화 : 송신자가 전송한 암호문을 수신자가 키를 이용해 평문으로 변환하는 과정암호 시스템 : 암호화와 복호화로 정보가 전달되는 체계  🔎 암호화와 인코딩인코딩(Encoding) : 데이터를 다른 형태로 변환하는 것※ 암호화와 인코딩의 차이점인코딩 : 데이터 기밀성을 고려하지 않아 누구나 디코딩을 통해 원문을 구할 수 있음→ .. 2024. 7. 7.