트랩도어 함수
1. 개요
트랩도어 함수는 일방향 함수 집합으로, 특정 트랩도어(비밀 정보)가 주어지면 역함수를 쉽게 계산할 수 있지만, 트랩도어가 없으면 역함수를 계산하는 것이 계산적으로 어려운 함수이다. 트랩도어 순열은 일방향 순열의 특별한 경우이다. RSA 암호 시스템과 라빈의 이차 잉여 가정은 트랩도어 함수의 예시로, 소인수분해의 어려움을 기반으로 한다.
이미지 준비중입니다.
| 유형 | 암호학 |
|---|---|
| 정의 | 한 방향 함수이며, 비밀 정보를 알면 역방향 계산이 쉬움 |
| 관련 개념 | 한 방향 함수, 공개 키 암호 방식 |
| 설명 | 트랩도어 함수는 계산하기는 쉽지만, 추가적인 정보 없이는 역으로 계산하기 어려운 함수이다. 트랩도어 정보(trapdoor)를 가진 사람은 쉽게 역함수를 계산할 수 있다. Diffie, Whitfield; Hellman, Martin (1976)에 의해 암호학에 도입되었다. |
|---|---|
| 응용 분야 | 공개 키 암호 방식 |
| 예시 | 큰 수의 곱셈은 쉽지만, 소인수 분해는 어렵다. RSA 암호 |
| 관련 항목 | 한 방향 함수 역함수 백도어 (컴퓨팅) |
|---|
2. 정의
트랩도어 함수는 일방향 함수 f영어k영어 : D영어k영어 → R영어k영어 (k영어 ∈ K영어) 형태의 집합으로, 여기서 K영어, D영어k영어, R영어k영어는 모두 이진 문자열 집합 {0, 1}*의 부분 집합이며, 다음 조건을 만족한다.
* 확률적 다항 시간(PPT) 샘플링 알고리즘 Gen이 존재하여 Gen(1n) = (k, tk)를 반환한다. k ∈ K ∩ {0, 1}n이고, tk ∈ {0, 1}*이며, | tk | < p(n)이다. 여기서 p는 어떤 다항식이다. tk는 k에 해당하는 트랩도어이며, 효율적으로 샘플링할 수 있다.
* 입력 k가 주어지면 x ∈ Dk를 출력하는 PPT 알고리즘이 존재한다. 즉, 각 Dk는 효율적으로 샘플링할 수 있다.
* 모든 k ∈ K에 대해 fk를 올바르게 계산하는 PPT 알고리즘이 존재한다.
* 모든 k ∈ K, x ∈ Dk에 대해 y = A ( k, fk(x), tk )일 때, fk(y) = fk(x)를 만족하는 PPT 알고리즘 A가 존재한다. 즉, 트랩도어가 주어지면 역함수를 구하기 쉽다.
* 모든 k ∈ K에 대해 트랩도어 tk가 없을 때, 모든 PPT 알고리즘에서 fk(x)가 주어졌을 때 fk(x ) = fk(x)를 만족하는 역상 x 를 찾을 확률은 무시할 수 있을 정도로 작다.
3. 예시
정수 인수분해가 어렵다는 가정 하에, RSA 암호 시스템과 라빈의 이차 잉여 가정과 관련된 트랩도어 함수의 예시를 들 수 있다.
3.1. RSA 가정
RSA 암호 시스템에서 사용되는 트랩도어 함수는 다음과 같이 정의된다.
:
만약 의 소인수분해가 알려져 있다면, 을 계산할 수 있다. 이를 통해 의 역 를 계산할 수 있으며, 이다. 가 주어지면, 을 찾을 수 있다.
이러한 계산의 어려움은 RSA 가정에서 비롯된다.
3.2. 라빈의 이차 잉여 가정
이 와 같이 큰 합성수이고, 와 가 를 만족하는 큰 소수이며, 적에게는 비밀로 유지된다고 가정한다. 을 만족하는 가 주어졌을 때 를 계산하는 것이 문제이다. 함정(trapdoor)은 의 소인수분해이다. 함정이 주어지면, 의 해는 로 주어지는데, 여기서 이다. 더 자세한 내용은 중국인의 나머지 정리를 참조한다. 소수 와 가 주어지면 와 를 찾을 수 있다. 여기서 조건 와 는 해 와 가 잘 정의되도록 보장한다.