728x90
대칭키 vs 공개키
- 대칭키 암호화 방식: 암호화와 복호화에 사용하는 키가 동일 함.
- 배대칭키/공개키 암호화 방식 : 암호화와 복호화에 사용하는 키가 서로 다름.
대칭키 알고리즘

대칭키 암호화 방식은 암호화와 복호화에 같은 암호화 키를 사용하는 알고리즘
- 장점
- 다양한 알고리즘 개발이 용이
- 속도가 매우 빠르고 대용량 데이터 암호화
- 단점
- 키 관리 및 키 분배가 어려움. Entry 쌍의 개수 만큼의 키가 필요.
- 디지털 서명, 부인방지 등의 기능을 불가능
- 키 공유의 문제가 발생
- 대표적인 대칭키
- DES, AES 등
부인방지 (Non-Repudiation) : 상대방이 자신의 행위를 부인하지 못하도록 증명하는것
비대칭키/공개키 알고리즘
비대칭키/공개키는 암호화할때와 복호화할때 서로 다른 키를 사용하는 암호화 알고리즘임
외부에 절대 노출되면 안되는 개인키와 공개적으로 개방되어있는 공개키가 쌍으로 이루어진 형태임
- 두개의 키를 사용하는 방식
- 두개의 키는 서로 다름
- Private Key : 혼자서 비밀리에 보관하고 혼자서만 사용하는 키 (개인키)
- Public Key : 거래 상대방에게 제공하는 키 (공개키)
- Public Key를 공개하더라도 Private Key를 알아내는 것은 불가능
- Private Key로 Public Key를 생성해 낼 수 있음
- Public key를 외부에 노출되어도 상관 없음

- 장점
- 하나의 키로 암호화한 Cipher Text는 반드시 쌍으로 되는 키로만 복호화 가능
- 안정성이 수학적 이론에 근거 (RSA-소인수분해, ECC-타원곡선)
- 키 관리 문제 해결
- N명의 사용자 : N개의 공개/개인키 쌍으로 충분함
- 서명 기능, 기밀성 등의 기능이 가능
- 단점
- 속도가 매우 느림
- 대표적인 공개키 알고리즘
- Diffie Hellman : 최초의 공개키 알고리즘
- RSA : 대표적인 공개키 알고리즘
- DSA : 전자 서명 알고리즘 표준
- ECC : 짧은 키로 높은 암호 강도,
공개키 알고리즘 - RSA (Rivest Shamir Adleman)
- 특징
- 공개키로 암호화(서명) 하면 개인키로 혼자만 볼 수 있음 —> 기밀성 (Confidentiality)
- 개인키 암호화(서명)하면 공개키로 검증할 수 있음 —> 인증 (Authentication)
- 두개의 키를 사용 : Private Key(개인키)와 Public Key(공개키)는 서로 쌍을 이룸
- Private Key를 먼저 생성한 다음, Private Key에서 Public Key를 추출하는 방식
- Private Key는 자신만 보관하고, Public Key는 암호화하고 싶은 상대에게 제공
비대칭키/공개키를 사용한 암호학적 문제해결
비대칭키/공개키를 사용할 경우 2가지 문제를 해결할 수 있음
- 데이터 보안
- 공개키 암호화 -> 개인키 복호화
- 데이터를 안전하고 전송 할 수 있는 보안 관점
- 인증
- 개인키 암호화 -> 공개키 복호화
- 신뢰할 수 있는 단체(데이터)라는 것을 인증하는 관점
데이터 보안 관점

“I love You”를 암호화 하는데 Bob의 공개키를 사용할 경우, Bob의 개인키로만 복호화 할수 있다.
다시 말해서 해당 암호문은 Bob만 볼 수 있으므로 기밀성이 지켜진다.
- Bob이 아닌 다른 그 누구도 복호화를 할 수 없다.
공개키로 암호화 하여 안전하게 데이터를 전송하고, 개인키를 가진사람만 복호화 할 수 있음
- 제 3자가 데이터를 볼 수 없음
인증 (Authentication)

- “Marry me?”를 암호화 하는데 Bob의 개인키로 암호화 할경우, Bob의 공개키로 복호화가 가능하다.
- Bob의 공개키로 복호화가 된다는 것은 Bob의 개인키를 사용하여 암호화했다는것을 증명한다.
728x90