[보안] 공개키 암호화 방식
공개키 암호화 시스템
Encryption / decryption
- 발신자는 수신자의 공개키로 메시지를 암호화
Digital signature
- 발신자는 개인 키로 메시지 "서명"
Key exchange
- 세션 키를 교환하기 위해 양측이 협력합니다.
공개키 암호화 방식에 필요한 6가지 요소
1. PlainText
- 알고리즘에 입력으로 제공되는 읽을 수 있는 메시지 또는 데이터
2. Encryption algorithm
- 평문에 대한 다양한 변환 수행
3. Publick key
- 암호화 또는 복호화에 사용
4. Private key
- 암호화 또는 복호화에 사용
5. CipherText
- 출력으로 생성된 스크램블된 메시지
6. Decryption algorithm
- 암호문과 일치하는 키를 수락하고 원본 평문을 생성합니다.
공개키 암호화 방식에 필요한 것
1. 당사자 B가 쌍(공개 키 PUb, 개인 키 PRb)을 생성하는 것은 계산상 쉽습니다.
2. 공개 키와 암호화할 메시지를 알고 있는 발신자 A가 해당 암호문을 생성하는 것은 계산적으로 쉽습니다.
3. 수신자 B가 원본 메시지를 복구하기 위해 개인 키를 사용하여 결과 암호문을 해독하는 것은 계산적으로 쉽습니다.
4. 공개 키를 알고 있는 공격자가 개인 키를 결정하는 것은 계산적으로 불가능합니다.
5. 공개 키와 암호문을 알고 있는 공격자가 원본 메시지를 복구하는 것은 계산적으로 불가능합니다.
두 키는 어느 순서로든 적용할 수 있습니다.
트랩 도어 단방향 기능이 필요.
단방향 함수는 모든 함수 값이 고유한 역함수를 가지도록 영역을 범위로 매핑하는 함수로, 함수 계산은 쉽고 역함수 계산은 불가능하다는 조건입니다.
Y = f(X) 쉬움
X = f–1(Y) 실행 불가능
트랩도어 단방향 함수는 다음과 같은 역함수 fk 계열입니다.
Y = fk(X) 쉬움, k와 X가 알려진 경우
X = fk–1(Y) 쉬움, k와 Y가 알려진 경우
X = fk–1(Y) 실행 불가능, Y는 알고 있지만 k는 모르는 경우
실용적인 공개 키 방식은 적절한 트랩 도어 단방향 기능에 따라 다릅니다.