|
|
78번째 줄: |
78번째 줄: |
| | | |
| ==== 2. 암호화 라운드 함수 ==== | | ==== 2. 암호화 라운드 함수 ==== |
| + | |
| HIGHT의 라운드 함수는 다음과 같은 두개의 보조 함수를 갖는다. | | HIGHT의 라운드 함수는 다음과 같은 두개의 보조 함수를 갖는다. |
| + | |
| + | :<math> F_{0}(X)=X^{<<1} \oplus X^{<<2} \oplus X^{<<7} </math> |
| + | :<math> F_{1}(X)=X^{<<3} \oplus X^{<<4} \oplus X^{<<6} </math> |
| + | |
| + | 라운드 함수는 <math> Round_{1} </math> 부터 <math> Round_{32} </math>까지 32회 반복한다. |
| + | 각 <math>i</math>번째 라운드 함수 <math> Round_{i}, \ i=1, \cdots, \ 31 </math>는 <math> X_{i-1}=X_{i-1,7} || \cdots || X_{i-1,0} </math>을 <math> X_{i}=X_{i,7} || \cdots || X_{i,0} </math>와 같이 변화한다. |
| + | |
| + | :<math> X_{i,j}=X{i-1,j-1},j=1,3,5,7 </math> |
| + | :<math> X_{i,0}=X{i-1,7} \oplus (F_{0}(X_{i-1,6}) \boxplus SK_{4i-1}) </math> |
| + | :<math> X_{i,2}=X{i-1,1} \oplus (F_{0}(X_{i-1,0}) \boxplus SK_{4i-4}) </math> |
| + | :<math> X_{i,4}=X{i-1,3} \oplus (F_{0}(X_{i-1,2}) \boxplus SK_{4i-3}) </math> |
| + | :<math> X_{i,6}=X{i-1,5} \oplus (F_{0}(X_{i-1,4}) \boxplus SK_{4i-2}) </math> |
| + | |
| + | 마지막 라운드 함수인 <math> Round_{32} </math>에서는 바이트들을 섞지 않는다. 따라서 입력값 <math> X_{31}=X_{31,7} || \cdots || X_{31,0} </math>으로부터 출력값 <math> X_{32}=X_{32,7} || \cdots || X_{32,0} </math>은 다음과 같이 계산된다. |
| + | |
| + | :<math> X_{32,i}=X{31,i}, \ i=0,2,4,6 </math> |
| + | :<math> X_{32,1}=X{31,1}, \boxplus (F_{1}(X_{31,0}) \oplus SK_{124} </math> |
| + | :<math> X_{32,3}=X{31,3}, \oplus (F_{0}(X_{31,2}) \boxplus SK_{125} </math> |
| + | :<math> X_{32,5}=X{31,5}, \boxplus (F_{1}(X_{31,4}) \oplus SK_{126} </math> |
| + | :<math> X_{32,7}=X{31,7}, \oplus (F_{0}(X_{31,6}) \boxplus SK_{127} </math> |
| + | |
| + | ==== 3.암호화 최종변환 ==== |
| + | |
| + | HIGHT의 최종변환은 <math> Round_{32} </math>의 출력인 <math> X_{32}=X_{32,7} || \cdots || X_{32,0} </math>을 4개의 화이트닝키 <math> WK_{4},WK_{5},WK_{6},WK_{7} </math>을 이용하여 변환한다. |
| | | |
| == 전망 == | | == 전망 == |
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. 서브키 생성
서브키를 생성하는 알고리즘은 다음과 같이 구성된다.
-
-
- ;
-
- ;
는 LFSR 의 내부 상태의 값들이다.
4. 암호화키 생성
HIGHT의 암호화 알고리즘이 수행되기 위하여 라운드키 생성과정은 바이트 단위의 8개의 화이트닝키 와 128개의 서브키 를 생성한다.
5. 복호화키 생성
HIGHT의 복호화 알고리즘은 암호화 알고리즘과 같은 화이트닝키와 서브키 바이트들을 이용하지만 순서가 다르다. 복호화 알고리즘에서는 이 초기변환에, 이 최종변환에 사용된다. 복호화 알고리즘에서 사용되는 서브키 바이트들은 로 표시되며, 다음과 같이 정의된다.
-
암호화
1. 암호화 초기변환
HIGHT 암호화의 초기변환은 네 개의 화이트닝키 바이트 를 이용하여 평문 를 첫 번째 라운드 함수의 입력인
로 변환한다.
2. 암호화 라운드 함수
HIGHT의 라운드 함수는 다음과 같은 두개의 보조 함수를 갖는다.
라운드 함수는 부터 까지 32회 반복한다.
각 번째 라운드 함수 는 을 와 같이 변화한다.
마지막 라운드 함수인 에서는 바이트들을 섞지 않는다. 따라서 입력값 으로부터 출력값 은 다음과 같이 계산된다.
3.암호화 최종변환
HIGHT의 최종변환은 의 출력인 을 4개의 화이트닝키 을 이용하여 변환한다.
전망
국산 암호화 기술이 스마트폰, USN, U-City, U-Health등 유비쿼터스 환경에서 널리 활용될 수 있도록 중소기업을 포함한 산학연(산업계, 학계, 연구분야)을 대상으로 무료로 소스코드를 배포하는 등 암호이용 활성화를 위해 지속적으로 지원할 계획이라고 한다.
이 HIGHT 문서는 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘, 알고리즘 □■⊕, 블록체인 플랫폼, 블록체인 솔루션, 블록체인 서비스
|
|
채굴 알고리즘
|
SHA-256 • X11 • X11고스트 • X13 • X14 • X15 • X16R • X17 • 그로스톨 • 네오스크립트 • 니스트5 • 리라2알이 • 미리아드-그로스톨 • 블레이크 • 블레이크2 • 블레이크B • 블레이크2B • 블레이크256R8 • 블레이크256R14 • 스컹크해시 • 스케인 • 스크립트 알고리즘 • 스크립트엔 • 엘비알와이(LBRY) • 이더해시 • 이퀴해시 • 제반 • 쿼크 알고리즘 • 큐빗 알고리즘 • 크립토나이트 • 크립토나이트 라이트 • 타임트래블10 • 텐서리티 • 파스칼 • 프로그작업증명(ProgPoW)
|
|
매칭 알고리즘
|
BM25 • FAISS • 경매 • 더치 경매 • 매칭 알고리즘 • 매칭튜터 • 벡터검색 • 비크리 경매 • 센디 • 집닥 • 튜다 • 틴더
|
|
추천 알고리즘
|
TF-IDF • 역문서빈도(IDF) • 용어빈도(TF) • 추천 알고리즘 • 콘텐츠 기반 필터링 • 협업 필터링
|
|
고급 검색 알고리즘
|
AND-OR 검색 트리 • 국소 검색 알고리즘 • 국소 다발 검색 • 모의정련 • 언덕 오르기 검색 • 유전 알고리즘
|
|
대항 검색
|
검색의 차단 • 알파베타 가지치기 • 전방 가지치기 • 최소최대 알고리즘
|
|
제약 만족 문제
|
국소검색 • 역추적검색 • 제약전파
|
|
게임이론
|
게임이론 • 공유지의 비극 • 내시균형 • 메커니즘 디자인 • 비협조게임 • 사회선택이론 • 역게임이론 • 제로섬게임 • 조정게임 • 죄수의 딜레마 • 치킨게임 • 팃포탯 • 협조게임
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|