240 likes | 707 Views
현대암호편 : RC 5 ,ElGamal,Rabin. 곽인 범. RC5 - 배경. 1994 년 RSA Security 사의 Ronald Rivest 에 의해 고안됨 . 보안제품 BSAFE, JSAFE, S/MAIL 등에 사용. RC5 – 특성 (1/3). 블 록 암호 다양 한 크기의 키 , 블록 , 라운드를 가질 수 있다 . 다른 블록 암호화 알고리즘들과 달리 라운드도 가변적임 .
E N D
RC5 - 배경 • 1994년 RSA Security사의 Ronald Rivest에 의해 고안됨. • 보안제품 BSAFE, JSAFE, S/MAIL등에 사용
RC5 – 특성(1/3) • 블록 암호 • 다양한 크기의 키, 블록, 라운드를 가질 수 있다. 다른 블록 암호화 알고리즘들과 달리 라운드도 가변적임. • 블록의 크기는 32, 64, 128 비트. 키의 크기는 0~2040 비트. 라운드는 0~255회. • 하드웨어 및 소프트웨어에의 적합성->CPU에서 일반적으로 사용되는 기본 연산만 사용
RC5 – 특성(2/3) • 빠른 속도->간단한 알고리즘을 사용->기본 연산이 한번에 full word를 처리 • 다른 단어 길이 프로세서에서의 적응성->단어 당 비트 수는 RC5의 매개변수->다른 단어 길이는 다른 알고리즘이 됨 • 단순성->간단한 구조로 구현이 용이->알고리즘 강도 결정(보안 허점 탐지)이 용이
RC5 – 특성(3/3) • 데이터 의존적인 순환 이동->데이터의 양에 따라 결정되는 회전 이동(순환비트이동)을 채용->알고리즘 강도에 기여 • 낮은 메모리 요구량->스마트 카드나 한정된 메모리를 사용하는 장치에 적당
RC5 – 알고리즘(키 확장[1/2]) • t 개의 서브키(w 비트 단위) 개념- 각 라운드별2 개의 서브키 + 별도 연산적용 2 개 (t=2r+2);S[0], S[1], … S[t-1] • 배열 S의 초기화- S[0]=Pw; for i=1 to t-1 do S[i]=S[i-1] + Qw;- Pw, Qw : 2 단어 길이의 상수 • 키 변환- ‘b’ byte 키 K[0], …, K[b-1] 를 ‘c’ word 배열 L[0], …L[c-1]로 변환 (byte -> word) • 최종 배열 S생성- L의 내용을 S의 초기화된 값 에 혼합(Mix)연산 수행
RC5 – 알고리즘(암호화[2/3]) • +: 덧셈, 2w(W,단어 비트수)을 법으로한 덧셈 • - : 뺄셈, 2w(W,단어 비트수)을 법으로한 뺄셈 • x>>>y: 단어 x의 y비트 우측 순환이동 • x<<<y: 단어 x의 y비트 좌측 순환이동 • DES 2회 반복이 RC5의 1회와 같음. • 각 라운드에서 좌우 양쪽 치환. 순열, 키 의존치환 함. • : 비트 XOR 연산
RC5 – 알고리즘(복호화) • 역순으로 이루어짐- 덧셈은 뺄셈으로, 좌측순환이동은 우측순환이동으로 변경.
ElGamal - 배경 • 기존의 비밀키 방식은 현재의 거미줄 같은 통신 방식에 부적당.
ElGamal – 특성(1/3) • 공개 키의 특성인 암호화할 때와 복호화할 때 사용하는 키가 다르다. • 이산대수 문제를 이용함. y gx mod p ( g : 원시원소 p : 소수 )
ElGamal– 특성(2/3) • p가 소수이고, g를 법 p에 관한 원시근이라고 하면,임의의 y에 대해 y≡0 (mod p)이고, y≡gx을 만족하는 x(0~(p-1))가 존재한다. • p가 홀수인 소수이면, 항상 ф(p-1)개의 원시근 존재.
ElGamal – 특성(3/3) • g가 p의 원시근이라면 g i≡gj (mod p) i≡j (mod ф(p))집합 {g1,g2…gф(p)}는법 p에 관한 기약 잉여계.
ElGamal– 알고리즘(이산대수의 예) • 이산대수 문제 예 Z23 51 5 58 16 515 19 mod 23 52 2 59 11 516 3 mod 23 53 10 510 9 517 15 mod 23 54 4 511 22 518 6 mod 23 55 20 512 18 519 7 mod 23 56 8 513 21 520 12 mod 23 57 17 514 13 521 14 mod 23
ElGamal – 알고리즘 • 큰 소수 p, 법 p에 관한 원시근 g를 결정하여 공개. • 사용자는 자신의 개인 비밀키( x ) 선정후공개키 y를 계산하여 공개함.
ElGamal – 알고리즘 • 암호화 • k RZp(p : 소수) • K yBk (yB g XB mod p) - 임의의 k(0<k<p)를 선정 • C1 g k mod p • C2 KM mod p (M : 평문) • C= C1 || C2 • 복호화 • K (g k) XB mod p C1 XB mod p – XB는 자신만 알고 있으므로 쉽게 계산 • M C2 / K mod p – 평문을 구함.
ElGamal- 암호 방식 • ElGamal암호 방식의 구성 C
ElGamal - 암호 방식 예 C = (21, 18) 19
Rabin - 배경 • 소인수 문제의 어려움에 기반.
Rabin - 특성 • 2차 잉여문제- 알려지지 않은 서로 다른 두 소수 p,q의 곱으로 이루어진 합성수 n=pq가 주어졌을떄, 임의의 a가 법 n에 관한 잉여류인지 아닌지 결정하는 것 • Rabin 암호는 2차 잉여문제를 이용. • 암호화 알고리즘에서 제곱의 연산만 하면 되므로 RSA보다 훨씬 계산이 빠름.
Rabin – 알고리즘 • 준비- n = pq (서로수p,q를 선택)- n을 공개키로 함.- p,q를 비밀키로 함. • 암호화- CM 2 (mod n )- n보다작은 평문M을 법 n에 관해 제곱하여 C 작성 • 복호화- 암호문 C를 비밀키 {p,q}를 이용하여 법 n에 관해 2차 잉여의 제곱근을 계산하면 M을 얻음.- C는 법 n의 2차 잉여가 되므로, 법 p와 q에 관한 2차 잉여가 됨.- 이들중 의미 있는 것이 평문임.