암호의 개념
암호의 정의
두 사람이 안전하지 않은 채널을 통해 정보를 주고받더라도 제3자는 이 정보의 내용을 알 수 없도록 하는 것
- 안전하지 않은 채널 : 누구든지 메시지를 볼 수 있다는 의미
- 정보의 내용을 알 수 없다는 것은 정보를 다른 형태로 변환해서 보낸다는 것을 의미
키 : 암호화와 복호화를 위한 가장 중요한 열쇠
암호는 기밀성을 보장하기 위한 필수적인 기술
암호의 역사
- 처음에는 주로 군사와 정치적인 목적으로 사용
- 컴퓨터와 통신이 결합됨에 따라 불법 사용자의 봉쇄 또는 데이터의 위조 및 변조를 막는 수단으로 이용
- 최근에는 인터넷 뱅킹에 사용되는 공동인증서나 금융인정서, 보안 키패드, 메신저의 비밀 채팅 등에 널리 이용
고대 암호
최초의 암호, 스테가노그래피 - 데마라토스가 페르시아의 침략계획 소식을 나무판에 조각하여 남긴 후 밀랍을 발라 스파르타에 보낸 것, 실제로 전달하고자 하는 정보 자체를 숨기는 방법이다.
https://hiupress.hongik.ac.kr/news/articleView.html?idxno=814
스테가노그래피(Steganography) - 홍대신문
어린 시절, 신기한 볼펜이 있었다. 본디 펜이란 눈에 보이는 글을 쓰는 것이 목적인데, 그 펜의 경우 바로 글이 보이는 것이 아니라 다른 부분으로 색을 칠해야 비로소 적은 것들이 종이 위로 하
hiupress.hongik.ac.kr
최초의 암호라 보기 힘든 점은, 제3자가 암호알고리즘을 알더라도 키를 모르면 암호를 풀 수 없다는 것을 가정(Kerckhoff의 원리)하기 때문이다. 여기에 암호를 숨겨놓았다라고 알게만되도 스테가노그래피 암호는 그냥 풀린다.
전치법
- 평문에 있는 문자들의 순서를 바꿈으로써 암호화하는 기법
- 스키테일 암호, 스파르타의 봉 암호
일정 굵기의 봉(이를 'scytale' 이라고 함)에 가늘고 긴 종이(당시에는 양피지)를 두른 후, 여기에 전달하고자 하는 문장을 봉의 길이 방향으로 적음으로써 암호화, 즉 "키는 봉의 굵기이다"
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%82%A4%ED%85%8C%EC%9D%BC
스키테일 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 고대 그리스의 역사학자 플루타르크에 따르면 약 2,500년 전 그리스 지역의 옛 나라인 스파르타에서는 전쟁터에 나가있는 군대에 비밀메시지를 전할 때 암호를
ko.wikipedia.org
치환법
- 평문의 문자들을 다른 문자로 치환함으로써 암호화하는 기법
- 시저 암호
- 평문의 각 문자를 알파벳 순서상 세 문자 뒤에 위치하는 문자로 치환
- 평문의 각 문자를 알파벳 순서상 세 문자 뒤에 위치하는 문자로 치환
- 시프트 암호
- 평문의 각 문자를 알파벳 순서상 k번째 뒤 문자로 치환
- 평문의 각 문자를 알파벳 순서상 k번째 뒤 문자로 치환
근대 암호
비즈네르 암호
m개의 정수로 구성된 키를 표현하기 위해 m개의 알파벳의 로 구성된 키워드를 이용
이때 A부터 Z까지의 각 알파벳은 0부터 25까지 의 각 정수와 일대일로 대응.
위에서 예로 사용한 키 3, 5, 0은 각각 알파벳 D, F, A와 대응되므로 키워드 DFA가 바로 키
- 시프트 암호를 개선한 새로운 치환법
- 키 : 여러 개의 정숫값
- 예 : k = 3, 5, 0 , 26의 3승 방법을 해봐야 풀 수 있음
20세기 초반까지 플레이페어 암호, 힐 암호 등 다양한 암호방식 등장
1949년 섀넌의 일회성 암호체계
일회성 암호체계(one-time pad, OTP)가 안전함을 증명
- 혼돈 : 평문과 암호문 사이의 상관관계를 숨김, 치환과 유사
- 확산 : 평문의 통계적 성격을 암호문 전반에 확산시켜 숨김, 전치와 유사
현대 암호
- 표준 암호 알고리즘의 등장
- DES(Data Encryption Standard) : 대칭킹 암호 알고리즘
- AES가 공표될 때까지 널리 이용됨
- 공개키 암호 알고리즘의 등장
- 디피와 헬먼이 공개키 암호의 개념을 제시 : 암호화와 복호화에 서로 다른 키를 사용
- 리베스트, 샤미르, 애들먼이 RSA 공개키 암호 알고리즘 개발
- 소인수분해 문제에 기반을 둔 대표적인 공개키 암호 알고리즘
대칭키 암호
암호화와 복호화에 같은 키 하나를 사용하는 암호방식
- 장점 : 암호화와 복호화 속도가 빠름
- 단점 : 키 분배 문제 존재
- 대표적인 아록리즘 : DES, AES, IDEA 등
- 대칭키 암호의 분류
- 블록 암호 : 평문을 고정된 크기의 블록으로나누어 각 블록마다 암호화 과정을 수행하여 블록 단위로 암호문을 얻는 대칭키 암호 방식
- 스트림 암호 : 평문과 같은 길이의 키 스트림을 생성하여 평문과 키를 비트 단위로 xor연산하여 암호문을 얻는 대칭키 암호 방식
비대칭키(공개키) 암호
암호화와 복호화에 두 개의 서로 다른 키를 사용하는 암호방식
- 공개키 : 누구나 공개키를 이용하여 암호화 가능
- 개인키 : 오직 자신만 개인키를 이용하여 복호화 가능
- 장점 : 키 관리 쉬움, 키 분배 문제 해결
- 단점 : 대칭키 암호에 비해 속도가 느림
- 대표적인 알고리즘 : RSA, ECC, ELGamai 등
- 암호는 안전하지 않은 채널을 통해 정보를 주고받더라도 제3자는 이 정보의 내용을 알 수 없도록 하는 것이다.
- 송신자는 평문을 암호화하여 암호문을 만들어 보내고 수신자는 암호문을 복호화하여 평문을 만든다.
- 키는 암호화와 복호화를 위한 가장 중요한 열쇠로 제3자에게 알려져서는 안 된다.
- 전치법은 평문에 있는 문자들의 순서를 바꿈으로써 암호화하는 기법이다.
- 치환법은 평문의 문자들을 다른 문자로 치환함으로써 암호화하는 기법이다.
- 대칭키 암호는 암호화와 복호화에 같은 키 하나를 사용하는 암호방식이다.
- 공개키 암호는 암호화와 복호화에 두 개의 서로 다른 키를 사용하는 암호방식이다.