본문 바로가기
IT

비대칭 알고리즘에 대해 알아보자

by 이슈플러스_진다D 2023. 3. 11.

비대칭알고리즘

암호화와 복호화의 키가 다른 알고리즘이므로 키의 분배가 용이하고, 인증, 전자서명에 유용하게 이용된다. 대칭 키에 비해 처리속도가 느린 단점이 있지만, 키 교환이 편리하여 키 교환 알고리즘으로 주로 사용된다.

 

비대칭 키 알고리즘의 기밀성과 원본증명

공개키 알고리즘은 기밀성을 보장한다. 메시지의 기밀성을 보장하기 위해 제공된 수신자의 공개키로 메시지를 암호화한다. 수신자의 개인 키로만 메시지의 복호화가 가능하다.

 

공개 키 알고리즘은 원본 증명이 가능하다. 메시지가 암호화될 때 송신자의 개인 키로 암호화하면, 이 메시지는 송신자의 공개 키로만 복호화가 가능하기 때문에 수신자는 메시지의 원본임을 확인할 수 있다.

 

전송자의 개인 키와 수신자의 공개키로 2번 암호화하면 기밀성과 원본증명의 제공이 가능하다. 동작은 일반적으로 이러한 순서를 따른다.

 

RSA(Rivest, Sharmir, Adleman) 알고리즘

1977년 고안된 비대칭 키의 대표적인 알고리즘으로 비대칭 알고리즘으로는 산업 표준으로 사용된다. 두 개의 소수를 이용하여 그것의 곱을 힌트와 함께 전송해 암호로 사용할 수 있다는 아이디어를 기반으로 구성된 알고리즘이다.

RSA 알고리즘에서는 공개 키의 값으로 고유한 N 값을 갖게 되는데, N은 두 소수의 곱에서 출발한다. 만약 N을 p=17,159와 q=10,247의 곱인 N=17,159*10,247=175,828,273으로 정했다면, 자신의 N값을 모든 사람에게 공개할 수 있는 공개 키(public key)가 된다. p와 q는 사설키(private key)이다.

 

Diffie-Hellman 알고리즘

암호에서 공유 키의 전달 문제는 송신자와 수신자 사이에 커다란 문제로 인식되었지만 공개키 암호를 사용함으로써 해결할 수 있게 되었다. 그러나 각 개인의 공개 키를 공개하고 관리하는 별도의 장소가 필수적이다. 공개 키 관리를 하지 않고도 송신자와 수신자가 직접 서로의 키를 교환할 수 있는 대표적인 방법이 Diffie-Hellman 키 교환 알고리즘이다.

Diffie와 Hellman은 1976년에 발표한 논문에서 Diffie-Hellman 키 교환을 발표한다. 유한체에서 이산대수 문제에 바탕을 둔 알고리즘인데, 실수에서 로그는 매우 쉽게 계산할 수 있지만, 유한체 위에서 정의된 로그(이산대수)는 계산하기가 매우 어렵다는 성질을 이용했다. 즉, 키 교환 시 도청된다 하여도 공유 키를 계산해 내는 것이 현실적으로 매우 어려운 방식이다.

 

El Gamal

오픈 소스를 기초로 하여 키 분배 방식 및 공개키 암호 방식을 실현한 방식이다. Diffie-hellman의 키 분배 방식을 이용하여 공개키 암호 시스템을 제안하였고, 안정성은 Diffie-Hellman의 키 분배 방식과 동일함이 증명되었다.

RSA는 소인수분해가 곤란하다는 것을 이용했지만, El Gamal 방식에서는 mod N으로 이산대수를 구하는 것이 곤란하다는 것을 이용한다. El Gamal 방식에 의한 암호화에서는 암호문의 길이가 평문의 2배가 되어 버린다는 큰결점이 존재한다. 암호 소프트웨어 GnuPG에 구현했다.

 

타원 곡선 암호화(ECC, Elliptic Curve Cryptosystems)

RSA보다 키의 비트 수를 적게 하면서 동일한 성능의 보안을 제공하는 것이 가장 큰 특징이다. 타원 곡선이라 불리는 곡선을 정하고, 그 곡선상에 있는 점에 대하여 특수한 연산을 정의한다. 타원 곡선 암호에서는 이 연산의 역연산이 어렵다는 것을 이용(이산대수)한 방식이다.

RSA에 비해 작은 키를 사용하고 저용량을 제공하여 임베디드 기기나 모바일 통신에 주로 사용된다. ECC의 문제점은 복잡한 배경이론, 해당 분야의 전문가가 미비하며 RSA보다 상대적으로 지명도가 부족하지만 최근 높은 속도의 구현이 가능하여 발전 가능성 큰 암호화 방식이다.

'IT' 카테고리의 다른 글

정보보안 아키텍처의 개요  (0) 2023.03.11
암호해독과 공격 유형  (0) 2023.03.11
대칭 알고리즘의 종류와 설명  (0) 2023.03.11
블록기반 암호화 모드의 종류  (0) 2023.03.11
컴퓨터 암호학의 역사  (0) 2023.03.11

댓글