목록Cryptography (2)
Sechack
RSA는 공개키 암호화 알고리즘이다. 기존의 고전 암호나 블록 암호는 암호화와 복호화에 같은 키가 사용되는 대칭키 암호이지만 RSA는 공개키로 누구나 암호화 할 수 있지만 복호화하려면 비밀키가 필요한 비대칭키 암호화 알고리즘이다. 대칭키 암호화 알고리즘은 기본적으로 암호를 사용하는 사람과 키를 교환해야 한다. 이 과정에서 키가 외부로 유출될 가능성도 있고 사용하는 사람이 많아질수록 키를 많은 사람과 교환해야 한다. 하지만 비대칭키 암호화 알고리즘은 이러한 키 교환이 필요하지 않다. 상대방에게는 공개키만 주고 상대방이 공개키로 암호화한 데이터를 전송하면 가지고 있는 개인키로 복호화하면 된다. 키를 공유할 필요가 없으므로 대칭키 암호화 알고리즘에 비해서 안전하고 간편하다. RSA는 공개키를 소인수분해해서 비..
AES와 같은 대칭키 암호는 암호화와 복호화에 사용되는 키가 같으므로 송신자와 수신자 모두 암호를 주고받기 전에 같은 키를 공유해야 한다. 따라서 데이터를 교환하기 전에 키 교환이 먼저 이루어져야 하는데 키 교환 과정에서 통신이 도청당하면 대칭키 암호는 무력화 된다. Diffie Hellman 키 교환 알고리즘은 통신이 도청당할 수 있는 공개된 환경에서도 키를 안전하게 교환할 수 있는 알고리즘이다.Diffie Hellman은 이산 로그 문제를 이용한 알고리즘이다. 이산 로그 문제란 자연수 $a$, $m$, 정수 $b$에 대해서 $a^x \equiv b \pmod p$를 만족하는 정수 x를 구하는 문제이다. $p = 2^{127} - 1$이라 치면 $a$, $x$, $p$가 주어진 상태로 $b$를 구하라고..