"엘가말"의 두 판 사이의 차이
잔글 |
|||
1번째 줄: | 1번째 줄: | ||
− | ''' | + | ''' 엘가말'''<!--엘 가말, 엘가멜, 엘 가멜-->(ElGamal)<!--El Gamal-->은 1984년 미국 [[스탠퍼드 대학교]]의 [[타헤르 엘가말]](Taher ElGamal)이 제안한 [[암호 알고리즘]]으로, 이산대수 문제의 어려움에 기반한 최초의 [[공개키]] 암호이다. 엘가말은 [[디피-헬만]] 키 교환 알고리즘을 참고하여 만들었다. |
== 특징 == | == 특징 == | ||
− | * | + | * 엘가말 암호 알고리즘은 메시지의 길이가 두 배로 늘어나는 특징이 있다. |
* 같은 평문이라도 암호화가 이루어질 때마다 암호문이 달라진다. | * 같은 평문이라도 암호화가 이루어질 때마다 암호문이 달라진다. | ||
− | * [[ RSA ]] 암호에 비해 안전하지만 속도가 느리다. | + | * [[RSA]] 암호에 비해 안전하지만 속도가 느리다. |
== 절차 == | == 절차 == | ||
− | ''' 키 생성 ''' | + | '''키 생성''' |
* 큰 소수 p를 선택하고 생성자 g를 선택한다. | * 큰 소수 p를 선택하고 생성자 g를 선택한다. | ||
* 비밀키인 x를 선택하고 공개키 y = g^e mod p 를 계산한다. | * 비밀키인 x를 선택하고 공개키 y = g^e mod p 를 계산한다. | ||
* (y, g, p)를 공개키로 공개하고 x는 비밀키로 안전하게 보관한다. | * (y, g, p)를 공개키로 공개하고 x는 비밀키로 안전하게 보관한다. | ||
− | ''' 암호화 ''' | + | '''암호화''' |
− | * 메시지 m을 | + | * 메시지 m을 암호화하기 위해 난수 k를 선택한다. |
− | * 암호문인 | + | * 암호문인 r = g^k mod p 와 s = my^k mod p를 계산한다. |
* 암호문 (r, s)를 수신자에게 전송한다. | * 암호문 (r, s)를 수신자에게 전송한다. | ||
− | ''' 복호화 ''' | + | '''복호화''' |
− | * | + | * 수신자는 자신의 비밀키 x를 이용하여 복호화한다. |
− | * m = s/r^x mod p | + | * m = s/r^x mod p 계산한다. |
== 참고자료 == | == 참고자료 == | ||
* 〈[http://cris.joongbu.ac.kr/course/2011-2/ecs/%EC%95%94%ED%98%B8%20%EC%89%BD%EA%B2%8C%20%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0.pdf 암호 쉽게 이해하기]〉 | * 〈[http://cris.joongbu.ac.kr/course/2011-2/ecs/%EC%95%94%ED%98%B8%20%EC%89%BD%EA%B2%8C%20%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0.pdf 암호 쉽게 이해하기]〉 | ||
− | * 〈[https://reinliebe.tistory.com/26 암호학 - Public Key Cipher :: ElGamal]〉, | + | * 〈[https://reinliebe.tistory.com/26 암호학 - Public Key Cipher :: ElGamal]〉, 《개인 블로그》, 2010-05-21 |
== 같이 보기 == | == 같이 보기 == | ||
− | * [[디피 헬만]] | + | * [[타헤르 엘가말]] |
+ | * [[디피-헬만]] | ||
* [[RSA]] | * [[RSA]] | ||
{{알고리즘|검토 필요}} | {{알고리즘|검토 필요}} |
2019년 7월 3일 (수) 13:59 판
엘가말(ElGamal)은 1984년 미국 스탠퍼드 대학교의 타헤르 엘가말(Taher ElGamal)이 제안한 암호 알고리즘으로, 이산대수 문제의 어려움에 기반한 최초의 공개키 암호이다. 엘가말은 디피-헬만 키 교환 알고리즘을 참고하여 만들었다.
특징
- 엘가말 암호 알고리즘은 메시지의 길이가 두 배로 늘어나는 특징이 있다.
- 같은 평문이라도 암호화가 이루어질 때마다 암호문이 달라진다.
- RSA 암호에 비해 안전하지만 속도가 느리다.
절차
키 생성
- 큰 소수 p를 선택하고 생성자 g를 선택한다.
- 비밀키인 x를 선택하고 공개키 y = g^e mod p 를 계산한다.
- (y, g, p)를 공개키로 공개하고 x는 비밀키로 안전하게 보관한다.
암호화
- 메시지 m을 암호화하기 위해 난수 k를 선택한다.
- 암호문인 r = g^k mod p 와 s = my^k mod p를 계산한다.
- 암호문 (r, s)를 수신자에게 전송한다.
복호화
- 수신자는 자신의 비밀키 x를 이용하여 복호화한다.
- m = s/r^x mod p 계산한다.
참고자료
- 〈암호 쉽게 이해하기〉
- 〈암호학 - Public Key Cipher :: ElGamal〉, 《개인 블로그》, 2010-05-21
같이 보기
|