검수요청.png검수요청.png

"공개키 암호 알고리즘"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(장단점)
14번째 줄: 14번째 줄:
  
 
== 특징 ==
 
== 특징 ==
=== 장단점 ===
+
== 장점 ==
수신자와 송신자는 공개키를 이용하므로 키 교환이 필요없으며, 공개키만 공개하면 된다. 속도가 대칭키 방식에 비해 1000배 느리다.  
+
공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 한다는 장점을 가진다. 각 사용자는 자신에게 전송하기 위해 사용될 키를 공개하고, 공개된 키의 정보로 암호화된 정보를 복호화할 수 잇는 키를 비밀로 보유하고 있음으로써 누구나 암호화할 수 있지만 공개키에 대응되는 비밀키를 가진 사람만이 복호화할 수 있는 특징을 가진다. n명의 사용자로 구성된 네트워크를 고려하면 각 사용자는 공개키와 비밀키 두개를 보유하고 있으므로 네트워크 전체적으로 2n개의 키가 필요하다. 그리고 각 사용자는 2개의 키만 보유하면 된다. 또한, 키 관리와 키 분배가 용이하다. 공개키 암호화 통신을 할 경우 각자의 공개키 및 개인키를 생성하여 공개키는 공개하고 자신의 개인키만 관리하면 되고, 공개키에 의한 암호화 통신을 할 경우에는 각자의 공개키를 공개하여 필요할때 상대방이 이용할 수 있도록 한다.
 +
 
 +
== 단점 ==
 +
공개키 암호는 수학적인 난제를 기반으로 설계되었다. 암호화나 복호화를 수행하기 위한 연산이 복잡한 수학 연산을 기반으로 구성되기 때문에 효율성은 [[대칭키 암호]]에 비해 높지 않고, 대칭키 알고리즘에 비해 속도가 대략 1000배 느리다.
  
 
== 활용 ==
 
== 활용 ==

2019년 7월 16일 (화) 17:15 판

공개키 암호 알고리즘(public key cryptosystem) 또는 비대칭키 암호 알고리즘이란 암호화 알고리즘의 한 종류로, 암호화헐 때 사용하는 암호키와 복호화할 때 사용하는 암호키가 서로 다르다.

개요

공개키 암호는 대칭키 암호의 키 전달에 있어서 취약점을 해결하고자 한 노력의 결과로 탄생했다. 한 쌍의 키가 존재하며, 하나는 특정 사람만이 가지는 개인키(또는 비밀키)이고 다른 하나는 누구나 가질 수 있는 공개키이다.[1] 공개키 암호화 방식은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개한다.[2] 개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능하다. 개인이 비밀통신을 할 경우엔 대칭키 암호를 사용할 수 있지만, 다수가 통신을 할 때에는 키의 개수가 급증하게 되어 큰 어려움이 따른다. 이런 어려움을 극복하기 위해 나타난 것이 공개키 암호이다. 공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 할 수 있다는 장점을 갖는다.[1]

배경

1976년 휫필드 디피(Whitfield Diffe)와 마틴 헬만(Martin Hellm an)은 하나의 공유 비밀 키가 아니라 두 개의 키를 사용할 것을 제안했다. 공개키가 어떤 특성을 가져야하는지에 대한 공개키 암호화의 아이디어를 발표했다. 휫필드 디피와 마틴 헬만은 공개키 암호화는 암호화 및 암호 해독 프로세스를 근본적으로 변경하여 커다란 혁신을 가져왔다. 1977년에 공개키 암호의 구체적인 알고리즘으로 랠프 메르클레(Ralph Merkle)와 마틴 헬만(Martin Hellm an)에 의해 배낭(napsack) 암호가 만들어졌다. 1978년, 공개키 암호 알고리즘 론 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir)와 레너드 애들먼(Leonard Adleman)에 의해 RSA를 발표했다. [3]

통신 절차

  1. 송신자는 수신자의 공개키를 구한다.
  2. 송신자는 수신자의 공개키로 평문을 암호화한다.
  3. 송신자는 암호화된 메시지를 상대방에게 전달한다. 메시지는 암호화되어 있기때문에 전달 도중에 유출되거나 도청이 되더라도 암호문으로부터 원문을 알아내기 어렵다.
  4. 수신자는 자신의 비밀키로 암호화된 메시지를 해독해서 평문을 얻는다.[2]

특징

장점

