대칭키와 공개키의 차이점과 난수

대칭키와 공개키 알고리즘의 차이점은 암호키 관점에서 알고리즘을 분류했을 때 아래 그림과 같다.

대칭키는 키가 1개, 공개키는 키가 2개이다.

대칭키

대칭키는 대부분 블록 암호 형태로 사용한다. 즉, 고정 길이 평문 블록을연산하여 동일한 크기의 암호문을 생산하는 형태이다.

이러한 형태의 암호 알고리즘으로 DES, 3-DES, AES가 있다. 아래 표는 각 알고리즘의 키의 크기와, 복호화하는데 걸리는 시간을 뜻한다.

공개키

공개키:𝑃𝑈={E,N}
개인키:𝑃𝑅={D,N}

키 생성 과정
1. N을 구한다.
두 개의 소수 p, q를 구하고 두 수를 곱해서 N을 구한다.

2.L을 구한다.
L은 P-1과 q-1의 최소공배수이다.

3. E를 구한다.
E와 L의 최대공약수가 1이어야 한다.

4. D를 구한다.
E x D mod L = 1

암호화 알고리즘 : C = M^e mod n
복호화 알고리즘 : M = C^dmod n

난수

난수의 용도

  1. RSA 공개 키 암호 알고리즘 및 기타 공개 키 알고리즘 키 생성
  2. 대칭 스트림 암호 스트림 키 생성
  3. 임시 세션 키를 위한 대칭 키 생성(TLS), IPSec 등 응용 분야
  4. Kerberos에서 키를 배포해야 할 경우에 난수를 사용

난수 열에 요구되는 두가지 조건

무작위성(Randomness)

수열의 무작위성을 판단하는 두 가지 요소가 있다.

  1. 균등 분포(Uniform distribution)
    수열의 비트 분포가 반드시 균등해야 함.
    즉, 1과 0이 비트열 상에 나타나는 빈도가 거의 비슷해야 함.
  2. 독립성(Independence)
    수열에서 추출한 어떠한 부분 수열도 다른 수열로부터 추론할 수 없어야 함.

예측 불가능성(unpredictability)

상호 인증, 세션 키 생성 같은 응용에서는 정교한 무작위성이 없어도 되지만, 일부를 보고 다음을 예측할 수 없어야 한다.

TRNG(True Random Number Generator) : 입력값으로 실제 랜덤한 정보를 사용

PRNG(Pseudorandom Number Generator) : 무작위 비트열을 생성하기 위해 사용하는 알고리즘
Pseudo : 가짜

PRF(Pseudo Random Function) : 고정된 길이의 의사난수 비트열을 생성하는데 사용하는 함수


게시됨

카테고리

작성자

태그: