카테고리 없음
암호학 기초와 고전 암호 기술 정리
엔지니어 E
2026. 2. 23. 11:51
반응형
1. 암호의 정의와 목적: 암호는 왜 필요한가?
| 암호는 통신 당사자들끼리만 아는 비밀스러운 신호나 부호를 다루는 기술 기밀성(Confidentiality): 평문이 허락되지 않은 사람에게 노출되는 것을 방지함 무결성(Integrity): 전송 과정에서 데이터가 제 3자에 의해 조작 되지 않았음을 보장함 복원성의 법칙: 암호문을 다시 평문으로 되돌릴 수 없다면(복호화 불가), 그것은 암호가 아니다 |
2. 암호 통신의 기본 메커니즘
| 암호 시스템은 다음과 같은 흐름으로 작동하며, 알고리즘의 안정성은 오랜 시간 검증을 통해 입증 되어야 한다 1. 평문(Plaintext): 메시지 원본 2. 암호화(Encryption): 암호 알고리즘과 암호화 키를 사용해 평문을 암호문으로 변환 3. 암호문(Ciphertext): 내용을 알 수 없게 변형된 데이터 4. 복호화(Decryption): 복호 알고리즘과 복호화 키를 사용해 평문으로 복원 5. 암호해독(Cryptanalysis): 공격자가 정당한 키 없이 평문을 유추하려는 시도 |
3. 현대 암호 시스템의 분류(Key&Layer)
| 1) 키의 수에 따른 분류 - 대칭키(관용 암호): 암호화/복호화에 동일한 키 사용. 속도가 빠르지만 키 분배가 어렵다 - 공개키(비대칭키): 서로 다른 키 쌍(Public/Private) 사용. 키 관리가 쉽고, 디지털 서명이 가능하지만 속도가 느림 2) 암호화 위치에 따른 분류 - 단대단 암호(End-to-End): OSI 상위 계층(7,6) 에서 수행. 사용자 프로세스가 직접 담당하여 데이터 전체의 비밀성 유지 - 링크 암호(Link): OSI 하위 계층(1,2)에서 수행. 인접 노드 간 보안에 유리하지만, 중간 노드(라우터 등)에서 데이터가 노출될 위험이 있음 |
4. 암호 설계의 4대 원리
| 평문을 암호화할 때 사용하는 핵심 연산 원리 1. 치환(Substitution): 각 원소를 다른 원소로 바꿈 2. 전치(Transposition): 원소의 위치를 재배열함 3. 혼합(Confusion): 평문 비트와 암호 키의 관계를 복잡하게 만듦 4. 확산(Diffusion): 평문의 통계적 특성을 암호문 전체로 흩뜨림 |
5. 고전 암호 기술의 진화
| 1) 스테가노그래피(Steganography) 메세지의 의미가 아니라 존재 자체를 숨기는 방법(예: 투명 잉크, 핀 구멍, 이미지 내 데이터 은닉) 장점: 생성이 쉬움 단점: 방법이 노출되면 재사용이 불가함. 숨길 정보량 대비 데이터 크기가 큼 2) 치환 암호의 발전과 한계 시저 암호(Caesar): 알파벳을 k칸씩 이동함. 전수 조사에 매우 취약 (경우의 수 25개) 단일 치환: 26자를 무작위 대응함. 키 공간은 넓으남 문자 출현 빈도수 분석에 쉽게 무너짐 다중 치환(Playfair): 빈도 분석을 피하기 위해 두 글자씩 묶어 5x5 행렬로 암호화함 |

6. Playfair 암호 개념정리와 실습
| 1. 개요 정의: 1854년 찰스 휘트스톤이 발명한 대칭키 암호. 두 글자(Digraph)를 한 쌍으로 묶어서 암호화하는 방식 특징: 단일 문자 암호보다 빈도 분석이 어려워 보안성이 높으며 5x5 행렬을 기본판으로 사용함 2. 5x5 암호 행렬 구성 원리 이미지 속 "monarchy" 키워드를 기준으로 행렬이 만들어지는 과정 1. 키워드 배치: 중복된 문자를 제외하고 왼쪽 상단부터 키워드(M-O-N-A-R-C-H-Y) 를 채운다 2. 잔여 알파벳 채우기: 키워드에 사용되지 않은 알파벳을 순서대로 빈칸에 채운다 3. 특수 규칙: 알파벳은 총 26자 이지만 칸은 25개 이므로, I와 J를 같은 칸에 배치하여 처리 한다 3. 암호화 3개 규칙(핵심 원리) 평문을 두 글자씩 나누었을 때, 행렬에서의 위치에 따라 다음 규칙을 적용함 ![]() 4. 전처리 규칙 암호화를 시작하기 전, 문장을 다음과 같이 다듬어야 한다 1. 공백 및 기호 제거: 순수 알파벳만 남김 2. 중복 문자 처리: 같은 쌍 안에 같은 문자가 오면 (ex.EE) 사이에 X나 Q를 넣어 분리함 (ex.EX) 3. 홀수 글자 처리: 전체 글자 수가 홀수일 경우 마지막에 의미 없는 문자(x)를 붙여 짝을 맞춘다 |
![]() 1. the quick brown fox jumps over the lazy dog - 원문 2. th eq ui ck br ow nf ox ju mp so ve rt he la zy do gx - 2글자씩 띄어쓰기 3. PD GL XE DE DA NV OG AV EX OL PA UF DZ CF SM WD HR IW * th에서 사진에서 t는 h와 만나는 점이 p이고, h는 t와 만나는 점이 d이므로 PD가 된다 4. PDGLXEDEDANVOGAVEXOLPAUFDZCFSMWDHRIW - 다시 공백을 제거해서 하나의 암호문으로 완성 |

