"HIGHT"의 두 판 사이의 차이
fshiel8165 (토론 | 기여) (→기호와 표기) |
fshiel8165 (토론 | 기여) (→2. LFSR(Left Feedback Shift Register) h) |
||
45번째 줄: | 45번째 줄: | ||
LFSR <math>h</math>의 연결 다항식은 <math>{\displaystyle x^{7}+x^{3}+1}</math>이다. 이 다항식은 <math>{\displaystyle F_2[x]}</math>에서 원시다항식이기 때문에 <math>h</math>는 <math>{\displaystyle 2^{7}-1=127}</math>의 주기를 갖는다. <math>h</math>의 초기 내부 상태 값은 <math>{\displaystyle \delta_{0}=(s_{6},s_{5},s_{4},s_{3},s_{2},s_{1},s_{0})=(1,0,1,1,0,1,0)_{2}}</math>으로 정해진다. 그러면 <math>i=1,\cdots,127</math>에 대하여 <math>{\displaystyle \delta_{i}}</math>는 다음과 같이 생성된다. | LFSR <math>h</math>의 연결 다항식은 <math>{\displaystyle x^{7}+x^{3}+1}</math>이다. 이 다항식은 <math>{\displaystyle F_2[x]}</math>에서 원시다항식이기 때문에 <math>h</math>는 <math>{\displaystyle 2^{7}-1=127}</math>의 주기를 갖는다. <math>h</math>의 초기 내부 상태 값은 <math>{\displaystyle \delta_{0}=(s_{6},s_{5},s_{4},s_{3},s_{2},s_{1},s_{0})=(1,0,1,1,0,1,0)_{2}}</math>으로 정해진다. 그러면 <math>i=1,\cdots,127</math>에 대하여 <math>{\displaystyle \delta_{i}}</math>는 다음과 같이 생성된다. | ||
+ | |||
+ | :::<math>{\displaystyle s_{i+6}=s_{i+2} \oplus s_{i-1},}</math><br> | ||
+ | :::<math>{\displaystyle \delta_{i}=(s_{i+6},s_{i+5},s_{i+4},s_{i+3},s_{i+2},s_{i+1},s_{i}),}</math> <math>1 \le i \le 127</math><br> | ||
+ | |||
+ | <math>h</math>의 주기가 127이기 때문에 <math>{\displaystyle \delta_{0}=\delta_127}</math>이다. | ||
+ | |||
+ | ==== 3. 서브키 생성 ==== | ||
+ | |||
+ | 서브키를 생성하는 알고리즘은 다음과 같이 구성된다. | ||
+ | |||
+ | |||
+ | ==== 4. 암호화키 생성 ==== | ||
+ | |||
+ | ==== 5. 복호화키 생성 ==== | ||
+ | |||
+ | HIGHT의 복호화 알고리즘은 암호화 알고리즘과 같은 화이트닝키와 서브키 바이트들을 이용하지만 순서가 다르다. 복호화 알고리즘에서는 <math>{\displaystyle WK_{4},WK_{5},WK_{6},WK_{7}}</math>이 초기변환에, <math>{\displaystyle WK_{0},WK_{1},WK_{2},WK_{3}}</math>이 최종변환에 사용된다. 복호화 알고리즘에서 사용되는 서브키 바이트들은 <math>{\displaystyle SK'_{i}}</math>로 표시되며, 다음과 같이 정의된다. | ||
+ | |||
+ | :::<math>{\displaystyle SK'_{i}=SK_{127-i},}</math> <math>i=0,\cdots,127</math> | ||
== 전망 == | == 전망 == |
2019년 7월 4일 (목) 17:31 판
HIGHT(HIGh security and light weigHT) 암호 알고리즘은 RFID, USN 등과 같이 저전력ㆍ경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 2005년 KISA, ETRI 부설연구소 및 고려대가 공동으로 개발한 GFS구조의 64비트 경량 블록 암호 알고리즘이다. 스마트폰, 스마트카드 및 RFID등과 같이 저전력, 경량화를 요구하는 모바일 환경에서 기밀성 있는 보안을 확보하기 위해 개발되었다.
목차
특징
- 휴대형 기기 및 모바일 환경에 적합하도록 특수 설계되었고, 전력 소비가 적도록 개발된 블록 암호화 알고리즘이다.
- 8비트 단위의 기본적인 산술연산, XOR, 순환이동만으로 사용가능 하도록 간단구조로 설계되었다.
- 128비트 국산암호화 알고리즘 SEED에 비해 제한된 호나경에 적용하기위해 매우 간단한 구조의 안전성, 효율성을 동시에 고려하였다.
- 메모리와 같은 하드웨어 자원이 부족한 환경에 적합하도록 일반적인 블록 암호화 알고리즘과는 다르게 S-Box(Substitution-box)를 제거하였다.
- 2006년 12월 정보통신단체 표준으로 제정되었다.
- 2010년 12월 ISO/IEC 국제 표준으로 제정되었다.
알고리즘
HIGHT 알고리즘은 전체적으로 일반화된 Feistel 변형 구조로 이루어져 있으며, 64비트의 평문과 128비트의 키로부터 생성된 8개의 8비트 화이트닝키와 128개의 8비트 서브키를 입력으로 사용함으로써 총 32라운드를 거쳐서 64비트 암호문을 출력한다.
기호와 표기
64비트 평문과 암호문은 각각 8개의 바이트로 다음과 같다.
- 평문 :
- 암호문 :
64비트 라운드함수 입·출력은 8개의 바이트로 다음과 같다.
128비트 키(마스터키)는 16개의 바이트로 다음과 같다.
라운드함수에 적용되는 라운드키는 서브키 와 화이트닝키
산술 연산 기호
- ⊞ : 법 덧셈
- ⊟ : 법 뺄셈
- ⊕ : XOR (배타적 논리합)
- : 8비트 값 A에 대한 8비트 좌측 순환 이동
키 스케줄
HIGHT의 라운드키는 화이트닝키와 LFSR을 사용하여 생성한 서브키들로 이루어진다.
1. 화이트닝키 생성
화이트닝키는 마스터키를 사용하여 다음과 같은 방법으로 생성한다.
2. LFSR(Left Feedback Shift Register)
LFSR 의 연결 다항식은 이다. 이 다항식은 에서 원시다항식이기 때문에 는 의 주기를 갖는다. 의 초기 내부 상태 값은 으로 정해진다. 그러면 에 대하여 는 다음과 같이 생성된다.
의 주기가 127이기 때문에 이다.
3. 서브키 생성
서브키를 생성하는 알고리즘은 다음과 같이 구성된다.
4. 암호화키 생성
5. 복호화키 생성
HIGHT의 복호화 알고리즘은 암호화 알고리즘과 같은 화이트닝키와 서브키 바이트들을 이용하지만 순서가 다르다. 복호화 알고리즘에서는 이 초기변환에, 이 최종변환에 사용된다. 복호화 알고리즘에서 사용되는 서브키 바이트들은 로 표시되며, 다음과 같이 정의된다.
전망
국산 암호화 기술이 스마트폰, USN, U-City, U-Health등 유비쿼터스 환경에서 널리 활용될 수 있도록 중소기업을 포함한 산학연(산업계, 학계, 연구분야)을 대상으로 무료로 소스코드를 배포하는 등 암호이용 활성화를 위해 지속적으로 지원할 계획이라고 한다.
|