1. 암호의 개념과 원리
암호화와 복호화
- 암호문
- 비밀을 유지하기 위해 당사자만 알 수 있도록 꾸민 약속 기호
- 암호는 암호문이 노출되더라도 정보를 숨길 수 있어야 함
- 암호화 : 평문 → 암호문
- 복호화 : 암호문 → 평문
- 암호화 알고리즘 : 암호화나 복호화를 수행할 때 양쪽이 말고 있어야 할 수단
- 암호화 키 : 약속한 규칙
- 암호화 방식 - 전치법
- 단순히 메시지에 들어 있는 문자 위치를 바꾸는 방법
- 미리 정해둔 문자 배열 규칙으로 암호화, 복호화 수행
- 암호화 방식 - 대체법
- 메시지의 글자를 다른 글자로 대체하여 암호화
- 전치법의 문제 해결하기 위해 등장
- 단일 치환, 다중치환
대체법
- 단일 치환
- 모노 알파베틱 암호
- 다중 치환 암호화
- 암호화 키와의 매핑에 따라 알파벳 하나가 여러 가지 다른 알파벳으로 대체되어 암호화되는 것
- 비즈네르 암호화
- 암호화 과정
- 암호화하려는 평문 : ‘wish to be free from myself’
- 암호화 키 : ‘secret is beautiful’
- 평문의 첫 문자인 w를 비즈네르 표의 가로축에서 찾고 암호화 키의 첫 문자인 s를 세로축 에서 찾으면 O에 대칭
- 평문의 두 번째 문자 i와 암호화 키의 두 번째 문자 e를 비즈네르 표에서 찾으면 M에 대칭
- ‘wish to be free from myself’ → ‘OMUY XH JW GVEY YZTG XQWGCJ’
- 다중 치환
- 플레이페어 암호
- 2개로 이뤄진 문자 쌍을 다른 문자 쌍으로 대체
- 암호화키(ASSASSINATOR)에서 중복 문자를 제거한 문자(ASINTOR)를 5x5 정사각형에 순서대로 배열하고 나머지 알파벳을 차례대로 배열
- I와 J 혹은 Q와 Z를 같은 칸에 넣음
최초의 암호
- 스테가노그래피 : 실제로 전달하고자 하는 정보 자체를 숨기는 것
- 전치법 : 단순히 메시지에 있는 문자의 위치를 바꾸는 방법
- 스키테일
2. 대칭 암호화 방식
- 암호학적 강도를 높일 떄는 혼돈과 확산 이용
- 혼돈 : 암호문의 통계적 성질과 평무의 통계적 성질의 관계를 난해하게 만드는 성질
- 확산 : 암호문의 모든 비트에 영향을 주는 성질
DES 알고리즘
- 64비트의 블록 암호화 알고리즘이며, 56비트 크기의 암호화 키로 암호화
- 생성 가능한 암호화 키는 최대 256가지
- 암호화는 다음 두 가지 기본 변환을 통해 이루어짐
- 하나의 블록인 64비트를 L1과 R1으로 나눔
- R1을 암호화 키로 생성한 S-Box로 f 함수를 만들어 치환 작업을 한 후 이 값을 L1과 XOR한 다음 L2와 R2의 위치를 바꿈
- 암호화 과정 한 단계를 라운드라 표현
- 혼돈이 이 과정에서 이루어짐
- DES는 하나의 블록에 대해 알고리즘을 16번 수행함
DES 암호화 과정
DES 복호화 과정
트리플 DES 알고리즘
- DES의 복호화가 가능해짐에 따라 AES가 나오기 전까지 임시로 사용한 암호화 알고리즘
- 암호화 및 복호화 과정에서 2개의 암호화키를 이용
AES 알고리즘
- NIST는 1997년 암호화 알고리즘을 다시 공모
- 결선에서 리즈멘과 대먼의 Rijndael 알고리즘이 200년 10월 최종 AES로 선정
SEED 알고리즘
- 전자상거래, 금융을 보호하기 위해, 순수 국내기술로 개발한 128비트 블록의 암호 알고리즘
ARIA 알고리즘
- 국가 암호화 알고리즘
- 개발된 128비트 블록 암호 알고리즘, 국가표준으로 지정
IDEA 알고리즘
- 128비트의 키를 사용해 64비트의 평문을 8라운드를 거쳐 64비트의 암호문을 생성
RC5
- 라운드 수가 가변인 블록 알고리즘
- 32/64/128비트의 키를 가짐
- 속도는 DES의 10배
SkipJack
- Fortezza Card에 칩 형태로 구현됨
- 음성 암호시에 사용
- 64비트의 입출력, 80비트의 키, 총 32라운드
양자 암호
- 광자 하나 하나의 단위로 신호를 실어 나름
- 차세대 암호화 기술로 많은 관심을 받고 있지만 광자의 특성상 가용 통신 거리가 최대 약 200km로 짧고 고가의 장비로 제한적인 범위로 사용
3. 비대칭 암호화 방식
- 암호화 키 교환의 문제를 해결하기 위해 등장
비대칭 암호화 방식의 발견
- 공개된 정보가 3이라 가정
- 같은 키를 공유하기 위해 철수는 자신이 정한 숫자 5를 사용해 3^5인 243이라는 수를 영희에게 보냄
- 영희도 자신의 숫자를 7로 정하고, 3^7인 2178를 철수에게 보냄
- 철수와 영희는 상대에게 받은 수에 자신의 수를 제곱승
- 룰은 자신이 정한 5와 7 숫자를 상대방에게 전달하지 않고서도 50,031,545,098,999,707이라는 같은 키를 공유
RSA 알고리즘
- 소수를 이용
- 중요 정보를 두 개의 소수로 표현, 두 소수의 곱을 힌트와 함께 전송해 암호로 사용
- RSA 알고리즘에서는 모든 사람이 고유한 N값을 갖게 됨
- 만약 영희가 자신의 N을 p=17159와 q=10247의 곱인 N으로 정함
- 영희가 자신의 N값을 모든 사람들에게 공개하면 이 떄의 N 값은 영희의 공개키가 됨
- 여기에서 p와 q는 영희의 사설키
비대칭 암호화의 구조
- 각 개인이 공개키와 개인키를 소유하는 구조
- 비대칭 암호화 알고리즘에서는 언제나 한 쌍의 개인키와 공개키에 의해 암호화와 복호화가 이루어짐
비대칭 암호화의 기능
- 기밀성
- 가장 기본적인 기능
- 부인방지
- 철수는 영희에게 편지를 보낼 때 자신의 개인키로 편지를 암호화하여 전송
- 철수의 개인키로 암호화된 편지는 철수의 공개키로만 볼 수 있으므로 편지가 철수가 쓴 것임을 확신
- 암호화 키와 관련된 용어
- 대칭 키 : 암호화할 떄 쓰는 키와 복호화할 때 쓰는 키가 같은 것
- 비밀 키 : 암호화할 때와 복호화할 떄 사용되는 키가 같으므로 암호문이 효력을 발휘하려면 발신자와 수신자 사이의 키에 대한 정보가 비밀로 유지
- 비대칭 키 : 암호화할 때 쓰는 키와 복호화할 때 쓰는 키가 다른 것
- 공개 키와 개인 키 : 발신자와 수신자가 각각 한 쌍을 소유
4. 해시
해시의 특징
- 정보의 무결성을 확인하기 위해
- 전자서명, 전자봉투, 전자화폐 등 다양한 전자상거래 기능 구현 가능
- 대표적인 것은 MD5
- 세 평문은 길이가 각각 다르지만 해시 결과는 32개 문자 길이로 같음
- 두 번쨰와 세 번쨰 평문은 단어 하나만 다를 뿐인데 해시 결과는 완전 다름
해시의 역할
- 원래 해시는 데이터베이스의 탐색을 효과적으로 구현하기 위해 만들어진 것
- 보안에서는 해시가 완전히 똑같은 데이터만 해시 값이 같고 조금만 달라도 해시 값이 전혀 다르다는 점을 이용, 데이터 무결성 확인
해시의 종류
- MD 알고리즘
- MD2, MD4, MD5 세 종류가 있음
- 공개키 기반 구조를 만들기 위해 RSA와 함께 개발
- MD2는 8비트 컴퓨터에 최적화되어 있음
- 데이터 보안성에 있어 더 많은 확신
- SHA 알고리즘
- 160비트의 값을 생성, MD4가 발전한 형태
- 512비트 크기의 블록
- MD5보다 느리지만 좀 더 안전함