SEED 편집하기
최신판 | 당신의 편집 | ||
46번째 줄: | 46번째 줄: | ||
SEED의 라운드 키를 생성하는 과정은 우선 128비트 암호키를 64비트씩 좌우로 나누어서 이들을 8비트씩 교대로 좌우로 회전이동한다. 그 후, 결과의 4워드들에 대해 간단한 산술 연산과 G 함수를 적용해서 라운드 키를 생성한다. 라운드 키 생성 과정은 기본적으로 하드웨어나 제한된 자원을 가지는 스마트카드 같은 곳에서 효율적으로 응용할 수 있도록 만들기 위해, 암호화나 복호화를 진행할 때 암호키에서 필요한 라운드 키를 간단하게 계산할 수 있도록 설계되었다. | SEED의 라운드 키를 생성하는 과정은 우선 128비트 암호키를 64비트씩 좌우로 나누어서 이들을 8비트씩 교대로 좌우로 회전이동한다. 그 후, 결과의 4워드들에 대해 간단한 산술 연산과 G 함수를 적용해서 라운드 키를 생성한다. 라운드 키 생성 과정은 기본적으로 하드웨어나 제한된 자원을 가지는 스마트카드 같은 곳에서 효율적으로 응용할 수 있도록 만들기 위해, 암호화나 복호화를 진행할 때 암호키에서 필요한 라운드 키를 간단하게 계산할 수 있도록 설계되었다. | ||
− | 주어진 128비트 암호키가 K=A||B||C||D일 때, 해당 암호키를 32비트 레지스터인 A, B, C, D로 나눈다. 각 라운드 i 에 사용되는 키 K_i=(K_{i,0}:K_{i,1})는 다음과 같은 방식으로 생성한다. | + | 주어진 128비트 암호키가 K=A||B||C||D일 때, 해당 암호키를 32비트 레지스터인 A, B, C, D로 나눈다. 각 라운드 i 에 사용되는 키 K_i=(K_{i,0}:K_{i,1})는 다음과 같은 방식으로 생성한다. |
<math> for(i=1; i<=16; i++)</math>{ | <math> for(i=1; i<=16; i++)</math>{ |