비대칭 암호화 방식의 발견
-
키 전달과 관련한 아이디어는 휫필드 디피와 마틴 헬먼이 처음 발표
-
비대칭 암호화 알고리즘 아이디어는 20세기 암호학의 혁명으로 불렸지만 실제로 사용하기엔 약점이 많았음
-
철수는 자신이 정한 수 5를 사용하여 3의 5제곱인 245을 영희에게 전송
-
영희도 자신의 수를 7로 정하고 3의 7제곱인 2187을 철수에게 전송
-
철수와 영희는 상대에게서 받은 수에 자신의 수를 적용하여 제곱
-
둘은 자신이 정한 5의 7이라는 수를 상대방에게 전달하지 않아도 50031545098999707이라는 값은 키를 공유
RSA알고리즘
- 비대칭 암호화 알고리즘 중에서 가장 많은 지지를 받으며 오늘날 산업 표준으로 사용
- 알고리즘은 MIT로널드 리베스트, 아디 샤미르, 레너드 애들먼이 고안
- RSA암호는 기본적인 정수론, 즉 소수를 이용
- 중요 정보를 소수 2개로 표현한 후 두 소수의 곱을 힌트와 함께 전송하여 암호로 사용하는 것
- RSA알고리즘에서는 모든 사람이 고유한 N 값(두 소수의 곱)을 가짐
- 영희가 P=17159, Q= 10247의 곱을 자신의 N값으로 정함
- 영희의 공개 키인 N값이 모든 사람에게 공개
- 영희에게 메시지를 보내고 싶은 사람은 N값을 이용하여 보내는 메시지를 어떤 알고리즘으로 암호화한 후 영희에게 전송
- 여기서 영희의 개인 키는 P와 Q
비대칭 암호화의 구조
-
비대칭 암호화 알고리즘은 RSA 알고리즘이 나오면서 정립
-
각 개인이 공개 키와 개인 키를 소유하는 구조지만 서로의 개인 키는 얻을 수 없음
-
대칭 암호화 알고리즘과 달리 메시지의 암호화와 복호화가 같은 키로 이루어지지 않음
-
언제나 한 쌍의 개인 키와 공개 키로 암호화와 복호화가 이루어짐
대칭 암호화의 기능
(기밀성)
비대칭 암호화 알고리즘은 대칭 암호화 알고리즘보다 더 엄밀한 기밀성을 제공
- 철수는 전화번호부에서 전화번호를 찾듯이 영희의 공개 키를 구함
- 편지를 암호화한 후 공개키를 이용하여 전송
- 영희는 자신이 가진 개인 키로 철수의 편지를 복호화하여 읽을 수 있음
- 민수가 중간에서 편지를 가로채더라도 영희의 공개 키로 암호화한 편지를 민수의 개인키로는 복호화 불가
(부인방지)
대칭 암호화 알고리즘에는 없는 기능으로 쉽게 말하면 발뺌 방지
- 철수의 개인 키로 암호화된 편지는 철수의 공개 키로만 열수 있음
- 철수의 개인 키는 철수만 가지고 있으므로 영희는 받은 편지가 철수의 공개 키로 풀려야만 그 편지는 철수가 보낸 편지라고 확신할 수 있음
- 영화나 소설에서 두 사람이 어쩔 수 없이 헤어져야 할 때 훗날을 위한 증표로 장신구를 건네는 것과 비슷
암호화 키와 관련된 용어
- 대칭 키 : 암호화할 때 쓰는 키와 복호화할 때 쓰는 키가 같은 것
- 비밀 키 : 암호화할 때와 복호화할 때 사용되는 키가 같으므로 암호문이 효력을 발휘하려면 발신자와 수신자 사이의 키에 대한 정보가 비밀로 유지
- 비대칭 키: 암호화할 때 쓰는 키와 복호화할 때 쓰는 키가 다른 것(공개 키와 개인 키를 묶어 비대칭 키)
- 공개 키와 개인 키: 발신자와 수신자가 각각 한쌍을 공유
[해시]
- 하나의 문자열을 더 짧은 길이의 값이나 키로 변환하는 것
- 정보의 위조 변조를 확인하기 위한 것, 즉 정보의 무결성을 확인하기 위한 것
- 해시를 사용하여 전자서명, 전자 봉투, 전자화폐 등 다양한 전자 상거래 기능 구현 가능
- 대표적인 해시 알고리즘은 MD5
- 세 평문은 길이가 각각 다르지만 해시 결과는 32개 문자로 길이가 모두 같음
- 두 번째와 세 번째 평문은 단어 하나만 다를 뿐인데 해시 결과는 완전히 다름
- 해시되기 전의 값을 해시 값으로 추측하기가 불가능하다는 특징 때문에 일어난 결과
- 충돌 : 다른 값의 데이터를 입력하더라도 해시 결과 값이 같을 수 있는 상황
해시의 역할
-원래 해시는 데이터베이스의 탐색을 효과적으로 구현하기 위해 만들어진 것
-보안에서는 해시가 완전히 똑같은 데이터만 해시 값이 같고 조금만 달라도 해시 값이 전혀 다르다는 점을 이용하여 데이터가 임의로 변경되지 않았다는 데이터 무결성을 확인하기 위한 도구로 사용
해시의 종류
(MD 알고리즘)
- 로널드 리베스트가 공개 키 기반 구조를 만들기 위해 RSA와 함께 개발한 것으로 MD2, MD4, MD5가 있음
- 1989년에 개발된 MD2는 8비트 컴퓨터에 최적화
- 1990년에 개발된 MD4와 1991년에 개발된 MD5는 32비트 컴퓨터에 최적화
- MD5 알고리즘은 MD4의 확장판으로 MD4보다 속도가 빠르지는 않지만 데이터 보안성이 더 뛰어남
(SHA)
- 160비트의 값을 생성하는 해시 함수로 MD4가 발전한 형태
- MD5보다 조금 느리지만 좀 더 안전하다고 알려져 있으며 SHA에 입력하는 데이터는 512비트 크기의 블록임
- SHA알고리즘은 크게 SHA-1와 SHA-2로 나눌 수 있음