암호학 - 대칭키
개요
암호학이란?
- 누군가가 가로챘을 때 알아보지 못하도록 하는 것
- caesar가 사용한 최초의 암호화 방식 (치환 : 다른 글자로 바꾸는 것)
- 평문 : attack paris next friday
- 암호문 : cvvcem rctku pgzv htkfca
- 암호화 키 : shift + 2, 복호화 키 : shift - 2 –> 서로 대칭을 이룸 (대칭키)
용어 정리
- 평문 (Plain Text) : 누구나 읽을 수 있는 글 (p1, p2, p3 …)
- 암호문 (Ciper Text) : 아무도 읽을 수 없는 글 (c1, c2, c3 …)
- 암호화 (Encryption) : 평문을 암호문으로 만드는 것
- 복호화 (Decryption) : 암호문을 평문으로 만드는 것
- 암호화 키 (Encryption Key) : 평문을 암호문으로 만드는 규칙
- 복호화 키 (Decryption Key) : 암호문을 평문으로 만드는 규칙
- 대칭 키 (Symmetric Key) : 암호화 키와 복호화 키가 서로 대칭을 이룸 = 비밀 키(Secret Key) : 사용자들이 비밀리에 보관해야 하기 때문) = 단일 키(Single Key) : 암호화 키를 알면 대칭되는 복호화키도 알 수 있기 때문 –> 사실상 하나의 키 = 세션 키 (Session Key)
대칭키 (기밀성)
- 치환 (Substitution) : 문자를 다른 문자로 바꾸는 것
- 순열 (Permutation) : 알파벳 순서를 바꾸는 것
- 평문 : attac kpari snext frida y
- 암호문 : tactaakiprestnxy
- 암호화 키 : 12345 -> 31524
- 복호화 키 : 31524 -> 12345
- 매트릭스 (Matrix)
-
가로 -> 세로로 읽도록. 이때 몇 X 몇 매트릭스인지 알 수 없도록.
- ROT13 : 알파벳을 반으로 나누어서 매칭을 시키는 방법
- 단점 : 숫자와 특수문자를 변환할 수 없음, 대소문자 구분 X
- ROT47 : 대,소,숫,특수문자를 섞어서 매칭을 시키는 방법
- 그리스, 이집트 (스키테일) –> 컴퓨터에서 사용하지 않음
- 시저의 암호화 –> 컴퓨터에서 사용되고 있음
- 종류 : DES, 3DES, AES, SEED, HIGHT, LEA, ARIA, RC6, Blowfish 등
- 대칭키의 장점과 단점
- 장점 : 암호화 / 복호화 속도가 빠름 (데이터 암호화에 사용)
- 단점
- 키 전달의 문제(직접 전달)
- 키 개수의 문제 -> 키는 n(n - 1) / 2개 필요함
대칭키의 종류
DES (Data Encryption Standard)
- 최초의 표준 대칭키, IBM의 Lucifer System을 기반으로 만듦
- NIST에서 표준으로 지정
- 2000년에 크래킹 됨 -> 표준에서 제외
- 64bit 키 중에서 56Bit만 암호화키이고 8bit 는 패리티비트(오류검사)로 구성
- 3DES : DES를 3번 반복 연산 -> 임시 표준
AES (Advanced Encryption Standard)
- 표준 대칭키 (2001 ~ 현재)
- SPN(Substitution Permutaion Network, 치환과 전치의 반복)
- 벨기에의 Rijindael을 AES로 채택(Rijmen, Daemen이 만듦)
- 128bit, 192bit, 256bit 중에 선택해서 사용
SEED : 우리나라에서 만듦(은행망에서 사용)
- 소스코드 공개 (백도어가 없음을 증명)
- AES를 100% 신뢰할 수 없기 때문
실습
ECB (electronic code book)
- hello : 98AA900AAE9856EF
- hello world : 98AA900AAE9856EF567DDC800F2609DC
- world : 567DDC800F2609DC
- 암호화 부분을 블럭 단위로 따로따로 계산해서 붙이는 방식
- 부분부분 복호화 가능해짐
CBC (Cipher Block Chaining)
- 앞의 암호문을 뒤의 평문과 XOR 연산을 한 다음, 암호화를 하는 방식
- 연쇄 효과가 생겨서 앞의 암호문을 깨지 못하면 뒤의 암호문을 깰 수 없음.
댓글남기기