본문 바로가기

Crypto

공개키 암호시스템 [Crypto]

1976년에 Diffie와 Hellman이 공개키 암호방식의 가능성을 언급했습니다. 그리고 1977년 Rivest, Shamir, Adleman(MIT)이 최초의 공개키 방식인 RSA를 발표했습니다. 이름에서 알 수 있듯이 만드신 분들 맨 앞글자 입니다. 특징은 mod 연산을 기본으로 하고 있고 비트연산(XOR, Shift 등) 수학적인 연산을 사용하고 대칭키와 다르게 공개키는 비대칭키로 키를 2개 사용합니다. 두 개의 키를 사용하게 되면서 키에 대한 기밀성이 유지되고 비밀키 분배 인증 등에 엄청난 영향을 미치게 됩니다.

 

- 공개키 방식의 오해

· 비밀키 보다 안전하다?

암호방식의 안전성은 1. 키의 길이, 2. 암호해독에 필요한 비용(시간)에 따라 결정됩니다.

· 비밀키 암호방식을 대채한다?

오히려, 공개키 암호방식이 연산이 훨씬 많아서 느립니다. 대채하기는 어렵습니다.

· 복잡한 키분배가 필요없다?

공개키 암호방식에서도 키를 관리하기 위해서는 비밀키 방식 못지않은 복잡한 방식이 필요합니다.

 

- 공개키 암호의 기본적 원리

· 공개키 암호는 이름 그대로 키를 공개하는 형태이고 비대칭키입니다. 즉 키를 두 개를 사용하며 하나는 누구나 볼 수 있게 공개하고 하나는 본인만 갖고있는 개인키가 됩니다.

1. 공개키암호화 방식을 이용하여 암호화를 하고싶은 사용자가 공개키의 키를 생성을 합니다. (2개) - 사용자 A

2. 하나를 공개하고 하나는 아무도 알 수 없게 안전하게 보관합니다.

3. 공개키를 만든 A에게 문서를 전송하고 싶은 다른 사용자 B가 공개된 키를 이용하여 문서를 암호화하고 A에게 암호화된 문서를 전송합니다.

4. 성공적으로 전송받은 A는 본인이 갖고있는 개인키를 이용하여 해당 문서를 복호화합니다.

5. 만약 통신 중간에 악의적인 사용자가 위변조를 하거나 오류가 발생하게 되면 문서의 복호화는 재대로 이루어지지 않게 되고 또한 A의 공개키로 암호화된 데이터는 A의 개인키로만 복호화할 수 있기 때문에 무결성을 지킬수 있게 됩니다.

반응형