공개키 암호는 다른 유저와 키를 공유하지 않더라도 암호를 통한 안전한 통신을 한다는 장점을 가진다. 각 사용자는 자신에게 전송하기 위해 사용될 키를 공개하고, 공개된 키의 정보로 암호화된 정보를 복호화할 수 잇는 키를 비밀로 보유하고 있음으로써 누구나 암호화할 수 있지만 공개키에 대응되는 비밀키를 가진 사람만이 복호화할 수 있는 특징을 가진다. n명의 사용자로 구성된 네트워크를 고려하면 각 사용자는 공개키와 비밀키 두개를 보유하고 있으므로 네트워크 전체적으로 2n개의 키가 필요하다. 그리고 각 사용자는 2개의 키만 보유하면 된다. 또한, 키 관리와 키 분배가 용이하다. 공개키 암호화 통신을 할 경우 각자의 공개키 및 개인키를 생성하여 공개키는 공개하고 자신의 개인키만 관리하면 되고, 공개키에 의한 암호화 통신을 할 경우에는 각자의 공개키를 공개하여 필요할때 상대방이 이용할 수 있도록 한다.

단점

공개키 암호는 수학적인 난제를 기반으로 설계되었다. 암호화나 복호화를 수행하기 위한 연산이 복잡한 수학 연산을 기반으로 구성되기 때문에 효율성은 대칭키 암호에 비해 높지 않고, 대칭키 알고리즘에 비해 속도가 대략 1000배 느리다.

활용

종류

대표적인 공개키 암호 알고리즘은 다음과 같다.

RSA(Rivest, Shamir and Adleman)

RSA[25]는 Rivest, Shamir 및 Adleman (각 이름의 첫 자를 따서, RSA라고 함)에 의해 처음으로 설명되었다. RSA는 공개키 암호 시스템으로 암호화와 인증에 사용되고, RSA는 오늘날 사용되는 공개키 암호 방식의 가장 일반적인 공개 알고리즘이다. RSA는 일반 정수론적인 면에서 정의되었다. RSA 체계에서는 두 개의 숫자(대개 두 개의 큰 소수)를 곱하여 얻어낸 계수를 이용해 키를 생성한다. 이 시스템은 큰 수의 인수분해의 어려움에 안전성을 두고 있다. RSA는 수 많은 국제기구의 표준일 뿐만 아니라 산업 표준으로 권장되고 있다.[4]

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)은 우리가 일상생활에서 신원을 확인하거나 거래를 하려고 할 때 주민등록증이나 인김 날인 또는 서명 등이 필요하듯이, 인터넷 상에서도 이를 확실히 보장해 줄 수 있는 수단이 전자 서명이다. 한마디로 전자 서명은 이증서 형태로 발급되는 자신만의 디지털 인감이며 서명인 것이다. 결국 전자 서명은 어떠한 사람이 그 문서를 작성했는지 증명하는 법이므로 전자 서명을 하기 위해선 어떤 문서에 자신의 개인키로 암호화해서 첨부하는 것이다.

한계점

공개키 암호 방식은 컴퓨터 보안을 강화하고 메시지의 무결성을 확인하는 데 사용하지만, 몇 가지 한계점도 있다. 암호화 및 해독과 관련된 복잡한 수학적 계산 때문에, 대량의 데이터를 처리해야 할 경우 매우 느려진다. 또한, 이러한 유형의 암호 방식은 개인 키가 안전하게 보호된다는 가정을 전제로 한다. 개인키가 실수로 공유되거나 노출될 경우, 이와 상응하는 공개 키를 통해 암호화된 모든 메시지들의 보안이 위협받게 된다. 또한, 사용자가 실수로 개인키를 잃어버릴 수도 있으며, 이 경우에는 암호화된 데이터에 접근할 수 없게 된다.[4]

각주

  1. 1.0 1.1 불곰, 〈암호(대팅키 암호, 공개키 암호)〉, 《티스토리》, 2017-03-14
  2. 2.0 2.1 공개키 암호화〉, 《깃북스》
  3. 스캇SCOTT, 〈공개키 암호 시스템〉, 《네이버 블로그》, 2016-09-14
  4. 4.0 4.1 공개 키 암호 방식이란 무엇인가요?〉, 《BINANCE ACADEMY》, 2019-010-31

참고자료

같이 보기


  검수요청.png검수요청.png 이 공개키 암호 알고리즘 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.