"공개키 암호 알고리즘"의 두 판 사이의 차이
yueun970422 (토론 | 기여) |
yueun970422 (토론 | 기여) |
||
3번째 줄: | 3번째 줄: | ||
== 개요 == | == 개요 == | ||
공개키 암호는 대칭키 암호의 키 전달에 있어서 취약점을 해결하고자 한 노력의 결과로 탄생했다. 한 쌍의 키가 존재하며, 하나는 특정 사람만이 가지는 개인키(또는 비밀키)이고 다른 하나는 누구나 가질 수 있는 공개키이다.<ref name = "불곰"> 불곰, 〈[https://brownbears.tistory.com/332 암호(대팅키 암호, 공개키 암호)]〉, 《티스토리》, 2017-03-14 </ref> 공개키 암호화 방식은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개한다.<ref name = "깃북스"> 〈[https://lesstif.gitbooks.io/web-service-hardening/content/public-key-encryption.html 공개키 암호화]〉, 《깃북스》</ref> 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능하다. 개인이 비밀통신을 할 경우엔 [[대칭키 암호]]를 사용할 수 있지만, 다수가 통신을 할 때에는 키의 개수가 급증하게 되어 큰 어려움이 따른다. 이런 어려움을 극복하기 위해 나타난 것이 공개키 암호이다. 공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 할 수 있다는 장점을 갖는다.<ref name = "불곰"></ref> | 공개키 암호는 대칭키 암호의 키 전달에 있어서 취약점을 해결하고자 한 노력의 결과로 탄생했다. 한 쌍의 키가 존재하며, 하나는 특정 사람만이 가지는 개인키(또는 비밀키)이고 다른 하나는 누구나 가질 수 있는 공개키이다.<ref name = "불곰"> 불곰, 〈[https://brownbears.tistory.com/332 암호(대팅키 암호, 공개키 암호)]〉, 《티스토리》, 2017-03-14 </ref> 공개키 암호화 방식은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개한다.<ref name = "깃북스"> 〈[https://lesstif.gitbooks.io/web-service-hardening/content/public-key-encryption.html 공개키 암호화]〉, 《깃북스》</ref> 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능하다. 개인이 비밀통신을 할 경우엔 [[대칭키 암호]]를 사용할 수 있지만, 다수가 통신을 할 때에는 키의 개수가 급증하게 되어 큰 어려움이 따른다. 이런 어려움을 극복하기 위해 나타난 것이 공개키 암호이다. 공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 할 수 있다는 장점을 갖는다.<ref name = "불곰"></ref> | ||
+ | |||
+ | == 통신 절차 == | ||
+ | # 송신자는 수신자의 공개키를 구한다. | ||
+ | # 송신자는 수신자의 공개키로 평문을 암호화한다. | ||
+ | # 송신자는 암호화된 메시지를 상대방에게 전달한다. 메시지는 암호화되어 있기때문에 전달 도중에 유출되거나 도청이 되더라도 암호문으로부터 원문을 알아내기 어렵다. | ||
+ | # 수신자는 자신의 비밀키로 암호화된 메시지를 해독해서 평문을 얻는다. | ||
== 특징 == | == 특징 == | ||
=== 장단점 === | === 장단점 === | ||
+ | 수신자와 송신자는 공개키를 이용하므로 키 교환이 필요없으며, 공개키만 공개하면 된다. 속도가 대칭키 방식에 비해 1000배 느리다. | ||
− | + | == 종류 == | |
− | ==종류== | ||
대표적인 공개키 [[암호 알고리즘]]은 다음과 같다. | 대표적인 공개키 [[암호 알고리즘]]은 다음과 같다. | ||
===RSA(Rivest, Shamir and Adleman)=== | ===RSA(Rivest, Shamir and Adleman)=== | ||
18번째 줄: | 24번째 줄: | ||
===ECC(Elliptic Curve Cryptosystem, 타원 곡선 암호 시스템)=== | ===ECC(Elliptic Curve Cryptosystem, 타원 곡선 암호 시스템)=== | ||
타원 곡선(Elliptic Curves)은 약 150년 전부터 수학적으로 광범위한 연구가 있어 왔다. ECC[27]는 10여 년 전 비트 당 안전도가 타 공개키 시스템보다 효율적이라는 것이 알려졌고, 최근 높은 속도의 구현이 가능하게 되었다. 또한, ECC는 전원의 양이 한정된 이동 통신 기기의 암호화에 적용될 수 있으며, 차세대 공개키 암호 방법으로 주목 받고 있다. | 타원 곡선(Elliptic Curves)은 약 150년 전부터 수학적으로 광범위한 연구가 있어 왔다. ECC[27]는 10여 년 전 비트 당 안전도가 타 공개키 시스템보다 효율적이라는 것이 알려졌고, 최근 높은 속도의 구현이 가능하게 되었다. 또한, ECC는 전원의 양이 한정된 이동 통신 기기의 암호화에 적용될 수 있으며, 차세대 공개키 암호 방법으로 주목 받고 있다. | ||
+ | |||
+ | === KCDSA === | ||
+ | |||
===전자서명(Digital signature)=== | ===전자서명(Digital signature)=== |
2019년 7월 16일 (화) 15:59 판
공개키 암호 알고리즘(public key cryptosystem) 또는 비대칭키 암호 알고리즘이란 암호화 알고리즘의 한 종류로, 암호화헐 때 사용하는 암호키와 복호화할 때 사용하는 암호키가 서로 다르다.
목차
개요
공개키 암호는 대칭키 암호의 키 전달에 있어서 취약점을 해결하고자 한 노력의 결과로 탄생했다. 한 쌍의 키가 존재하며, 하나는 특정 사람만이 가지는 개인키(또는 비밀키)이고 다른 하나는 누구나 가질 수 있는 공개키이다.[1] 공개키 암호화 방식은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개한다.[2] 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능하다. 개인이 비밀통신을 할 경우엔 대칭키 암호를 사용할 수 있지만, 다수가 통신을 할 때에는 키의 개수가 급증하게 되어 큰 어려움이 따른다. 이런 어려움을 극복하기 위해 나타난 것이 공개키 암호이다. 공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 할 수 있다는 장점을 갖는다.[1]
통신 절차
- 송신자는 수신자의 공개키를 구한다.
- 송신자는 수신자의 공개키로 평문을 암호화한다.
- 송신자는 암호화된 메시지를 상대방에게 전달한다. 메시지는 암호화되어 있기때문에 전달 도중에 유출되거나 도청이 되더라도 암호문으로부터 원문을 알아내기 어렵다.
- 수신자는 자신의 비밀키로 암호화된 메시지를 해독해서 평문을 얻는다.
특징
장단점
수신자와 송신자는 공개키를 이용하므로 키 교환이 필요없으며, 공개키만 공개하면 된다. 속도가 대칭키 방식에 비해 1000배 느리다.
종류
대표적인 공개키 암호 알고리즘은 다음과 같다.
RSA(Rivest, Shamir and Adleman)
RSA[25]는 공개키 암호 시스템으로 암호화와 인증에 사용된다. RSA는 일반 정수론적인 면에서 정의되었다. 이 시스템은 큰 수의 인수분해의 어려움에 안전성을 두고 있다. RSA는 수 많은 국제기구의 표준일 뿐만 아니라 산업 표준으로 권장되고 있다.
ElGamal
이산 대수 문제의 어려움에 기반을 둔 최초의 공개키 암호 알고리즘인 ElGamal[26]은 1984년 스탠퍼드 대학의 암호 학자 T. ElGamal에 의해 제안되었다. ElGamal으로 암호화하면 메시지의 길이가 두 배로 늘어나는 특징이 있다. 하지만 암호화할 때 난수를 이용하므로 같은 메시지에 대해 암호화하여도 암호화할 때마다 서로 다른 암호문을 얻게 되는데, 이것은 정보보호 측면에서 큰 장점이 된다. RSA에서는 난수를 사용하지 않기 때문에 같은 메시지에 대한 암호문은 항상 같다는 특징이 있는데, 이것은 공격자가 암호문을 복호화하지 않고도 평문을 추측할 수 있는 단점이 된다. 그러므로 실제 적용 시 RSA는 난수를 사용하는 OAEP(Optimal Asymmetric Encryption Padding)이라는 난수화 패딩 알고리즘과 함께 사용된다.
ECC(Elliptic Curve Cryptosystem, 타원 곡선 암호 시스템)
타원 곡선(Elliptic Curves)은 약 150년 전부터 수학적으로 광범위한 연구가 있어 왔다. ECC[27]는 10여 년 전 비트 당 안전도가 타 공개키 시스템보다 효율적이라는 것이 알려졌고, 최근 높은 속도의 구현이 가능하게 되었다. 또한, ECC는 전원의 양이 한정된 이동 통신 기기의 암호화에 적용될 수 있으며, 차세대 공개키 암호 방법으로 주목 받고 있다.
KCDSA
전자서명(Digital signature)
전자 서명(Digital signature)은 우리가 일상생활에서 신원을 확인하거나 거래를 하려고 할 때 주민등록증이나 인김 날인 또는 서명 등이 필요하듯이, 인터넷 상에서도 이를 확실히 보장해 줄 수 있는 수단이 전자 서명이다. 한마디로 전자 서명은 이증서 형태로 발급되는 자신만의 디지털 인감이며 서명인 것이다. 결국 전자 서명은 어떠한 사람이 그 문서를 작성했는지 증명하는 법이므로 전자 서명을 하기 위해선 어떤 문서에 자신의 개인키로 암호화해서 첨부하는 것이다.
각주
- ↑ 1.0 1.1 불곰, 〈암호(대팅키 암호, 공개키 암호)〉, 《티스토리》, 2017-03-14
- ↑ 〈공개키 암호화〉, 《깃북스》
참고자료
- 불곰, 〈암호(대팅키 암호, 공개키 암호)〉, 《티스토리》, 2017-03-14
- 〈공개키 암호화〉, 《깃북스》
같이 보기
이 공개키 암호 알고리즘 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.