KR101364192B1 - 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램 - Google Patents

암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램 Download PDF

Info

Publication number
KR101364192B1
KR101364192B1 KR1020097001363A KR20097001363A KR101364192B1 KR 101364192 B1 KR101364192 B1 KR 101364192B1 KR 1020097001363 A KR1020097001363 A KR 1020097001363A KR 20097001363 A KR20097001363 A KR 20097001363A KR 101364192 B1 KR101364192 B1 KR 101364192B1
Authority
KR
South Korea
Prior art keywords
function
data
feistel structure
data series
extended feistel
Prior art date
Application number
KR1020097001363A
Other languages
English (en)
Other versions
KR20090052850A (ko
Inventor
타이조 시라이
쿄지 시부타니
Original Assignee
소니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 주식회사 filed Critical 소니 주식회사
Publication of KR20090052850A publication Critical patent/KR20090052850A/ko
Application granted granted Critical
Publication of KR101364192B1 publication Critical patent/KR101364192B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

확산행렬변환기구(DSM)를 실현하는 확장 Feistel형 공통열쇠블록암호처리구성을 실현한다. 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리구성에 있어서, F함수부의 선형변환처리에 있어서 복수의 다른 복수의 행렬을 선택적으로 적용한다. 행렬로서는, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 각 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이 선택된다. 본 발명에 의해 DSM에 의거하는 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록암호가 실현된다.

Description

암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램{Encryption processing device, method for building encryption process algorithm, encryption processing method, and computer program}
본 발명은, 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램에 관한 것이다. 더 상세하게는, Feistel형 공통열쇠블록암호처리를 실행하는 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램에 관한 것이다.
요즘, 네트워크통신, 전자상거래의 발전에 따라, 통신에 있어서의 시큐리티 확보가 중요한 문제로 되어 있다. 시큐리티 확보의 한가지 방법이 암호기술이며, 현재, 다양한 암호화수법을 이용한 통신이 실제로 실시되고 있다.
예를 들면 IC카드 등 소형장치 중에 암호처리 모듈을 장착하고, IC카드와, 데이터읽기쓰기 장치로서의 리더라이터(reader/writer)와의 사이에서 데이터 송수신을 행하고, 인증처리, 혹은 송수신 데이터의 암호화, 복호를 행하는 시스템이 실용화되어 있다.
암호처리 알고리즘에는 다양한 것이 있지만, 크게 분류하면, 암호화열쇠와 복호열쇠를 다른 열쇠, 예를 들면 공개열쇠와 비밀열쇠로서 설정하는 공개열쇠암호 방식과, 암호화열쇠와 복호열쇠를 공통의 열쇠로서 설정하는 공통열쇠암호방식으로 분류된다.
공통열쇠암호 방식에도 여러 가지 알고리즘이 있지만, 그 1개에 공통열쇠를 베이스로서 복수의 열쇠를 생성하고, 생성한 복수의 열쇠를 이용하여 블록 단위(64비트, 128비트 등)의 데이터 변환처리를 반복하여 실행하는 방식이 있다. 이러한 열쇠생성방식과 데이터변환처리를 적용한 알고리즘의 대표적인 것이 공통열쇠블록 암호방식이다.
대표적인 공통열쇠블록암호의 알고리즘으로서는, 예를 들면 미국 표준암호로서의 DES(Data Encryption Standard) 알고리즘이 있으며, 여러 가지 분야에 있어서 널리 이용되고 있다.
DES로 대표되는 공통열쇠블록암호의 알고리즘은, 주로, 입력데이터의 변환을 실행하는 라운드 함수부와, 라운드 함수(F함수)부의 각 라운드에서 적용하는 열쇠를 생성하는 열쇠 스케줄부로 나눌 수 있다. 라운드 함수부의 각 라운드에서 적용하는 라운드열쇠(부(副)열쇠)는, 1개의 마스터열쇠(주(主)열쇠)에 의거하여, 열쇠 스케줄부에 입력되어 생성되며, 각 라운드 함수부에서 적용된다.
이러한 라운드 함수를 적용한 알고리즘을 실행하는 구체적인 구조로서, Fei stel 구조가 알려져 있다. Feistel구조는 라운드 함수로 불리는 변환함수의 단순한 반복에 의해, 평문을 암호문으로 변환하는 구조를 가진다. Feistel구조를 적용한 암호처리에 대하여 기재한 문헌으로서는, 예를 들면 비 특허문헌 1, 비 특허문헌 2가 있다.
그러나, 예를 들면 Feistel구조를 적용하는 공통열쇠암호처리에 있어서는, 암호해석에 의한 열쇠의 누설이 문제가 되고 있다. 암호해석 또는 공격수법의 대표적인 수법으로서, 어느 차분을 가지는 입력데이터(평문)와 그 출력 데이터(암호문)를 다수 해석함으로써 각 라운드 함수에 있어서의 적용열쇠를 해석하는 차분해석(차분해독법 또는 차분공격이라고도 불림)이나, 평문과 대응 암호문에 의거하는 해석을 행하는 선형해석(선형해독법 또는 선형공격이라고도 불림)이 알려져 있다.
암호해석에 의한 열쇠의 해석이 용이하다라고 말하는 것은, 그 암호처리의 안전성이 낮다고 하는 것이다. 종래의 암호 알고리즘에 있어서는, 라운드 함수(F함수)부의 선형변환부에 있어서 적용하는 처리(변환행렬)가, 각 단의 라운드에 있어서 동일한 것이었기 때문에 해석을 행하기 쉽고, 결과적으로 열쇠해석의 용이성을 부르고 있었다.
이러한 문제에 대처하는 구성으로서, Feistel구조의 라운드 함수(F함수)부의 선형변환부에 2개 이상의 다른 행렬을 배치하는 구성이 제안되었다. 이 기술은 확산행렬변환기구(DSM:Diffusion Switching Mechanism, 이하 DSM)로 불린다. 이 DSM에 의해, 차분공격이나 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
이 확산행렬변환기구(DSM)는, 통상의 2개의 데이터계열을 가지는 Feistel구조에 대한 적용구성으로서 나타나고 있다. 또한, 이러한, 일반적인 2개의 데이터계열을 가지는 Feistel구조와 달리, 3개 이상의 데이터계열을 가지는 확장형의 Feistel구조가 있다. 그러나, 이러한 3개 이상의 데이터계열을 가지는 확장형의 Feistel구조에 있어서, 상술한 확산행렬변환기구(DSM)를 적용하여, 차분공격이나 선형공격에 대한 내성을 향상시키는 구성에 대한 개시는 없다.
비 특허문헌 1:K.Nyberg, "Generalized Feistel networks", ASIACRYPT'96, Springer Verlag, 1996, pp.91--104.
비 특허문헌 2:Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai:On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989:461-480
본 발명은, 상기 문제점을 감안하여 이루어진 것이며, 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록암호 알고리즘을 실현하는 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램을 제공하는 것을 목적으로 한다.
더 구체적으로는, 2개의 데이터계열을 가지는 Feistel구조를 확장한 Feistel구조, 즉, 예를 들면 3개, 4개 등, 2 이상의 임의의 데이터계열을 가지는 확장형의 Feistel구조에 있어서, 복수의 다른 선형변환행렬을 적용한 라운드 함수부를 설정하고, 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록암호 알고리즘을 실현하는 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램을 제공하는 것을 목적으로 한다.
도 1은, Feistel구조를 가지는 대표적인 공통열쇠블록암호의 구성을 나타내는 도면이다.
도 2는, 라운드 함수부로서 설정되는 F함수의 구성에 대하여 설명하는 도면이다.
도 3은, 2개의 다른 선형변환행렬을 이용한 Feistel형 암호 알고리즘에 대하여 설명하는 도면이다.
도 4는, 3개의 다른 선형변환행렬을 이용한 Feistel형 암호 알고리즘에 대하여 설명하는 도면이다.
도 5는, 확장 Feistel구조의 정의에 대하여 설명하는 도면이다.
도 6은, 7개의 데이터계열d=7을 가지는 확장 Feistel구조 예를 나타내는 도면이다.
도 7은, 확장 Feistel구조의 각 구성부 및 각 구성부의 입출력 데이터의 정의에 대하여 설명하는 도면이다.
도 8은, 확장 Feistel구조의 타입(1)에 대한 DSM의 적용에 대하여 설명하는 도면이다.
도 9는, 확장 Feistel구조의 타입(2)에 대한 DSM의 적용에 대하여 설명하는 도면이다.
도 10은, 확장 Feistel구조의 타입(1)에 대한 DSM의 적용에 대하여 설명하는 도면이다.
도 11은, 확장 Feistel구조의 타입(2)에 대한 DSM의 적용에 대하여 설명하는 도면이다.
도 12는, 확장 Feistel구조의 실장효율을 높인 구성에 대하여 설명하는 도면 이다.
도 13은, 확장 Feistel구조의 실장효율을 높인 하드웨어 구성 예에 대하여 설명하는 도면이다.
도 14는, 3종류의 F함수를 효율적인 실장으로 하기 위한 배치 예에 대하여 설명하는 도면이다.
도 15는, 데이터계열d=2의 Feistel구조로 한 2mn비트의 블록암호구성을 나타내는 도면이다.
도 16은, 확산행렬변환기구(DSM)를 만족하는 데이터계열수d=4의 확장 Feistel구조를 나타내는 도면이다.
도 17은, 다른 비트수의 블록암호를 실행하는 것을 가능하게 한 회로공유구성에 대하여 설명하는 도면이다.
도 18은, 3종류의 F함수(F1, F2, F3)의 F함수를 적용한 데이터계열d=2의 Feistel구조에 대하여 설명하는 도면이다.
도 19는, 3종류의 F함수(F1, F2, F3)를 실행하는 암호처리장치의 구성 예에 대하여 설명하는 도면이다.
도 20은, 본 발명에 관계되는 암호처리를 실행하는 암호처리장치로서의 IC모듈의 구성 예를 나타내는 도면이다.
본 발명의 제 1의 측면은,
암호처리장치이며,
비 선형변환처리 및 선형변환처리를 포함한 데이터 변환처리를 실행하는 SP형 F함수를 복수 라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 암호처리부를 가지며,
상기 암호처리부는,
데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지며,
상기 2 이상의 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬이며,
상기 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치한 구성을 가지는 것을 특징으로 하는 암호처리장치에 있다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 k개(다만, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 L(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 L]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, 상기 복수의 다른 행렬을, n개(다만, n은 2 이상의 정수)의 다른 행렬, M0, M1, ‥Mn- 1로 했을 때, 이러한 다른 행렬(M0, M1, ‥Mn- 1)을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 차례로 반복하여 배치한 구성을 가지는 것을 특징으로 한 다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, 1개의 라운드에 1개의 F함수만을 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, 1개의 라운드에 복수의 F함수를 병렬로 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, a≥2의 임의의 정수, x≥1의 임의의 정수로 했을 때, 상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 a종류의 F함수를 이용한 데이터계열수d=2ax의 확장 Fesitel구조를 적용한 암호처리를 실행하는 구성이며,
1개의 라운드에 있어서, 전 종류(a종류)의 F함수를 균등하게 x개씩 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, 1개의 라운드에 있어서 병렬로 실행하는 ax개의 F함수를 실행하는 F함수 실행부와, 상기 F함수 실행부에 대한 데이터 입출력 제어를 실행하는 제어부를 갖춘 구성인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 암호처리부는, 상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 복수의 F함수 실행부와, 상기 복수의 F함수 실행부의 이용순서를 설정에 따라 변경하는 제어부를 갖추 고, 상기 제어부는,
(a)데이터계열수d=2로 한 Feistel구조에 의한 암호처리, 또는,
(b1)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 암호처리, 또는,
(b2)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 암호처리,
상기 (a), (b1), (b2)의 어느 한쪽의 암호처리를 선택적으로 실행하는 구성인 것을 특징으로 한다.
또한, 본 발명의 암호처리장치의 실시형태에 있어서, 상기 제어부는, 암호화 또는 복호처리의 대상이 되는 데이터의 비트길이에 따라서, 실행하는 처리형태를 선택하는 구성인 것을 특징으로 한다.
또한, 본 발명의 제 2의 측면은,
암호처리장치에 있어서, 암호처리를 실행하는 암호처리방법이며,
암호처리부에 있어서, 비 선형변환처리 및 선형변환처리를 포함한 데이터변환처리를 실행하는 SP형 F함수를 복수 라운드 반복하는 Feistel형 공통열쇠블록 암호처리를 실행하는 암호처리 스텝을 가지며,
상기 암호처리스텝은,
데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 스텝이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용한 연산을 실행하는 연산 스텝을 가지며,
상기 연산스텝에 있어서 적용하는 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬이며,
상기 연산스텝은,
확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 상기 복수의 다른 행렬에 의거하는 선형변환연산을 실행하는 스텝인 것을 특징으로 하는 암호처리방법에 있다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 k개(다만, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 D]가 3 이상이 되 는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 L(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 L]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 복수의 다른 행렬을, n개(다만, n는 2 이상의 정수)의 다른 행렬, M0, M1, ‥Mn- 1로 했을 때, 상기 연산스텝은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 이러한 다른 행렬(M0, M1, ‥Mn- 1)을 차례로 반복하여 실행하는 스텝인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 암호처리스텝은, 1개의 라운드에 1개의 F함수만을 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 스텝인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 암호처리 스텝은, 1개의 라운드에 복수의 F함수를 병렬로 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 스텝인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 암호처리 스텝은,
a≥2의 임의의 정수, x≥1의 임의의 정수로 했을 때, 상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 a종류의 F함수를 이용한 데이터계열수d= 2ax의 확장 Fesitel구조를 적용한 암호처리를 실행하는 스텝이며,
1개의 라운드에 있어서, 전 종류(a종류)의 F함수를 균등하게 x개씩 실행하는 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 암호처리스텝은, 1개의 라운드에 있어서 병렬로 실행하는 ax개의 F함수를 실행하는 F함수 실행부를 적용하여, 상기 F함수 실행부에 대한 데이터 입출력 제어를 실행하는 제어부의 제어에 따른 암호처리를 실행하는 스텝인 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 암호처리스텝은, 상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 복수의 F함수 실행부와, 상기 복수의 F함수 실행부의 이용순서를 설정에 따라 변경하는 제어부에 의해서 암호처리를 실행하고, 상기 제어부의 제어에 의해서,
(a)데이터계열수d=2로 한 Feistel구조에 의한 암호처리, 또는,
(b1)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 암호처리, 또는,
(b2)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬 실행을 허용한 암호처리,
상기 (a), (b1), (b2)의 어느 한쪽의 암호처리를 선택적으로 실행하는 것을 특징으로 한다.
또한, 본 발명의 암호처리방법의 실시형태에 있어서, 상기 제어부는, 암호화 또는 복호처리의 대상이 되는 데이터의 비트길이에 따라서, 실행하는 처리형태를 선택하는 것을 특징으로 한다.
또한, 본 발명의 제 3의 측면은,
정보처리장치에 있어서 암호처리 알고리즘을 구축하는 암호처리 알고리즘 구축방법이며,
정보처리장치에 있어서의 제어부가, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리 알고리즘의 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에 적용하는 적어도 2 이상의 복수의 다른 행렬을 결정하는 행렬결정스텝과,
상기 제어부가, 상기 행렬결정스텝에 있어서 결정한 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치하는 행렬설정스텝을 가지며,
상기 행렬결정스텝은,
상기 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬을 적용 행렬로서 결정하는 처리를 실행하는 스텝인 것을 특징으로 하는 암호처리 알고리즘 구축방법에 있다.
또한, 본 발명의 제 4의 측면은,
암호처리장치에 있어서, 암호처리를 실행시키는 컴퓨터·프로그램이며,
암호처리부에 있어서, 비 선형변환처리 및 선형변환처리를 포함한 데이터 변 환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행시키는 암호처리스텝을 가지며,
상기 암호처리스텝은,
데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행시키는 스텝이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용한 연산을 실행하는 연산 스텝을 포함하고,
상기 연산스텝에 있어서 적용하는 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬이며,
상기 연산스텝은,
확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 상기 복수의 다른 행렬에 의거하는 선형변환연산을 실행하는 스텝인 것을 특징으로 하는 컴퓨터·프로그램에 있다.
또한, 본 발명의 제 5의 측면은,
정보처리장치에 있어서 암호처리 알고리즘을 구축시키는 컴퓨터·프로그램이며,
정보처리장치에 있어서의 제어부에, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리 알고리즘의 구성에 있어서, 각 라운드에 있어서 의 F함수에 있어서 실행하는 선형변환처리에 적용하는 적어도 2 이상의 복수의 다른 행렬을 결정시키는 행렬결정스텝과,
상기 제어부에, 상기 행렬결정스텝에 있어서 결정한 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치시키는 행렬설정스텝을 가지며,
상기 행렬결정스텝은,
상기 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬을 적용행렬로서 결정하는 처리를 실행하는 스텝인 것을 특징으로 하는 컴퓨터·프로그램에 있다.
또한, 본 발명의 컴퓨터·프로그램은, 예를 들면, 여러 가지 프로그램·코드를 실행 가능한 컴퓨터·시스템에 대해서, 컴퓨터 가독인 형식에서 제공하는 기억매체, 통신매체, 예를 들면, CD나 FD, MO 등의 기록매체, 혹은, 네트워크 등의 통신매체에 의해서 제공 가능한 컴퓨터·프로그램이다. 이러한 프로그램을 컴퓨터 가독인 형식에서 제공함으로써, 컴퓨터·시스템 상에서 프로그램에 따른 처리가 실현된다.
본 발명의 또 다른 목적, 특징이나 이점은, 후술하는 본 발명의 실시 예나 첨부하는 도면에 의거하는 것보다 상세한 설명에 의해서 밝혀질 것이다. 또한, 본 명세서에 있어서 시스템이란, 복수 장치의 논리적 집합 구성이며, 각 구성의 장 치가 동일 케이스 내에 있는 것에는 한정되지 않는다.
이하, 본 발명의 암호처리장치 및 암호처리방법과 컴퓨터·프로그램의 상세한 것에 대하여 설명한다. 설명은, 이하의 항목에 따라서 행한다.
1. SP형 F함수를 가지는 Feistel구조
2. 분기수 연산함수와 내성평가함수
2-1. 분기수 연산함수:Branch()
2-2. 차분공격에 대한 내성평가지표
2-3. 선형공격에 대한 내성평가지표
3. 2개의 데이터계열을 가지는 Feistel구조에 대한 DSM의 설정법
4.확장 Feistel구조에 있어서의 DSM의 설정
4-1. 확장 Feistel구조에 대하여
4-2. 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성
4-2-1. 최소분기수 B2 D의 값을 3 이상으로 하는 F함수 중의 행렬선택구성
4-2-2. 최소분기수 Bk D의 값을 3 이상으로 하는 F함수 중의 행렬선택구성
4-3. 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키기 위한 구성
4-3-1. 최소분기수 B2 L의 값을 3 이상으로 하는 F함수 중의 행렬선택구성
5. 특정의 형태를 가지는 확장 Feistel구조에 대한 DSM의 이용구성
5-1. 확장 Feistel구조의 타입(1)에 대한 DSM의 적용
5-2. 확장 Feistel구조의 타입(2)에 대한 DSM의 적용
6. 확장 Feistel구조 각 타입의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명
6-1. 확장 Feistel구조의 타입(1)의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명
6-2. 확장 Feistel구조의 타입(2)의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명
7. F함수의 설정 및 이용처리의 고안에 의거하는 실장에 있어서의 개량구성
7-1. 확장 Feistel의 타입(2)의 효율적인 F함수 배치방법
7-2. Feistel구조와 확장 Feistel구조에 있어서의 부품의 공통화
8. 본 발명의 암호처리 및 암호 알고리즘 구축처리의 통계
9. 암호처리장치의 구성 예
[1. SP형 F함수를 가지는 Feistel구조]
우선, SP형 F함수를 가지는 Feistel구조에 대하여 설명한다. 공통열쇠블록암호의 디자인으로서, Feistel구조가 알려져 있다. Feistel구조는 라운드 함수로 불리는 기본처리단위의 반복에 의해, 평문을 암호문으로 변환하는 구조를 가진다.
도 1을 참조하여, Feistel구조의 기본구성에 대하여 설명한다. 도 1에는, r라운드의 라운드수=r을 가지는 2개의 데이터계열을 가지는 Feistel구조의 예를 나타내고 있다. 또한, 라운드수(r)는, 설계의 단계에서 결정되는 파라미터이며, 예를 들면 입력되는 열쇠의 길이에 따라 변경 가능한 값이다.
도 1에 나타내는 Feistel구조에 있어서, 암호화 대상으로서 입력되는 평문의 길이를 2mn비트로 한다. 다만, m,n은 모두 정수이다. 처음에, 2mn비트의 평문을, mn비트의 2개의 입력데이터 PL(Plain-Left)(101), PR(Plain-Right)(102)에 분할하고, 이것을 입력값으로 한다.
Feistel구조는 라운드 함수로 불리는 기본처리단위의 반복으로 표현되며, 각 라운드에 포함되는 데이터 변환함수는 F함수(120)로 불린다. 도 1의 구성에서는, F함수(라운드 함수)(120)가 r단 반복된 구성 예를 나타내고 있다.
예를 들면 제 1번째의 라운드에서는, mn비트의 입력데이터(x)와, 열쇠생성부(도시하지 않음)로부터 입력되는 mn비트의 라운드열쇠(K1)(103)가 F함수(120)에 입력되며, F함수(120)에 있어서의 데이터 변환처리의 뒤에 mn비트의 데이터(Y)를 출력한다. 출력은 이미 다른 한쪽의 전단으로부터의 입력데이터(제 1단의 경우는 입력데이터 PL)와 배타적 논리화부(104)에 있어서, 배타적 논리화연산이 이루어지며, mn비트의 연산결과가 다음의 라운드 함수로 출력된다. 이 처리, 즉 F함수를 정해진 라운드수(r) 만큼 반복적용하여 암호화 처리가 완료하고, 암호문의 분할 데이터 CL(Cipher-Left), CR(Cipher-Right)가 출력된다. 이상의 구성에 의해, Feistel구조의 복호처리는 라운드열쇠를 삽입하는 순서를 반대로 하는 것만으로도 좋고, 역함수를 구성할 필요가 없다.
각 라운드의 함수로서 설정되는 F함수(120)의 구성에 대해서, 도 2를 참조하여 설명한다. 도 2(a)는, 1개의 라운드에 있어서의 F함수(120)에 대한 입력 및 출력을 나타내는 도면이며, 도 2(b)는, F함수(120) 구성의 상세를 나타내는 도면이다. F함수(120)는, 도 2(b)에 나타내는 바와 같이, 비선형변환층(S층)과 선형변환층(P층)을 접속한 이른바 SP형의 구성을 가진다.
도 2에 나타내는 F함수(120)는, 입출력 비트 길이가 m×n(m,n:정수) 비트의 설정을 가지는 함수이다. SP형 F함수 내부에서는 처음에 열쇠 데이터(Ki)와 데이터(xi)와의 배타적 논리화가 실행되며, 다음에 비선형변환층(S층)이 적용되며, 계속하여 선형변환층(P층)이 적용된다.
구체적으로는 비선형변환층(S층)은, S박스(S-box)(121)로 불리는 n비트 입력 n비트 출력의 비선형변환테이블이 m개 늘어선 것이며, mn비트의 데이터는 n비트씩 분할되어 각각 대응하는 S박스(S-box)(121)에 입력되어 데이터가 변환된다. 각 S박스에서는, 예를 들면 변환테이블을 적용한 비선형변환처리가 실행된다.
선형변환층(P층)은 선형변환부(122)에 의해서 구성되며, 선형변환부(122)는, S박스(121)로부터의 출력 데이터인 mn비트의 출력치(Z)를 입력하고, 이 입력에 대해서 선형변환을 시행하여 mn비트의 결과를 출력한다. 선형변환부(122)는, 입력비트 위치의 교체처리 등의 선형변환처리를 실행하고, mn비트의 출력치(Y)를 출력한다. 이 출력치(Y)가 전단으로부터의 입력데이터와 배타적 논리화가 되며, 다음 라운드의 F함수의 입력값으로 된다.
또한, 이하에 설명하는 본 실시 예의 구성에서는, 선형변환층(P층)으로서의 선형변환부(122)에 있어서 실행하는 선형변환은 GF(2) 상에서 정의되는 mn×mn의 행렬을 적용하여 행해지는 선형변환이라고 정의하고, 또, 제 i라운드째에 포함되는 행렬을 Mi라고 부르는 것으로 한다. 또한, 본 발명에 있어서 설명하는 구성에 있어서의 비선형변환부로서의 S박스와, 선형변환은, 모두 전단사(全單射)인 것으로 한다.
[2. 분기수 연산함수와 내성평가함수]
다음에, 본 발명을 이해하기 위해서 필요한 분기수 연산함수와 내성평가함수에 대하여 설명한다.
(2-1. 분기수 연산함수:Branch())
상술한 F함수 내의 선형변환층(p층)으로서의 선형변환부(122)에 있어서 실행되는 선형변환의 예로서의 최적확산변환(Optimal Diffusion Mappings)의 분기수 연산함수:Branch()를 이하와 같이 정의한다.
n×a 비트 데이터로부터 n×b 비트 데이터로의 선형변환을 행하는 사상,
θ:{0,1}na→{0,1}nb
에 대해서 분기수:Branchn(θ)를 다음과 같이 정의한다.
Branchn(θ)=minα≠0{hwn(α)+hwn(θ(α))}
다만, minα≠0{Xα}는, α≠0를 만족하는 모든 Xα 중 최소치를 나타내는 것으 로 하고, hwn(Y)은 비트열(Y)을 n비트 마다 단락지어 나타냈을 때에, n비트의 데이터 모두가 0이 아닌(비 제로) 요소의 수를 돌려주는 함수로 한다.
또한, 이때, Branchn(θ)가 b+1인 사상(θ)을 최적확산변환이라고 정의한다.
(2-2. 차분공격에 대한 내성평가지표)
Feistel구조를 적용하는 공통열쇠암호처리에 있어서는, 암호해석에 의한 열쇠의 누설이 문제가 된다. 암호해석 또는 공격수법의 대표적인 수법으로서, 어느 차분(△X)을 가지는 입력데이터(평문)와 그 출력 데이터(암호문)를 다수 해석하는 것으로써 각 라운드 함수에 있어서의 적용열쇠를 해석하는 차분해석(차분해독법 또는 차분공격이라고도 불린다)이나, 평문과 대응 암호문에 의거하는 해석을 행하는 선형해석(선형해독법 또는 선형공격이라고도 불린다)이 알려져 있다.
차분공격에 대한 내성을 도모하는 지표로서, 차분의 접속관계를 표현한 차분 패스에 포함되는 차분 액티브 S-box의 최소수가 적용 가능하다.
차분 패스란, 암호화 함수 중의 열쇠 데이터를 제외한 모든 데이터 부분에 대해서 특정 차분치를 지정한 것이다. 차분치는 자유롭게 결정할 수 있는 것이 아니라 변환처리 전후의 차분치는 서로 관련되어 있다. 선형변환처리의 전후에서는, 입력 차분과 출력 차분의 관계는 일 대 일로 결정된다. 비선형변환의 전후에서는, 입력 차분과 출력 차분의 관계는 일 대 일로는 결정되지 않지만, 확률이라고 하는 개념이 도입된다. 어느 입력 차분과 출력 차분에 대한 확률은 사전에 계산 할 수 있는 것으로 한다. 모든 출력에 대한 확률을 모두 서로 더하면 1로 되어 있다.
SP형의 F함수를 가진 Feistel구조에 있어서는, 비선형변환은 S-box에 의한 처리의 부분뿐이다. 따라서, 이 경우, 0 이외의 확률을 가지는 차분 패스와는 평문(입력)에 대하는 차분치에서 시작되어 암호문(출력)의 차분치까지 도달하는 차분 데이터의 집합이며, 모든 S-box의 전후로 주어지는 차분치는 0 이외의 확률을 가지는 것이다. 0 이외의 확률을 가지고 있는 차분 패스의 S-box에 입력되는 차분치가 0이 아닌 것을 차분 액티브 S-box라고 부르기로 한다. 0 이외의 확률을 가지는 모든 차분 패스의 액티브 S-box의 수 중에서, 가장 적은 수를 최소차분 액티브 S-box 수로 부르고, 이 수치가 차분공격에 대한 안전성 지표로서 알려져 있다. 또한, 모든 차분치가 0인 차분 패스는, 확률이 1이 되어 공격으로서 의미가 없기 때문에, 이후에서는 고려하지 않는다.
본 발명의 일 실시 예에 있어서는, 이 최소차분 액티브 S-box 수를 크게 보증함으로써 차분공격에 대한 안전성을 높이는 구성을 가진다.
(2-3. 선형공격에 대한 내성평가지표)
또한, 선형공격에 대한 내성을 도모하는 지표로서, 선형 마스크의 접속 관계를 표현한 선형패스(선형 근사(近似)로 불리는 것이 많지만, 차분과 대응시키기 위해 여기에서는 패스라는 말을 이용한다)에 포함되는 선형 액티브 S-box의 최소수가 적용 가능하다.
선형패스란, 암호화 함수 중의 열쇠 데이터를 제외한 모든 데이터 부분에 대 해서 특정의 선형 마스크치를 지정한 것이다. 선형 마스크치는 자유롭게 결정할 수 있는 것이 아니라 변환처리 전후의 선형치는 서로 관련되어 있다. 선형변환처리의 전후에서는, 입력 선형 마스크치와 출력 선형 마스크치의 관계는 일 대 일로 결정된다. 비선형변환의 전후에서는, 입력 선형 마스크치와 출력 선형 마스크치의 관계는 일 대 일로는 결정되지 않지만, 확률이라고 하는 개념이 도입된다. 입력 선형 마스크치에 대해서, 출력될 수 있는 하나 이상의 선형 마스크치의 집합이 존재하여, 각각이 출력되는 확률을 사전에 계산할 수 있다. 모든 출력에 대한 확률을 모두 서로 더하면 1이 된다.
SP형의 F함수를 가진 Feistel구조에 있어서는, 비선형변환은 S-box에 의한 처리의 부분뿐이다. 따라서, 이 경우, 0 이외의 확률을 가진 선형패스와는 평문(입력)에 대하는 선형치에서 시작되어 암호문(출력)의 선형치까지 이르는 선형 마스크치 데이터의 집합이며, 모든 S-box의 전후로 주어지는 선형치는 0 이외의 확률을 가지는 것이다. 0 이외의 확률을 가지고 있는 선형패스의 S-box에 입력되는 선형치가 0이 아닌 것을 선형 액티브 S-box라고 부르기로 한다. 0 이외의 확률을 가지는 모든 선형패스의 액티브 S-box의 수 중에서, 가장 적은 수를 최소 선형 액티브 S-box 수로 부르고, 이 수치가 선형공격에 대한 안전성 지표로서 알려져 있다. 또한, 모든 선형 마스크치가 0인 선형패스는, 확률이 1이 되어 공격으로서 의미를 만들어내지 않기 때문에, 이후에서는 고려하지 않는다.
본 발명의 일 실시 예에 있어서는, 이 최소 선형 액티브 S-box 수를 크게 보증함으로써 선형공격에 대한 안전성을 높인다.
[3. 2개의 데이터계열을 가지는 Feistel구조에 대한 DSM의 설정법]
먼저 설명한 바와 같이, Feistel구조를 적용한 암호처리에 있어서, 상술한 차분공격이나 선형공격에 대한 내성을 높이는 구성으로서, 확산행렬변환기구(DSM:Diffusion Switching Mechanism, 이하 DSM)를 적용한 구성이 제안되고 있다. DSM는, Feistel구조의 라운드 함수(F함수)부의 선형변환부에 2개 이상이 다른 행렬을 배치하는 구성이다. 이 DSM에 의해, 최소 선형 액티브 S-box 수를 크게 보증하는 것이 가능해지며, 차분공격이나 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
이 DSM에 대해서, 그 개요를 설명한다. Feistel구조에 있어서, 확산행렬변환기구(DSM)를 적용한 경우, Feistel구조를 구성하는 라운드 함수(F함수)부의 선형변환부(P층)에 있어서 적용하는 행렬은, 복수의 다른 행렬이 된다. 예를 들면, 도 1 에 나타내는 r라운드의 Feistel구조의 각 라운드에 있어서의 적용 행렬은, 모두 같은 선형변환행렬로서 설정되는 것이 아니라, 적어도 2 종류 이상의 행렬이, 특정의 규칙에 따라서 배열되게 된다.
예를 들면, 2개의 선형변환행렬(M0, M1)에 의해서, 확산행렬변환기구(DSM)를 실현한 Feistel구조 예를 도 3에, 3개의 선형변환행렬(M0, M1, M2)에 의해서, 확산행렬변환기구(DSM)를 실현한 Feistel구조 예를 도 4에 나타낸다.
도 3에 나타내는 Feistel구조 예에 있어서, 2개의 선형변환행렬(M0, M1)은, 다른 행렬에 의해서 구성된다. 또, 도 4에 나타내는 Feistel구조 예에 있어서는, 3개의 선형변환행렬(M0, M1, M2)은, 다른 행렬에 의해서 구성된다.
확산행렬변환기구(DSM)를 실현하기 위해서는, 적용하는 행렬이 소정의 조건을 만족하는 것이 필요하다. 이 조건의 하나가, 상술한 분기수(Branch)에 관한 제약이다. 이하, 이 제약에 대하여 설명한다.
Feistel구조에 있어서의 라운드 함수부의 선형변환에 적용하는 복수의 다른 행렬(M0∼M1) 각각의 분기수에 있어서,
적용행렬 중의 분기수의 최소치:B1 D와,
적용하는 복수 행렬의 결합행렬에 대응하는 분기수의 최소치:B2 D, B3 D, B2 L 을 이하와 같이 정의한다.
Figure 112009004103089-pct00001
상기 식에 있어서,
Mi는, Feistel구조에 있어서의 제 i라운드의 선형변환처리에 적용하는 선형변환행렬을 나타내고,
[Mi│Mi +2│‥]는, Mi│Mi +2│‥각 행렬의 연결에 의해 얻어지는 결합행렬을 나타내고,
tM은, 행렬 M의 전치 행렬, M-1은, 행렬 M의 역행렬을 나타낸다.
상기 식에 있어서, :B2 D, B3 D, B2 L은, 구체적으로는, Feistel구조에 있어서의 1개 건너 연속하는 2라운드 혹은 3라운드의 F함수에 포함되는 행렬을 결합한 행렬의 분기수의 최소치를 나타내고 있다.
예를 들면, 상기의 각 분기수가 이하의 조건, 즉,
B2 D≥3, B3 D≥3, B2 L≥3,
상기 조건을 만족시키도록 각 행렬을 설정하는 것으로, Feistel구조에 있어서, 차분공격이나 선형공격에 대한 내성을 향상시킬 수 있는 것이 알려져 있다.
또한, B1 D, B2 D, B3 D, B2 L에 있어서의 각 첨자는 이하의 의미를 가지는 것이다.
Bn D의 n은 결합하는 행렬수, Bn D의 D는 차분공격(Differential Attack)에 대한 내성을 가지기 위한 조건인 것을 나타내고, Bn L의 L은 선형공격(Linear Attack)에 대한 내성을 가지기 위한 조건인 것을 나타내고 있다.
[4. 확장 Feistel구조에 있어서의 DSM의 설정]
본 발명에서는, 2개의 데이터계열을 가지는 Feistel구조가 아니라, 예를 들 면 3계열이나, 4계열 등 2 이상의 임의의 데이터계열을 가지는 Feistel구조에 대해서 확산행렬변환기구(DSM)를 실현하는 구성을 제안한다. 이하, 이 구성에 대해서, 상세하게 설명한다.
본 발명에 있어서 취급하는 것은 SP형의 F함수를 사용하는 점에서는 상기의 2개의 데이터계열을 가지는 Feistel구조와 같지만, 데이터계열수의 분할수를 일반화하여 d로 한 확장 Feistel구조를 대상으로 한다. 다만 d는 2 이상의 정수이다.
상술한 바와 같이, 데이터계열수=2로 한정한 Feistel구조에 대한 DSM의 적용 구성에 대해서는 제안되어 있었지만, 데이터계열수(d)를 d≥2로 한 임의수의 d를 가지는 확장 Feistel구조에 대해서, DSM를 적용하여 내성을 향상시키는 방법이 알려져 있지 않았다. 본 발명은, d≥2로 한 임의수의 데이터계열수(d)를 가지는 확장 Feistel구조에 대해서 확산행렬변환기구(DSM)를 적용하여 차분공격이나 선형공격에 대한 내성을 향상시키는 구성을 실현하는 것이다.
이하, 본 발명의 구체적 구성 및 처리 예에 대해 설명한다.
(4-1. 확장 Feistel구조에 대해)
이하, 확장 Feistel구조의 정의에 대해서, 도 5를 참조하여 설명한다. 본 명세서에서는 확장 Feistel구조를 이하와 같이 정의한다.
1. d개(d는 2 이상)의 데이터계열을 갖고, 각 데이터계열의 사이즈는 mn비트.
2. F함수의 입출력 사이즈는 mn비트.
3. 라운드라고 하는 처리단위를 갖고, 라운드 내에서는 하나 또는 복수의 데 이터계열에 대해서 F함수에 의한 변환처리가 실시되며, 그 결과는 다른 데이터계열에 배타적 논리화가 된다. 다만, 2 이상의 F함수가 1 라운드 내에 포함되는 경우는 모든 F함수의 입출력이 되는 데이터계열에는 중복하는 계열이 존재하지 않는 것으로 한다.
상기의 정의에 의해서 구축되는 확장 Feistel구조의 예를 도 5를 참조하여 설명한다.
상기 정의 1. d개(d는 2 이상)의 데이터계열을 갖고, 각 데이터계열의 사이즈는 mn비트.
이 정의에 대해 도 5를 참조하여 설명한다. 도 5에 있어서, 데이터계열(1∼d)의 각각의 각 데이터계열의 입출력 사이즈가 mn비트이며, 입출력의 총비트수는 dmn비트인 것을 의미하고 있다.
상기 정의 2. F함수의 입출력 사이즈는 mn비트.
이 정의에 대해 도 5를 참조하여 설명한다. 예를 들면 F함수(202)에는 데이터계열(2)로부터 상단의 배타적 논리화(XOR) 연산부(201)로부터 연산결과로서의 mn비트가 입력되며, 또한, 라운드열쇠(K)가 입력되어 연산처리가 실행된다. 이 연산처리는, 도 2(b)를 참조하여 설명한 처리이며, S박스에 있어서의 비선형변환과, 선형변환부에 있어서의 선형변환행렬(Mi)을 적용한 선형변환처리가 포함된다. F함수(202)의 출력은 mn비트이며, 데이터계열(4)의 배타적 논리화(XOR) 연산부(203)에 입력된다.
상기 정의 3. 라운드라고 하는 처리단위를 갖고, 라운드 내에서는 하나 또는 복수의 데이터계열에 대해서 F함수에 의한 변환처리가 실시되며, 그 결과는 다른 데이터계열에 배타적 논리화가 된다. 다만, 2 이상의 F함수가 1 라운드 내에 포함되는 경우는 모든 F함수의 입출력이 되는 데이터계열에는 중복하는 계열이 존재하지 않는 것으로 한다.
이 정의에 대해 도 5를 참조하여 설명한다. 도 5에는 r라운드의 구성을 가지는 확장 Feistel구조를 나타내고 있다. 각 라운드에는 1개 이상의 F함수가 포함되며, 그 결과는 다른 데이터계열에 배타적 논리화가 된다. 도 5에 나타내는 라운드(n)는, 복수의 F함수가 1 라운드 내에 포함된다. 도 5에 나타내는 F함수(211)와 F함수(212)이다.
이와 같이, 1개의 라운드에 복수의 F함수가 포함되는 경우, 각 F함수의 입출력 계열은, 각각 다른 데이터계열이며, 중복한 데이터계열이 입출력 계열로서 적용되지 않는 설정으로 한다.
도 5에 나타내는 F함수(211)의 입력데이터계열은 데이터계열(1), 출력 데이터계열은 데이터계열(2)이며,
F함수(212)의 입력데이터계열은 데이터계열(5) 이상의 어느 한쪽, 출력 데이터계열은 데이터계열(3)이며,
어느 한쪽의 입출력 데이터계열도 중복하지 않는 설정으로 된다.
또한, 도 5에도 나타내는 바와 같이, 본 명세서에서는, F함수는 [F], 라운드 열쇠는 [K]로서 나타낸다. 이러한 각 식별자(F, K)에 설정한 첨자는 이하의 의미를 가진다.
Fi n, Ki n의 i는 라운드를 나타내고, n은, 동일 라운드에 있어서의 F함수 또는 라운드열쇠의 식별번호를 나타낸다.
또한, 도면에는 나타내고 있지 않지만, 이하의 설명에 있어서, 각 라운드에 있어서의 F함수의 선형변환부에 있어서 적용되는 선형변환행렬은 [M]으로서 나타내고, M으로 설정하는 첨자도 상기와 마찬가지로,
Mi n의 i는 라운드를 나타내고, n은, 동일 라운드에 설정된 복수의 F함수 각각에 대응하는 선형변환행렬의 식별번호를 나타내는 것으로 한다.
도 6은, 상술한 정의를 만족하는 7개의 데이터계열(d=7)을 가지는 확장 Feistel구조 예를 나타낸 것이다. 또한, 도 6에 있어서는, 각 F함수의 출력과, 각 데이터계열과의 배타적 논리화 연산(XOR)부의 기호를 생략하고 있지만, 각 F함수의 출력과, 각 데이터계열과 각 교차포인트에서는, 각각의 입력에 의한 배타적 논리화 연산(XOR)이 실행되며, 그 배타적 논리화 연산(XOR) 결과가 동일 데이터계열의 아래 방향으로 출력되는 구성이다. 도 6에 나타내는 예에서는, 라운드(i+4), 라운드(i+5), 라운드(i+9), 라운드(i+10)가 하나의 라운드에 2개 이상의 F함수가 포함되는 라운드이며, 이러한 라운드에 나타내는 F함수[F]와, 라운드열쇠[K]는, 동일 라운드에 있어서의 F함수 또는 라운드열쇠의 식별번호를 나타내는 번호가 오른쪽 위에 나타나고 있다.
상기 정의(1∼3)에 따라서, 계열수(d)를 d=2로 한 Feistel구조를 구축하면, 2개의 데이터계열로 이루어지는 Feistel구조, 즉, 먼저 도 1을 참조하여 설명한 Feistel구조가 된다. 즉, 2개의 각 데이터계열에 교대로 F함수가 왕래하는 결선(結線)구조가 되지만, 3개 이상의 데이터계열을 가지는 확장 Feistel구조의 경우는 F함수의 입력과 출력으로서 선택되는 데이터계열이 복수존재하기 때문에 결선구조가 하나의 뜻으로 정해질 일은 없다. 즉 확장 Feistel구조에서는 d가 커질수록, F함수의 설치장소의 자유도가 지수함수적으로 증대하게 된다.
본 발명에서는, 이러한 확장 Feistel구조에 있어서, 차분공격이나 선형공격에 대한 내성을 향상시키는 확산행렬변환기구(DSM:Diffusion Switching Meehan ism)를 실현하는 구성을 제안한다.
계열수(d)를 d=2로 한 Feistel구조에서는, 예를 들면, 도 3이나 도 4에 나타내는 바와 같이, Feistel구조를 구성하는 라운드 함수(F함수)부의 선형변환부(P층)에 있어서 적용하는 행렬을, 2개의 다른 선형변환행렬(M0, M1), 혹은, 3개의 다른 선형변환행렬(M0, M1, M2)로 하는 것 등에서 DSM이 실현된다. 다만, DSM를 실현하기 위해서는, 적용하는 행렬이 소정의 조건을 만족하는 것이 필요하다. 이 조건의 하나가, 상술한 분기수(Branch)에 관한 제약이다.
데이터계열수(d)를,
d:d≥2의 임의의 정수
로 한 확장 Feistel구조에 있어서, DSM을 실현하는 구성의 설명 전에, 이하의 설명에 있어서 사용하는 확장 Feistel구조의 각 구성부 및 각 구성부의 입출력 데이터의 정의에 대해서, 도 7을 참조하여 설명한다.
도 7은, 예를 들면 도 6에 나타내는 확장 Feistel구조를 구성하는 1개의 데이터계열만을 추출하여 나타내는 도면이다. 도 7에 나타내는 바와 같이, 어느 1개의 데이터계열로의 입력데이터는 1회 이상의 F함수의 출력이 배타적 논리화(XOR) 가 되어 출력에 이르고 있는 것을 알 수 있다. 이것은 확장 Feistel구조에 포함되는 임의의 데이터계열에 적합하다.
도 7에서는, 한 개의 데이터계열[s(i)]에 대해 복수의 F함수[FS (i),1, FS (i),2,…]의 출력이 배타적 논리화 연산(XOR)에 의해 서로 더해져 가는 모습을 나타내고 있다.
또한, 확장 Feistel구조 중 d개 있는 데이터계열을, 각각, s(i)(1≤i≤d)로 하고, 데이터계열(s(i))에 입력하는 F함수를, 데이터계열(s(i))의 입력에 가까운 쪽부터 FS (i),1, FS (i),2,…로 이름 붙이기로 한다.
또 데이터계열(s(i))의 입력데이터를 WS (i),0으로 하고,
F함수 FS (i),j의 출력이 배타적 논리화된 후의 데이터를 WS (i),j로 한다.
또, F함수 FS (i),j로의 입력데이터를 XS (i),j로 한다.
각 Xs(i),j는, 데이터계열(s(i)) 이외의 다른 계열에 속하는 데이터이지만, 여기에서는 그들이 어디의 계열에 속하고 있을지는 묻지않는 것으로 한다.
이때, 확장 Feistel구조는, 이러한 d개의 데이터계열이 서로 접속되어 구성 되는 것이라고 생각할 수 있다.
확장 Feistel구조에 있어서, DSM을 실현하기 위한 구성
이하, d:d≥2의 임의의 정수
로 한 확장 Feistel구조에 있어서, DSM을 실현하기 위한 구성에 대해 설명한다. 설명은,
(4-2) 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성
(4-3) 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키기 위한 구성
이러한 각 구성에 대해서, 차례차례, 설명한다.
(4-2. 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성)
우선, 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성에 대해 설명한다.
상술한 바와 같이, 차분공격은, 어느 차분(△X)을 가지는 입력데이터(평문)와 그 출력 데이터(암호문)를 다수 해석함으로써 각 라운드 함수에 있어서의 적용열쇠를 해석하는 공격이며, 차분공격에 대한 내성을 도모하는 지표로서, 차분의 접속 관계를 표현한 차분 패스에 포함되는 차분액티브 S-box의 최소수가 적용된다. 차분 패스는, 암호화 함수 중의 열쇠 데이터를 제외한 데이터 부분에 있어서의 차분치이다. 선형변환처리의 전후에서는, 입력 차분과 출력 차분의 관계는 일 대 일로 결정되며, 비선형변환처리의 전후에서는, 일 대 일로는 되지 않지만, 어느 입력 차분에 대한 출력 차분의 출현 확률이 산출된다. 모든 출력에 대한 확률을 모두 서로 더하면 1이 된다.
SP형의 F함수를 가진 Feistel구조에 있어서는, 비선형변환은 S-box뿐이다. 이 경우, 0 이외의 확률을 가지는 차분 패스는 평문(입력)에 대한 차분치로부터 시작되어 암호문(출력)의 차분치까지 도달하는 차분 데이터의 집합이며, 모든 S-box의 전후에서 주어지는 차분치는 0 이외의 확률을 가진다. O 이외의 확률을 가지고 있는 차분 패스의 S-box에 입력되는 차분치가 0이 아닌 것을 차분액티브 S-box라고 부른다. 0 이외의 확률을 가지는 모든 차분 패스의 액티브 S-box의 수 중에서, 가장 적은 수를 최소차분 액티브 S-box 수로 부르고, 이 수치가 차분공격에 대한 안전성 지표로서 이용된다.
최소차분 액티브 S-box 수를 크게 하는 것이, 차분공격에 대한 내성의 향상을 가져온다. 이하에서는, 데이터계열수(d)를 d≥2의 임의 정수로 한 확장 Feistel구조에 있어서, 최소차분 액티브 S-box 수의 수를 크게 하는 DSM구조를 구축하는 수법에 대해 설명한다.
확장 Feistel구조에 포함되는 F함수[FS (i),x]로 이용되는 선형변환행렬을 [MS(i),x]으로 한다. 이때, 분기수 연산함수:Branch()를 적용한 분기수의 산출식 B2 D(s(i))를 다음과 같이 정의한다,
Figure 112009004103089-pct00002
상기 식은, 확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[Fs (i),j, Fs (i),j+1] 중에서 이용되는 2개의 선형변환행렬[Ms(i),j, Ms(i),j+1]의 결합행렬[Ms (i),j│Ms (i),j+1] 중의 분기수의 최소치를 요구하는 식이다.
확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 있어서, 데이터계열(s(i))에 입력하는 F함수의 상단으로부터의 개수에 상당하는 [j]를 임의의 j로 하고, 데이터계열(s(i)) 상의 데이터[WS (i),j]에 대해 생각한다.
데이터계열(s(i))에 입력하는 2개의 F함수[Fs (i),j+1], [Fs (i),j+2]의 데이터계열(s(i))에 대한 입력부를 사이에 두는 데이터계열(s(i)) 상의 입출력 데이터[WS (i),j]와 [WS (i),j+2]에 대하여
Ws (i),j=0,
Ws (i),j+2=0인 경우를 생각한다.
이때, 데이터계열(s(i))에 입력하는 F함수 중, 서로 이웃하는 F함수[Fs (i),j+1]와 [Fs (i),j+2]로의 각각의 입력차분치[△Xs (i),j+1]와 [△Xs (i),j+2] 와의 사이에,
Figure 112009004103089-pct00003
라는 관계식이 성립하고 있다.
또한, 상기 식에 있어서, hw는 허밍 웨이트이며, 상기 식의 좌변은 F함수의 입력차분 데이터에 있어서의 비 제로의 요소수 즉 액티브 S-box 수의 합을 나타내고 있다. 이 수가 큰 값으로 보증되는 것이 차분공격으로의 내성 향상을 기대할 수 있는 조건이다. 따라서 그 이외의 조건이 같다면, B2 Ds((i))를 가능한 한 크게 하도록, 확장 Feistel구조를 구성하는 각 F함수 내의 행렬을 선택하는 것이 바람직하다.
지금까지의 확장 Feistel형 암호에서는 하나의 선형변환행렬을 모든 F함수 내의 선형변환부에서 이용하는 구성이 일반적이다.
그렇지만, 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[Fs (i),j, Fs(i),j+1] 중에서 이용되는 2개의 선형변환행렬[Ms (i),j], [Ms (i),j+1]이, 동일한 행렬이면, 상술한 분기수 연산함수:Branch()를 적용한 분기수의 산출식, 즉,
B2 D(s(i))
는 반드시 최저의 값인 2가 되어 버린다. 이 때문에 내성향상의 효과는 전망할 수 없다.
또 다른 행렬을 이용하고 있는 경우여도 부주의하게 2개의 행렬을 선택하여 버리면 B2 D(s(i))가 2가 되어 버리는 경우가 있다.
상술한 분기수 산출식에 의해서 정의되는 B2 D(s(i))를 보다 큰 분기수라고 하는 것이, 국소적인 최소차분 액티브 S-box 수를 크게 보증하게 되어, 차분공격에 대한 내성을 향상시키는 것이 가능해진다. 따라서, 예를 들면, B2 D(s(i))가 3 이상이 되도록 행렬을 선택하는 것으로, 차분공격에 대한 내성을 향상시키는 것이 가능해진다.
확장 Feistel구조의 모든 데이터계열에 대해서 B2 D(s(i))를 계산하고, 그들 중에서 최소의 값인 것을 B2 D로 한다. 이 B2 D를 3 이상으로 하는 바와 같이, F함수 중의 행렬을 선택하는 방법에 대해 이하 설명한다.
(4-2-1. 최소분기수 B2 D의 값을 3 이상으로 하는 F함수 중의 행렬선택구성)
우선, 확장 Feistel구조의 모든 데이터계열에 있어서의 최소분기수[B2 D(s(i))] 중 , 최소의 분기수[B2 D]를 3 이상으로 하기 위해서는, 최저 2종류의 행렬이 있으면 실현될 수 있는 것을 이하에 설명한다.
우선, 2개의 다른 행렬[A0]과 [A1]의 결합행렬[A0│A1]의 분기수가 3 이상이 되는, 즉,
Branchn([A0│A1])≥3
을 만족하는 2개의 다른 행렬[A0]과 [A1]을 준비한다.
다음에, 확장 Feistel구조의 데이터계열(s(i))에 입력하는 복수의 F함수의 선형변환부의 선형변환행렬을 이하와 같이 설정한다.
최초의 F함수 FS (1),1의 선형변환부로 설정하는 선형변환행렬을 A0,
제 2번째의 F함수 FS (1),2의 선형변환부로 설정하는 선형변환행렬을 A1,
제 3번째의 F함수 FS (1),3의 선형변환부로 설정하는 선형변환행렬을 A0,
:
와 같이 2개의 다른 행렬[A0]과 [A1]을 데이터계열(s(i))에 입력하는 복수의 F함수에 대해서, 위부터 순서대로 교대로 배치해 간다.
이와 같이 선형변환행렬을 설정한 경우, 임의의 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[FS (1),j, FS (1),j+1] 중에서 이용되는 2개의 선형변환행렬[MS(1),j, MS(1),j+1]의 결합행렬[MS (1),j│MS (1),j+1] 중의 분기수의 최소치를 구하는 상술한 식은,
Figure 112009004103089-pct00004
이다. 즉, 최소분기수가 3 이상인 것이 보증된다.
물론 행렬[A0]과 [A1]을 바꿔 넣어도 효과는 같다. 또, 확장 Feistel구조의 모든 데이터계열(s(i))에 대하여 마찬가지로 행렬을 설정하면, 2개의 행렬을 이용한 것만으로 B2 D의 값을 3 이상으로 하는 것이 가능하다.
이와 같이, Branchn([A0│A1])≥3
을 만족하는 2개의 다른 행렬[A0]과 [A1]을 준비하고, 이러한 각 행렬을, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 F함수에 교대로 배치하는 설정으로 하는 것으로, 최소분기수 B2 D의 값을 3 이상으로 하는 것이 가능해지며, 확산행렬변환기구(DSM)에 의한 차분공격에 대한 내성의 향상이 실현된다.
상술한 설명은, 2개의 다른 행렬[A0]과 [A1]을 적용한 예이다.
다음에, 다른 행렬을 2 이상의 임의의 수[k]로서 일반화한 예에 대해서, 이하, 설명한다.
확장 Feistel구조에 포함되는 F함수[FS (i),j]로 이용되는 선형변환행렬을 [MS(i),j]로 한다. 이때, 분기수 연산함수:Branch()를 적용한 분기수의 산출식 B2 D(s(i))을 다음과 같이 정의한다,
Figure 112009004103089-pct00005
상기 식은, 확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 입력하는 k개가 서로 이웃하는 F함수[FS (1),j, FS (1),j+1, …, FS (1),j+K-1] 중에서 이용되는 k개의 선형변환행렬의 결합행렬[MS (1),j, MS (1),j+1, …, MS (1),j+K-1]의 결합행렬[MS (1),j, MS(1),j+1, …, MS (1),j+K-1] 중의 분기수의 최소치를 구하는 식이다.
확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 있어서, 데이터계열(s(i))에 입력하는 F함수의 상단에서의 개수에 상당하는 [j]를 임의의 j로 하고, 데이터계열(s(i)) 상의 데이터[WS (i),j]에 대해 생각한다.
데이터계열(s(i))에 입력하는 k개의 F함수[FS (1),j+1]…[FS (1),j+K]의 데이터계열(s(i))에 대한 입력부를 사이에 두는 데이터계열(s(i)) 상의 입출력 데이터[WS (1),j]와, [WS (1),j+K]에 대하여,
WS (1),j=0,
WS (1),j+K=0인 경우를 생각한다.
이때,
데이터계열(s(i))에 입력하는 F함수 중, 서로 이웃하는 k개의 F함수[FS (1),j+1]…[FS (1),j+K]로의 각각의 입력 차분치[△XS (1),j+1]…[△XS (1),j+K]와의 사이에,
Figure 112009004103089-pct00006
이라는 관계식이 얻어진다.
또한, 상기 식에 있어서, hw는 허밍웨이트이며, 상기 식의 좌변은 F함수의 입력차분 데이터에 있어서의 비 제로의 요소수 즉 액티브 S-box 수의 합을 나타내고 있다. 이 수가 큰 값으로 보증되는 것이 차분공격으로의 내성 향상을 기대할 수 있는 조건이다. 따라서 그 이외의 조건이 동일하다면, Bk D(s(i))를 가능한 한 크게 하도록, 확장 Feistel구조를 구성하는 각 F함수 내의 행렬을 선택하는 것이 바람직하다.
그렇지만, 데이터계열(s(i))에 입력하는 k개가 서로 이웃하는 F함수[FS (1),j]…[FS (1),j+K-1] 중에서 이용되는 k개의 선형변환행렬[MS (1),j]…[MS (1),j+K-1] 중에, 같은 행렬이 1개라도 존재하면, 상술한 분기수 연산함수:Branch()를 적용한 분기수의 산출식, 즉,
Bk D(s(i))
는 반드시 최저의 값인 2가 되어 버린다. 이 때문에 내성향상의 효과는 전망할 수 없다.
또 k개의 선형변환행렬[MS (1),j]…[MS (1),j+K-1]에 다른 행렬을 이용하고 있는 경우에도 부주의하게 행렬을 선택해 버리면 Bk D(s(i))가 2가 되어 버리는 경우가 있다.
상술한 분기수 산출식에 의해서 정의되는 Bk D(s(i))를 보다 큰 분기수로 하는 것이, 국소적인 최소선형 액티브 S-box 수를 크게 보증함으로써, 차분공격에 대한 내성을 향상시키는 것이 가능해진다. 따라서, 예를 들면, Bk D(s(i))가 3 이상이 되도록 행렬을 선택하는 것으로, 차분공격에 대한 내성을 향상시키는 것이 가능해진다.
확장 Feistel구조의 모든 데이터계열에 대해서 Bk D(s(i))를 계산하고, 그들 중에서 최소의 값인 것을 Bk D로 한다. 이 Bk D를 3 이상으로 한 바와 같이, F함수 중의 행렬을 선택하는 방법에 대하여 이하 설명한다.
(4-2-2. 최소 분기수Bk D의 값을 3 이상으로 하는 F함수 중의 행렬선택구 성)
확장 Feistel구조의 모든 데이터계열에 있어서의 최소분기수[Bk D(s(i))] 중, 최소의 분기수[Bk D]를 3 이상으로 하기 위해서는, 최저 k종류의 행렬이 있으면 실현될 수 있는 것을 이하에 설명한다.
우선, k개의 다른 행렬[A0], [A1], [A2], …[Ak -1]의 결합행렬[A0│A1│…│Ak -1]의 분기수가 3 이상으로 된다, 즉,
Branchn([A0│A1│…│Ak -1])≥3
을 만족하는 k개의 다른 행렬[A0], [A1], [A2], …[Ak -1]을 준비한다.
다음에, 확장 Feistel구조의 데이터계열(s(i))에 입력하는 복수의 F함수의 선형변환부의 선형변환행렬을 이하와 같이 설정한다.
최초의 F함수 FS (i),1의 선형변환부로 설정하는 선형변환행렬을 A0,
제 2번째의 F함수 FS (i),2의 선형변환부로 설정하는 선형변환행렬을 A1,
제 3번째의 F함수 FS (i),3의 선형변환부로 설정하는 선형변환행렬을 A2,
제 k번째의 F함수 FS (i),k의 선형변환부로 설정하는 선형변환행렬을 Ak -1,
제 k+1번째의 F함수 FS(i),k+1의 선형변환부로 설정하는 선형변환행렬을 A0,
제 k+2번째의 F함수 FS (i),k+2의 선형변환부로 설정하는 선형변환행렬을 A1,
:
와 같이 k개의 다른 행렬[A0], [A1], [A2], …[Ak -1]을 데이터계열(s(i))에 입력하는 복수의 F함수에 대해서, 위부터 순서대로, 반복하여 배치해 간다.
이와 같이 선형변환행렬[A0], [A1], [A2], …[Ak -1]을 설정한 경우, 임의의 데이터계열(s(i))에 입력하는 k개가 서로 이웃하는 F함수[FS (i),j, FS (i),j+1…FS (i),j+k-1] 중에서 이용되는 k개의 선형변환행렬[MS (i),j, MS (i),j+1…FS (i),j+k-1]의 결합행렬[MS (i),j, MS(i),j+1…MS (i),j+k-1] 중의 분기수의 최소치를 요구하는 식은,
Figure 112009004103089-pct00007
이다. 즉, 최소 분기수가 3 이상인 것이 보증된다.
물론 행렬[A0], [A1], [A2], …[Ak -1]을 바꿔 넣어도 효과는 같다. 또, 확장 Feistel구조의 모든 데이터계열(s(i))에 대하여 마찬가지로 행렬을 설정하면, k개의 행렬을 이용한 것만으로 B2 D의 값을 3 이상으로 하는 것이 가능하다.
이와 같이,
Branchn([A0│A1│…│Ak -1])≥3
을 만족하는 k개의 다른 행렬[A0], [A1], [A2], …[Ak -1]을 준비하고, 이러한 각 행렬을, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 F함수에 차례로 반복배치하는 설정으로 하는 것으로, 최소 분기수 Bk D의 값을 3 이상으로 하는 것이 가능해지며, 확산행렬변환기구(DSM)에 의한 차분공격에 대한 내성향상이 실현된다.
또한, k값의 선택에 관해서는, 최저여도 k가 2 이상이면 효과가 기대된다. k가 커질수록, 보증되는 범위가 커지기 때문에, 내성의 향상을 보다 기대할 수 있다. 그러나, 한편으로, 필요한 행렬 종류의 최소수가 커지기 위해 효율적인 실장에 부적합하게 될 가능성이 있다. 따라서 k의 값은 설계 단계에서 상황에 따라 선택되어야 할 값이다.
(4-3. 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키기 위한 구성)
다음에, 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키는 구성에 대하여 설명한다.
먼저, 설명한 바와 같이, 선형공격에 대한 내성을 도모하는 지표로서는, 선형 마스크의 접속관계를 표현한 선형패스(선형 근사로 불리는 것이 많지만, 차분과 대응시키기 위해 여기에서는 패스라는 말을 이용한다)에 포함되는 선형 액티브 S-box의 최소수가 적용 가능하다. 선형패스는, 암호화 함수 중의 열쇠 데이터를 제외한 모든 데이터 부분에 대해서 특정의 선형 마스크치를 지정한 것이다. 선형변환처리의 전후에서는, 입력 선형 마스크치와 출력 선형 마스크치의 관계는 일 대 일로 결정되며, 비선형변환처리의 전후에서는, 일 대 일로는 되지 않지만, 어느 입 력 선형 마스크에 대한 출력 선형 마스크의 출현 확률이 산출된다. 모든 출력에 대한 확률을 모두 서로 더하면 1이 된다.
SP형의 F함수를 가진 Feistel구조에 있어서는, 비선형변환은 S-box에 의한 처리의 부분뿐이다. 따라서, 이 경우, 0 이외의 확률을 가지는 선형패스와는 평문(입력)에 대하는 선형치로부터 시작되어 암호문(출력)의 선형치까지 이르는 선형 마스크치 데이터의 집합이며, 모든 S-box의 전후로 주어지는 선형치는 0 이외의 확률을 가지는 것이다. 0 이외의 확률을 가지고 있는 선형패스의 S-box에 입력되는 선형치가 0이 아닌 것을 선형 액티브 S-box라고 부른다. 0 이외의 확률을 가진 모든 선형패스의 액티브 S-box의 수 중에서 가장 적은 수를 최소 선형 액티브 S-box 수라고 부르고, 이 수치가 선형공격에 대한 안전성 지표로서 이용된다.
최소 선형 액티브 S-box 수를 크게 하는 것이, 선형공격에 대한 내성향상을 가져온다. 이하에서는, 데이터계열수(d)를 d≥2의 임의 정수로 한 확장 Feistel구조에 있어서, 최소 선형 액티브 S-box 수의 수를 크게 하는 DSM구조를 구축하는 수법에 대하여 설명한다.
확장 Feistel구조에 포함되는 F함수[FS(i)x]로 이용되는 선형변환행렬을[MS(i)x]로 한다. 이때, 분기수 연산함수:Branch()를 적용한 분기수의 산출식 B2 L(s(i))을 다음과 같이 정의한다,
Figure 112009004103089-pct00008
상기 식은, 확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[Fs (i),j, Fs (i),j+1] 중에서 이용되는 2개의 선형변환행렬[Ms (i),j],[Ms (i),j+1] 각각의 역행렬의 전치행렬[tM-1 s(i),j],[tM-1 s(i),j+1]의 결합행렬[tM-1 s(i),jtM-1 s(i),j+1] 중의 분기수의 최소치를 요구하는 식이다.
확장 Feistel구조를 구성하는 임의의 데이터계열(s(i))에 있어서, 데이터계열(s(i))에 입력하는 F함수의 상단으로부터의 개수에 상당하는 [j]를 임의의 j로 g하고, 어느 j에 대해서,
j번째의 F함수에 대한 입력:Xs (i),j,
j번째의 F함수의 출력과, 데이터계열(s(i)) 위의 데이터와의 배타적 논리화(XOR) 결과:Ws (i),j,
j+1번째의 F함수에 대한 입력:Xs (i),j+1,
이러한 각 데이터의 선형 마스크를 각각,
ΓXs (i),j,
ΓWs (i),j,
ΓXs (i),j+1,
로 하면, 그 중 어느 하나라도 0이 아닌 것이 있다면, 이하의 식을 만족한다.
즉,
Figure 112009004103089-pct00009
상기 식을 만족한다. 상기 식의 좌변의 값이 큰 만큼 국소적인 선형 액티브 S-box 수가 많아지는 것을 의미하고 있다. 따라서, B2 L(s(i))를 크게 하도록 행렬을 선택하는 것이 바람직하다고 할 수 있다.
그렇지만, 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[Fs (i),j, Fs(i),j+1] 중에서 이용되는 2개의 선형변환행렬[Ms (i),j], [Ms (i),j+1]이, 동일한 행렬이면, 상기의 분기수 산출식, 즉,
B2 L(s(i))
는 반드시 최저의 값인 2가 되어 버린다. 이 때문에 내성향상의 효과는 기대할 수 없다. B2 L(s(i))를 보다 큰 분기수라고 하는 것이, 최소 선형 액티브 S-box 수를 크게 보증함으로써, 선형공격에 대한 내성을 향상시키는 것이 가능해진 다. 따라서, 예를 들면, B2 L(s(i))가 3 이상이 되도록 행렬을 선택하는 것으로, 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
확장 Feistel구조의 모든 데이터계열에 대해서 B2 L(s(i))를 계산하고, 그들 중에서 최소의 값인 것을 B2 L로 한다. 이 B2 L을 3 이상으로 하는 바와 같이, F함수 중의 행렬을 선택하는 방법에 대해 이하 설명한다.
(4-3-1. 최소분기수 B2 L의 값을 3 이상으로 하는 F함수 중의 행렬선택구성)
확장 Feistel구조의 모든 데이터계열에 있어서의 최소분기수[B2 L(s(i))] 중, 최소의 분기수[B2 L]를 3 이상으로 하기 위해서는, 최저 2종류의 행렬이 있으면 실현될 수 있는 것을 이하에 설명한다.
우선, 2개의 다른 행렬[A0]과 [A1]의 결합행렬[tA0 -1tA1 -1] 의 분기수가 2 이상이 된다, 즉,
Branchn([tA0 -1tA1 -1])≥3
을 만족하는 2개의 다른 행렬[A0]과 [A1]을 준비한다.
다음에, 확장 Feistel구조의 데이터계열(s(i))에 입력하는 복수의 F함수의 선형변환부의 선형변환행렬을 이하와 같이 설정한다.
최초의 F함수 FS (i),1의 선형변환부로 설정하는 선형변환행렬을 A0,
제 2번째의 F함수 FS (i),2의 선형변환부로 설정하는 선형변환행렬을 A1,
제 3번째의 F함수 FS (i),3의 선형변환부로 설정하는 선형변환행렬을 A0,
:
와 같이 2개의 다른 행렬[A0]과 [A1]을 데이터계열(s(i))에 입력하는 복수의 F함수에 대해서, 위부터 순서대로 교대로 배치해 간다.
이와 같이 선형변환행렬을 설정한 경우, 임의의 데이터계열(s(i))에 입력하는 2개의 서로 이웃하는 F함수[FS (i),j, FS (i),j+1] 중에서 이용되는 2개의 선형변환행렬[MS (i),j], [MS (i),j+1] 각각의 역행렬의 전치행렬렬[tM-1 s(i),j],[tM-1 s(i),j+1]의 결합행렬[tM-1 s(i),jtM-1 s(i),j+1] 중의 분기수의 최소치를 구하는 식은,
Figure 112009004103089-pct00010
가 된다. 즉, 최소분기수가 3 이상인 것이 보증된다.
물론 행렬[A0]와[A1]을 바꿔 넣어도 효과는 같다. 또, 확장 Feistel구조의 모든 데이터계열(s(i))에 대하여 마찬가지로 행렬을 설정하면, 2개의 행렬을 이용한 것만으로 B2 L의 값을 3 이상으로 하는 것이 가능하다.
이와 같이, Branchn(tA0 -1tA1 -1])≥3
을 만족하는 2개의 다른 행렬[A0]와[A1]을 준비하고, 이러한 각 행렬을, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 F함수에 교대로 배치하는 설정으로 하는 것으로, 최소분기수 B2 L의 값을 3 이상으로 하는 것이 가능해지며, 확산행렬변환기구(DSM)에 의한 선형공격에 대한 내성향상이 실현된다.
[5. 특정의 형태를 가지는 확장 Feistel구조에 대한 DSM의 이용구성]
상술한 바와 같이, 데이터계열수(d)를 d≥2의 임의 정수로 한 확장 Feistel구조에 있어서 DSM기술을 적용하는 것으로, 차분공격이나 선형공격에 대한 내성을 향상시키는 것이 가능하다. 이하, 차분공격이나 선형공격에 대한 안전성 지표를 높은 레벨로 보증할 수 있는 구체적인 확장 Feistel구조에 대해 설명한다.
먼저 도 5, 도 6을 참조하여 설명한 바와 같이, 데이터계열수(d)를 d≥2의 임의 정수로 한 확장 Feistel구조는, 1개의 데이터계열에 대한 입력이, 다른 여러 가지 데이터계열로부터 입력 가능하고, 또, 1개의 라운드에 있어서, 복수의 F함수가 병렬로 실행 가능한 등, 여러 가지 구성이 있다. 이하에서는, 확장 Feistel구조를, 크게 2개의 타입(타입 1, 타입 2)으로 분류하여, 각 타입마다, 차분공격이나 선형공격에 대한 안전성 지표를 높은 레벨로 보증할 수 있는 구체적인 확장 Feistel구조를 설명한다.
(5-1. 확장 Feistel구조의 타입(1)에 대한 DSM의 적용)
우선, 확장 Feistel구조의 타입(1)에 대하는 DSM의 적용에 대해서, 도 8을 참조하여 설명한다.
확장 Feistel구조의 타입(1)은, 이하의 파라미터를 가지는 것으로 한다.
파라미터
(a)데이터 분할수:d(d는 3 이상)
(b)입출력 데이터 길이:dmn비트
(c)분할 데이터 길이:mn비트
(d)1라운드 근처의 F함수의 수:1
도 8에 나타내는 바와 같이, 각 라운드 내에서는, 도 8에 나타내는 좌단의 데이터계열상의 mn비트 데이터에 대해서 F함수가 적용되며, F함수의 처리 결과는, 바로 근처의 데이터계열에 출력되며, 배타적 논리화된다. 또한, 도 8에 있어서는 배타적 논리화의 연산기호를 생략하고 있다.
도 8에 나타내는 바와 같이, 각 라운드에 있어서, F함수에 대한 데이터 입력을 행한 좌단의 데이터계열은, 다음의 라운드에서는, 우단으로 이동하고, 그 이외의 데이터계열은 왼쪽으로 하나씩 어긋나는 구성을 취한다.
이와 같이 각 라운드마다 1개의 F함수가 실행되는 확장 Feistel구조에 DSM을 적용하여 차분공격 및 선형공격에 대한 내성을 향상시키는 구성에 대하여 설명한다.
먼저 설명한 것(4-2. 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성)에 있어서, 확장 Feistel구조의 모든 데이터계열에 대해서 B2 D(S(i))를 계산하고, 그들 중에서 최소의 값인 것을 B2 D로 하고, 이 B2 D를 3 이상으로 하도록, F함수 중의 행렬을 선택하는 것으로, 차분공격에 대한 내성이 높아지는 것을 설명했다.
또한, 먼저 설명한 것(4-3. 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키기 위한 구성)에 있어서, 확장 Feistel구조의 모든 데이터계열에 대해서 B2 L(S(i))를 계산하고, 그들 중에서 최소의 값인 것을 B2 L로 하고, 이 B2 L을 3 이상으로 하도록, F함수 중의 행렬을 선택하는 것으로, 선형공격에 대한 내성이 높아지는 것을 설명했다.
이 B2 D와 B2 L에 더하여, 또한,
B1 D를, 도 8에 나타내는 타입(1)의 확장 Feistel구조 내에 포함되는 F함수 중의 선형변환행렬의 분기수 중 최소의 분기수라고 한다.
이때, 도 8에 나타내는 타입(1)의 확장 Feistel구조에 있어서의 연속하는 p라운드에 포함되는 차분 액티브 S-box 수를 ActD(p)라고 표기하고, 선형 액티브 S-box 수를 ActL(p)라고 표기하는 것으로 하면, 이하의 관계식이 존재한다.
ActD(3d)≥B1 D+B2 D
ActL(3d)≥2B2 L
상기 식에 있어서,
ActD(3d)는, 연속하는 3d라운드에 포함되는 차분 액티브 S-box 수,
ActL(3d)는, 연속하는 3d라운드에 포함되는 선형 액티브 S-box 수,
를 나타내고 있다.
이러한 관계식이 성립하는 것의 증명은 후술한다.
이것으로부터, B1 D, B2 D, B2 L이 커지는 행렬을 이용함으로써, 액티브 S-box 수를 많이 확보할 수 있게 되며, 결과적으로, 차분공격 및 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
또한, 이들 B1 D, B2 D, B2 L의 이론상 최대치는 m+1이 되는 것으로 알려져 있다.
상술의 식, 즉,
ActD(3d)≥B1 D+B2 D
ActL(3d)≥2B2 L
이러한 식의 우변에는, 먼저 설명한 최소분기수B2 D 또는 B2 L이 포함되어 있고, 이러한 최소분기수의 값을 크게 하는 것이, 액티브 S-box 수를 많이 확보하는 것에 공헌하게 되어, 차분공격 및 선형공격에 대한 내성을 향상시키기 위해서 유효가 된다. 따라서, 도 8에 나타내는 확장 Feistel구조의 타입(1)의 구성에 있어서는, 먼저 설명한 최소분기수 B2 D 또는 B2 L을 3 이상으로 하는 구성이, 유효한 것으로 되며, 이 구성으로 하는 것으로, 차분공격과 선형공격에 대한 내성을 지금까지보다 높게 보증하는 것이 가능해진다.
(5-2. 확장 Feistel구조의 타입(2)에 대한 DSM의 적용)
다음에, 확장 Feistel구조의 타입(2)에 대한 DSM의 적용에 대해서, 도 9를 참조하여 설명한다.
확장 Feistel구조의 타입(2)은, 이하의 파라미터를 가지는 것으로 한다.
파라미터
(a)데이터 분할수:d(단지, d는 4 이상의 짝수)
(b)입출력 데이터 길이:dmn비트
(c)분할 데이터 길이:mn비트
(d)1라운드 근처의 F함수의 수:d/2
도 9에 나타내는 바와 같이, 각 라운드 내에서는 좌단부터 세서 홀수 번째에 있는 mn비트의 데이터계열에 대해서 F함수가 적용되며, F함수의 처리결과는, 바로 근처의 데이터에 출력이 배타적 논리화된다. 또한, 도 9에 있어서는 배타적 논리화의 연산기호가 생략되어 있다.
도 9에 나타내는 바와 같이, 각 라운드에 있어서, F함수에 대한 데이터 입력을 행한 좌단의 데이터계열은, 다음의 라운드에서는, 우단으로 이동하고, 그 이외의 데이터계열은 왼쪽으로 하나씩 어긋나는 구성을 취한다.
이와 같이 각 라운드마다 d/2개의 F함수가 실행되는 확장 Feistel구조에 DSM을 적용하여 차분공격 및 선형공격에 대한 내성을 향상시키는 구성에 대하여 설명한다.
먼저 설명한 것(4-2. 확장 Feistel구조에 있어서 차분공격에 대한 내성을 향상시키기 위한 구성)에 있어서, 확장 Feistel구조의 모든 데이터계열에 대해서 B2 D(S(i))를 계산하고, 그들 중에서 최소의 값인 것을 B2 D로 하고, 이 B2 D를 3 이상으로 하도록, F함수 중의 행렬을 선택하는 것으로, 차분공격에 대한 내성을 높일 수 있는 것을 설명했다.
또한, 먼저 설명한 것(4-3. 확장 Feistel구조에 있어서 선형공격에 대한 내성을 향상시키기 위한 구성)에 있어서, 확장 Feistel구조의 모든 데이터계열에 대해서 B2 L(S(i))을 계산하고, 그들 중에서 최소의 값인 것을 B2 L로 하고, 이 B2 L을 3 이상으로 하도록, F함수 중의 행렬을 선택하는 것으로, 선형공격에 대한 내성이 높아지는 것을 설명했다.
이 B2 D와 B2 L에 가하고, 또한,
B1 D를, 도 9에 나타내는 타입(2)의 확장 Feistel구조 내에 포함되는 F함수 중의 선형변환행렬의 분기수 중 최소의 분기수로 한다.
이때, 도 9에 나타내는 타입(2)의 확장 Feistel구조에 있어서의 연속하는 p라운드에 포함되는 차분 액티브 S-box 수를 ActD(p)라고 표기하고, 선형 액티브 S-box 수를 ActL(p)라고 표기하면, 이하의 관계식이 존재한다.
ActD(6)≥B1 D+B2 D
ActL(6)≥2B2 L
상기 식에 있어서,
ActD(6)는, 연속하는 6라운드에 포함되는 차분 액티브 S-box 수,
ActL(6)는, 연속하는 6라운드에 포함되는 선형 액티브 S-box 수,
를 나타내고 있다.
이러한 관계식이 성립하는 것의 증명은 후술한다.
이것으로부터, B1 D, B2 D, B2 L이 커지는 행렬을 이용함으로써, 액티브 S-box 수를 많이 확보할 수 있게 되어, 결과적으로, 차분공격 및 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
또한, 이들 B1 D, B2 D, B2 L의 이론상 최대치는 m+1로 되는 것이 알려져 있다.
상술의 식, 즉,
ActD(6)≥B1 D+B2 D
ActL(6)≥2B2 L
이러한 식의 우변에는, 먼저 설명한 최소분기수(B2 D 또는 B2 L)가 포함되어 있고, 이러한 최소분기수의 값을 크게 하는 것이, 액티브 S-box 수를 많이 확보하는 것에 공헌하게 되며, 차분공격 및 선형공격에 대한 내성을 향상시키기 위해서 유효하게 된다. 따라서, 도 9에 나타내는 확장 Feistel구조의 타입(2)의 구성에 있어서는, 먼저 설명한 최소분기수(B2 D 또는 B2 L)를 3 이상으로 하는 구성이, 유효한 것으로 되며, 이 구성으로 하는 것으로, 차분공격과 선형공격에 대한 내성을 지금까지보다 높게 보증하는 것이 가능해진다.
[6. 확장 Feistel구조 각 타입의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명]
다음에, 상술한
(5-1. 확장 Feistel구조의 타입(1)에 대한 DSM의 적용)
(5-2. 확장 Feistel구조의 타입(2)에 대한 DSM의 적용)
에 있어서 설명한 액티브 S-box 수와 F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명에 대하여 설명한다.
(6-1. 확장 Feistel구조의 타입(1)의 액티브 S-box 수와 F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명)
우선, 먼저 도 8을 참조하여 설명한 확장 Feistel구조의 타입(1)의 액티브 S-box 수와 F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식의 증명에 대하여 설명한다.
즉, 타입(1)의 확장 Feistel구조에 있어서의 연속하는 p라운드에 포함되는 차분 액티브 S-box 수를 ActD(p)라고 표기하고, 선형 액티브 S-box 수를 ActL(p)라고 표기한 경우의 관계식,
ActD(3d)≥B1 D+B2 D
ActL(3d)≥2B2 L
이 관계식이 성립하는 것을 증명한다.
먼저 도 8을 참조하여 설명한 확장 Feistel구조의 타입(1)의 구성을, 다른 형태로 나타내면, 도 10과 같이 나타낼 수 있다. 도 8에서는, F함수로의 입력을 행하는 데이터계열이 좌단이 되도록 각 데이터계열의 줄을 라운드마다 바꿔 넣어 나타내고 있지만, 도 10은, 데이터계열의 라운드마다의 교체를 행하지 않고, 1개의 직선으로 나타내고 있다. 도 10에서는, 라운드 1∼6d까지를 나타내고 있다. d개의 라운드(라운드 1∼d, d+1~2d, …, 5d+1∼6d)를 1개의 옆 라인에 늘어놓아 나타내고 있지만, 이들은 병렬로 실행되는 것이 아니라, 각 라운드, 예를 들면 라운드 1∼d는, 차례차례 실행된다.
또, 도면에는, F함수의 출력과 각 데이터계열의 교점에 있어서의 배타적 논리화(XOR) 연산을 생략하고 있지만, F함수의 출력과 각 데이터계열의 교점에서는 배타적 논리화(XOR) 연산이 실행되며, 그 결과가, 다음 라운드의 F함수의 입력이 된다.
이 확장 Feistel구조의 타입(1)의 구성에 있어서, 먼저, (5-1. 확장 Feistel구조의 타입(1)에 대한 DSM의 적용)에 있어서 설명한 관계식,
ActD(3d)≥B1 D+B2 D
ActL(3d)≥2B2 L
이 성립하는 것을 증명한다.
상기 식에 있어서,
ActD(3d), ActL(3d)는, 도 8 또는 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서의 연속하는 3d라운드에 포함되는 차분 액티브 S-box 수와 선형 액티브 S-box 수를 의미한다.
B1 D는, 타입(1)의 확장 Feistel구조 내에 포함되는 F함수 중의 선형변환행렬의 분기수 중 최소의 분기수,
B2 D, B2 L은, 먼저 (4-2), (4-3)에 있어서 설명한 확장 Feistel구조 내에 포함되는 1개의 데이터계열에 입력하는 연속하는 F함수 중의 선형변환행렬의 결합행렬의 최소분기수 및 역행렬의 전치행렬의 결합행렬의 최소분기수이다.
B1 D, B2 D, B2 L은, 이하와 같이 정의된다.
Figure 112009004103089-pct00011
또한, 상기 정의에 있어서,
B1 D≥B2 D
의 관계가 성립하고 있다.
또, 도 8 또는 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서의 제 k번째의 F함수에 포함되는 차분 액티브 S-box 수를 Dk로 나타내고, 선형 액티브 S-box 수를 Lk로 나타내기로 한다.
(증명1. ActD(3d)≥B1 D+B2 D의 증명)
우선, ActD(3d)≥B1 D+B2 D의 증명을 행한다.
즉, 도 8, 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서, 연속하는 3d라운드에 포함되는 차분 액티브 S-box의 개수는 B1 D+B2 D 이상인 것을 증명한다.
타입(1)의 확장 Feistel구조에 있어서, 입력이 제로가 아닌 차분(△x)을 주었을 경우에 대하여 고찰한다. 이 경우, 타입(1)의 확장 Feistel구조는, 이하 4개의 성질을 가진다.
(성질 1) 연속하는 d라운드 안에 최저 하나의 라운드에서는 차분 액티브 S-box가 0이 아닌 것이 존재한다.
(성질 2) Dk=0이라면, DK -d+1=Dk+1
(성질 3) Dk≠0이라면, DK -d+1+Dk+Dk+1≥B1 D
(성질 4) Dk+Dk +d≠0이라면, DK -d+1+Dk+Dk +d+Dk +d+1≥B2 D
이상 4개의 성질을 이용하여,
ActD(3d)≥B1 D+B2 D
의 증명, 즉,
「연속하는 3d라운드에 포함되는 차분 액티브 S-box의 개수는 B1 D+B2 D이상 이다」
임을 증명한다.
대상으로 하는 라운드를 i+1번째부터 i+3d번째의 라운드로서 생각할 수 있다.
경우 1 : 만약, i+d+2라운드째부터 i+2d-1라운드째까지 0이 아닌 액티브 S-box가 존재하는 경우.
0이 아닌 액티브 S-box가 존재하는 라운드를 k로 하면 Dk≠O으로 나타낼 수 있다.
경우 1-1 : 경우 1에 더하여, Dk +d-1≠O인 경우,
성질 3에서 DK+Dk +1+Dk -d+1≥B1 D
성질 4에서 DK +d-1+Dk -2d+Dk -1+DK +d≥B2 D
이기 때문에,
Figure 112009004103089-pct00012
가 된다.
경우 1-2 : 경우 1에 더하여, Dk +1≠O인 경우,
성질 3에서 DK +1+Dk +2+Dk -d+2≥B1 D
성질 4에서 DK+Dk -d+1+Dk +d+DK +d+1≥B2 D
이기 때문에,
Figure 112009004103089-pct00013
이 된다.
경우 1-3 : 경우 1에 더하여, Dk +d-1=0 또는 Dk +1=0인 경우,
성질 2에서 DK=Dk +d≠0
성질 3에서 DK+Dk+1+Dk-d+1≥B1 D
성질 3에서 DK +d+Dk +d+1+Dk +1≥B2 D
DK +1=0이기 때문에
Figure 112009004103089-pct00014
이 된다.
경우 2 : 만약, i+d+2라운드째부터 i+2d-1라운드째까지 0이 아닌 액티브 S-box가 존재하지 않는 경우.
성질 1에서, Di +d+1≠0, 또는 Di +2d≠0이다.
경우 2-1 : Di +d+1≠0이지만 Di +2d=0의 경우,
성질 2에서 Di +d+1=Di +2d+1≠0
성질 3에서 Di +d+1+Di +d+2+Di +2≥B1 D
성질 3에서 Di +2d+1+Di +2d+2+Di +d+2≥B1 D
Di +d+2=0이기 때문에,
Figure 112009004103089-pct00015
이다.
경우 2-2 : Di +d+1=0이지만 Di +2d≠0의 경우,
성질 2에서 Di +2d=Di +d≠0
성질 3에서 Di +d+Di +d+1+Di +1≥B1 D
성질 3에서 Di +2d+Di +2d+1+Di +d+1≥B1 D
Di +d+1=0이기 때문에,
Figure 112009004103089-pct00016
이다.
경우 2-3 : Di +d+1≠0 또한 Di +2d≠0의 경우,
성질 3에서 Di +d+1+Di +d+2+Di +2≥B1 D
성질 3에서 Di +2d+Di +2d+1+Di +d+Di +1≥B2 D
이기 때문에,
Figure 112009004103089-pct00017
이다.
이상의 경우 1과 경우 2를 종합하면,
Figure 112009004103089-pct00018
인 것이 증명된다. 즉,
ActD(3d)≥B1 D+B2 D
가 성립하고, 도 8, 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서, 연속하는 3d라운드에 포함되는 차분 액티브 S-box의 개수 B1 D+B2 D 이상인 것이 증명된다.
(증명 2. ActL(3d)≥2B2 L의 증명)
다음에, ActL(3d)≥2B2 L의 증명을 행한다.
즉, 도 8, 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서, 연속하는 3d라운드에 포함되는 선형 액티브 S-box의 개수는 2B2 L 이상인 것을 증명한다.
또한, B2 L은, 상술한 바와 같이,
Figure 112009004103089-pct00019
로 정의한다.
또 k번째의 F함수에 포함되는 선형 액티브 S-box 수를 Lk로 나타내기로 한다.
타입(1)의 확장 Feistel구조에 있어서, 입력이 제로가 아닌 선형 마스크를 준 경우에는, 이하의 2개의 성질을 가진다.
(성질 5) 연속하는 d라운드 안의 최저 하나의 라운드에서는 선형 액티브 S-box가 0이 아닌 것이 존재한다.
(성질 6) Lk+Lk +1+Lk +d≥B2 L, 또는, Lk+Lk +1+Lk +d=0이다. 또한, Lk+Lk +1+Lk+d≥B2 L의 경우는 좌변에 포함되는 2 이상의 항이 동시에 0이 될 일은 없다.
이상의 2개의 성질을 이용하여,
ActL(3d)≥2B2 L
의 증명, 즉,
「연속하는 3d라운드에 포함되는 선형 액티브 S-box의 개수는 2B2 L 이상이다」는것을 증명한다.
대상으로 하는 라운드를 i+1번째부터 i+3d번째의 라운드로서 생각한다.
경우 1 : 만약, i+d+2라운드째부터 i+2d라운드째까지 0이 아닌 액티브 S-box가 존재하는 경우.
0이 아닌 액티브 S-box가 존재하는 라운드를 k로 하면 Lk≠O이다.
경우 1-1 : 경우 1에 더하여, Lk +d≠0 또는 Lk -1≠0인 경우,
성질 6에서 Lk+Lk +d+Lk +1≥B2 L
성질 6에서 Lk -1+Lk -1-d+Lk -d≥B2 L
이기 때문에,
Figure 112009004103089-pct00020
이 된다,
경우 1-2 : 경우 1에 더하여, Lk +d=0 또는 Lk -1=0인 경우,
성질 6에서 Lk -d+1≠0
성질 6에서 Lk+Lk -1+Lk +d-1≥B2 L
성질 6에서 Lk -d+1+Lk +1+Lk -d+2≥B2 L
이때, d≥4라면,
Figure 112009004103089-pct00021
이다.
d=3이라면, Lk -1이 겹치지만 이미 Lk -1=0인 것을 알고 있기 때문에,
마찬가지로,
Figure 112009004103089-pct00022
이다.
경우 2 : 만약, i+d+2라운드째부터 i+2d-1라운드째까지 0이 아닌 액티브 S-box가 존재하지 않는 경우.
성질 1에서, Li +d+1≠O으로 된다.
성질 6에서 Li +d≠0
성질 6에서 Li +d+1+Li +d+2+Li +2d+1≥B2 L
성질 6에서 Li +d+Li +d-1+Li +2d-1≥B2 L
이때, d≥4라면,
Figure 112009004103089-pct00023
이다.
d=3이라면, Li +5가 겹치지만 이미, Li +5=0인 것을 알고 있었기 때문에,
마찬가지로,
Figure 112009004103089-pct00024
이다.
이상의 경우 1과 경우 2를 종합하면,
Figure 112009004103089-pct00025
인 것이 증명된다. 즉,
ActL(3d)≥2B2 L
가 성립하고, 도 8, 도 10에 나타내는 타입(1)의 확장 Feistel구조에 있어서, 연속하는 3d라운드에 포함되는 선형 액티브 S-box의 개수는 2B2 L 이상인 것이 증명된다.
(6-2. 확장 Feistel구조의 타입(2)의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식 증명)
다음에, 도 9를 참조하여 설명한 확장 Feistel구조의 타입(2)의 액티브 S-box 수와, F함수 중의 선형변환행렬에 의거하는 최소분기수와의 관계식 증명에 대하여 설명한다.
즉, 타입(2)의 확장 Feistel구조에 있어서의 연속하는 p라운드에 포함되는 차분 액티브 S-box 수를 ActD(p)라고 표기하고, 선형 액티브 S-box 수를 ActL(p)라고 표기한 경우의 관계식,
ActD(6)≥B1 D+B2 D
ActL(6)≥2B2 L
이 관계식이 성립하는 것을 증명한다.
먼저 도 9를 참조하여 설명한 확장 Feistel구조의 타입(2)의 구성을, 다른 형태로 나타내면, 도 11과 같이 나타낼 수 있다. 도 9에서는, 라운드마다 각 데이터계열의 줄을 바꿔 넣어 나타내고 있지만, 도 11은, 데이터계열의 교체를 행하지 않고, 1개의 직선으로 나타내고 있다. 도 11에서는, 라운드 1∼12까지를 나타내고 있다. 2개의 라운드(1∼2, 3∼4, ‥)의 F함수를 1개의 옆 라인에 늘어놓아 나타내고 있다. 예를 들면, 도 11에 나타내는 라운드 1∼2의 옆 라인에 나타난 F함수 F1, 0∼F1, d-1 중, F1,0, F1,2, …, F1,d-2의 하나 걸러서(every other) F함수(출력의 화살표가 상향)가 제 1 라운드에 있어서 병렬로 실행된다. 다음의 제 2 라운드에 있어서, 나머지의 F1,1, F1,3, …, F1,d-1의 하나 걸러서 F함수(출력의 화살표가 하향)가 병렬로 실행된다.
도 11에 있어서, F함수를 식별하기 위한 번호는 증명을 알기 쉽게 하기 위해서 새롭게 도입한 것이며, 2개의 숫자를 사용하여 F함수의 위치를 결정하고 있다.
Fi,j의 i는, 라운드수(1=1, 2라운드, 2=3, 4라운드‥)를 나타내고, j는, 2개의 라운드에 있어서의 F함수의 하나를 나타내고 있다. 또한, j가 0, 2, 4의 짝수이면, 선행 라운드에 있어서의 F함수이며, j가 1, 3, 5의 홀수이면, 후속 라운드에 있어서의 F함수이다. 또한, F함수 Fi,j에 포함되는 선형변환행렬을[Mi,j]라고 부르는 것으로 한다.
이 확장 Feistel구조의 타입(2)의 구성에 있어서, 먼저, (5-2. 확장 Feistel구조의 타입(2)에 대한 DSM의 적용)에 있어서 설명한 관계식,
ActD(6)≥B1 D+B2 D
ActL(6)≥2B2 L
이 성립하는 것을 증명한다.
상기 식에 있어서,
ActD(6), ActL(6)은, 도 9 또는 도 11에 나타내는 타입(2)의 확장 Feistel구조에 있어서의 연속하는 6라운드에 포함되는 차분 액티브 S-box 수와 선형 액티브 S-box 수를 의미한다.
B1 D는, 타입(2)의 확장 Feistel구조 내에 포함되는 F함수 중의 선형변환행렬의 분기수 중 최소의 분기수,
B2 D, B2 L은, 먼저 (4-2),(4-3)에 있어서 설명한 확장 Feistel구조 내에 포함되는 1개의 데이터계열에 입력하는 연속하는 F함수 중 선형변환행렬의 결합행렬의 최소분기수 및 역행렬의 전치행렬의 결합행렬의 최소분기수이다.
B1 D, B2 D, B2 L은, 이하와 같이 정의된다.
Figure 112009004103089-pct00026
또한, 상기 정의에 있어서,
B1 D≥B2 D
의 관계가 성립하고 있다.
또, Fp,q에 포함되는 액티브 S-box의 수를 Dp,q로 나타내기로 한다. 또한 이후에서, 첨자 q의 부분이 음의 값이나 d 이상의 값을 가지는 경우에는, d에 의한 잉여 연산(q mod d)을 실시하여 항상 0≤q<d가 되도록 보정하기로 한다.
(증명 3. ActD(6)≥B1 D+B2 D의 증명)
우선, ActD(6)≥B1 D+B2 D의 증명을 행한다.
즉, 도 9, 도 11에 나타내는 타입(2)의 확장 Feistel구조에 있어서, 연속하는 6라운드에 포함되는 차분 액티브S-box의 개수는 B1 D+B2 D 이상인 것을 증명한다.
타입(2)의 확장 Feistel구조에 있어서, 입력이 제로가 아닌 차분(△x)을 준 경우에 대하여 고찰한다. 이 경우, 타입(2)의 확장 Feistel구조는, 이하 4개의 성질을 가진다.
(성질 1) 어느 i에 대해서, Fp ,q(p=i, q∈{O,..d-1}) 안에는 차분 액티브 S-box가 0이 아닌 것이 존재한다.
(성질 2)Dp ,q=0이면,
Dp -1,q+1=Dp ,q+1(q가 짝수일 때)
Dp ,q+1=Dp +1,q+1(q가 홀수일 때)
(성질 3)Dp ,q≠0이면,
Dp ,q+Dp -1,q+1+Dp ,q+1≥B1 D(q가 짝수일 때)
Dp ,q+Dp ,q+1+Dp +1,q+1≥B1 D(q가 홀수일 때)
(성질 4)Dp ,q+Dp +1,q≠0이면,
Dp ,q+Dp +1,q+Dp -1,q+1+Dp +1,q+1≥B2 D(q가 짝수일 때)
Dp ,q+Dp +1,q+Dp ,q+1+Dp +2,q+1≥B2 D(q가 홀수일 때)
이상 4개의 성질을 이용하여,
ActD(6)≥B1 D+B2 D
의 증명, 즉,
「1 이상의 임의의 정수 i에 대해서, p∈{i,i+1,i+2}, q∈{0,1,..d-1}를 만족시키는 3d개의 F함수 Fp,q에 포함되는 차분 액티브 S-box의 총수는 B1 D+B2 D 이상이다」
임을 증명한다.
Dp,q(p=i+1, q∈{0,1,..d-1})의 0이 아닌 요소를 임의로 꺼냈을 때, 그것이 Dj,k≠O 이었다고 한다. 상술한 것(성질 1)에서 반드시 존재하는 것이 나타난다.
경우 1 : Dj ,k-1≠O인 경우,
성질 3에서,
Dj ,k+Dj -1,k+1+Dj ,k+1≥B1 D(k가 짝수일 때)
Dj ,k+Dj ,k+1+Dj +1,k+1≥B1 D(k가 홀수일 때)
성질 4에서,
Dj -1,k-1+Dj ,k-1+Dj -1,k+Dj +1,k≥B2 D(k가 짝수일 때)
Dj ,k-1+Dj +1,k-1+Dj -1,k+Dj +1,k≥B2 D(k가 홀수일 때)
이기 때문에,
Figure 112009004103089-pct00027
이 성립한다.
경우 2 : Dj ,k+1≠0인 경우,
성질 3에서,
Dj ,k+1+Dj ,k+2+Dj +1,k+2≥B1 D(k가 짝수일 때)
Dj ,k+1+Dj -1,k+2+Dj ,k+2≥B1 D(k가 홀수일 때)
성질 4에서,
Dj ,k+Dj +1,k+Dj -1,k+1+Dj +1,k+1≥B2 D(k가 짝수일 때)
Dj -1,k+Dj ,k+Dj -1,k+1+Dj +1,k+1≥B2 D(k가 홀수일 때)
이기 때문에,
Figure 112009004103089-pct00028
이 성립한다.
경우 3 : Dj ,k-1=0 또는 Dj ,k+1=0인 경우,
성질 2에서, Dj ,k-1=0이므로
Dj +1,k=Dj ,k≠0(k가 짝수일 때)
Dj -1,k=Dj ,k≠0(k가 홀수일 때)
성질 3에서,
Dj ,k+Dj -1,k+1+Dj ,k+1≥B1 D(k가 짝수일 때)
Dj ,k+Dj ,k+1+Dj +1,k+1≥B1 D(k가 홀수일 때)
또한 성질 3에서,
Dj +1,k+Dj ,k+1+Dj +1,k+1≥B1 D(k가 짝수일 때)
Dj -1,k+Dj -1,k+1+Dj ,k+1≥B1 D(k가 홀수일 때)
Dj ,k+1=0이기 때문에,
Figure 112009004103089-pct00029
가 성립한다.
이상을 종합하면,
Figure 112009004103089-pct00030
인 것이 증명된다. 즉,
ActD(6)≥B1 D+B2 D
가 성립하고, 도 9, 도 11에 나타내는 타입(2)의 확장 Feistel구조에 있어서, 연속하는 6라운드에 포함되는 차분 액티브 S-box의 개수는 B1 D+B2 D 이상인 것이 증명된다.
(증명 4. ActL(6)≥2B2 L의 증명)
다음에, ActL(6)≥2B2 L의 증명을 행한다.
즉, 도 9, 도 11에 나타내는 타입(2)의 확장 Feistel구조에 있어서, 연속하는 6라운드에 포함되는 선형 액티브 S-box의 개수는 2B2 L 이상인 것을 증명한다.
또한, B2 L은, 상술한 바와 같이,
Figure 112009004103089-pct00031
라고 정의한다.
또 Fp ,q번째의 F함수에 포함되는 선형 액티브 S-box의 수를 Lp ,q로 나타내기로 한다.
타입(2)의 확장 Feistel구조에 있어서, 입력이 제로가 아닌 선형 마스크를 준 경우에는, 이하의 2개의 성질을 가진다.
(성질 5) 어느 i에 대해서, Fp ,q(p=i, q∈{O,..d-1}) 안에는 선형 액티브 S-box가 0이 아닌 것이 존재한다.
(성질 6)
Lj ,k+Lj +1,k+Lj ,k+1≥B2 L 또는, Lj ,k+Lj +1,k+Lj ,k+1=0 (k가 짝수일 때)
Lj ,k+Lj +1,k+Lj +1,k+1≥B2 L 또는, Lj ,k+Lj +1,k+Lj +1,k+1=0 (k가 홀수일 때)
또한, La+Lb+Lc≥B2 L의 형태의 경우는 좌변에 포함되는 2개 이상의 항이 동시에 0이 되는 것은 없다.
이상의 2개의 성질을 이용하여,
ActL(6)≥2B2 L
의 증명, 즉,
「1 이상의 임의의 정수 i에 대해서, p∈{i,i+1,i+2}, q∈{O,..d-1}를 만족시키는 3d개의 F함수 Fp,q에 포함되는 선형 액티브 S-box의 총수는 2B2 L 이상이다」라는것을 증명한다.
Lp ,q(p=i+1, q∈{O,..d-1})의 O이 아닌 요소를 임의로 꺼냈을 때, 그것이 Lj,k≠O이었다고 한다. 그러한 Lj ,k는 성질 5에서 반드시 존재하는 것이 나타난다.
성질 6에서,
Lj -1,k+Lj ,k+Lj -1,k+1≥B2 L (k가 짝수일 때)
Lj ,k+Lj +1,k+Lj +1,k+1≥B2 L (k가 홀수일 때)
경우 1 : Lj ,k-1≠0인 경우,
성질 6에서,
Lj ,k-1+Lj +1,k-1+Lj +1,k≥B2 L (k가 짝수일 때)
Lj -1,k-1+Lj ,k-1+Lj -1,k≥B2 L (k가 홀수일 때)
따라서, 이 경우,
Figure 112009004103089-pct00032
가 성립한다.
경우 2 : Lj ,k-1=0인 경우,
성질 6에서,
Lj -1,k-1≠0 (k가 짝수일 때)
Lj +1,k-1≠0 (k가 홀수일 때)
이므로,
Lj -1,k-2+Lj ,k-2+Lj -1,k-1≥B2 L (k가 짝수일 때)
Lj ,k-2+Lj +1,k-2+Lj +1,k-1≥B2 L (k가 홀수일 때)
이때 d≥4이므로, 이 경우,
Figure 112009004103089-pct00033
이 성립한다.
이상의 경우 1과 경우 2를 종합하면,
Figure 112009004103089-pct00034
인 것이 증명된다. 즉,
ActL(6)≥2B2 L
이 성립하고, 도 9, 도 11에 나타내는 타입(2)의 확장 Feistel구조에 있어서, 연속하는 6라운드에 포함되는 선형 액티브 S-box의 개수는 2B2 L 이상인 것이 증명된다.
[7. F함수의 설정 및 이용처리의 고안에 의거하는 실장에 있어서의 개량구성]
상술한 바와 같이, 본 발명에서는, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조에 있어서, 각 라운드의 F함수의 선형변환처리로서, 적어도 2 이상의 다른 행렬을 선택적으로 적용하는, 이른바 확산행렬변환기구(DSM)를 적용하는 것으로, 선형해석이나 차분해석에 대한 내성을 향상시킨 구성을 실현하고 있다.
이와 같이, 다른 복수의 행렬을 선택적용시키는 연산처리를 실행하는 구성을 하드웨어에서 실현되는 경우, 각각의 행렬에 대응하는 연산을 행하는 하드웨어 구성을 가지는 다른 F함수 처리부가 필요하다. 특히, 1개의 라운드에 있어서, 복수 의 F함수를 병렬로 실행시키려고 한 경우에는, 병렬처리를 행하기 위한 복수의 F함수용 회로가 필요하다.
즉, 먼저 도 9나 도 11을 참조하여 설명한 타입(2)의 확장 Feistel구조에서는, 동일 라운드에 복수의 F함수를 적용한 데이터 변환처리를 병렬로 실행하는 구성이며, 이 타입(2)의 구성에 따른 처리를 하드웨어에서 실행하는 경우, 1개의 라운드에서 병렬로 실행하는 개수 분의 F함수의 하드웨어를 실장하는 것이 필요하다. 이러한 병렬실행이 요구되는 F함수는, 동일 구성인 경우에서도, 그 동일 구성을 가지는 F함수를 복수, 갖추지 않으면 안 된다.
상술한 바와 같이, 본 발명의 암호처리 구성은, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성으로 하는 것으로 각종의 공격에 대한 내성을 높인 구성을 가진다. 즉, 확산행렬변환기구(DSM:Diffusion Switching Mechanism)를 갖춘 구성으로 한 것이다.
이 확산행렬변환기구(DSM)를 만족시키기 위해서는, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 k개(다만, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬로 설정하는 것 등의 조건이 만족되면 좋고, 각 라운드에 있어서 병렬로 실행되는 F함수에 있어서의 제약은 특히 없다.
이하에서는, 이 특성에 의거하여, 확장 Feistel구조에 있어서 확산행렬변환기구(DSM)에 의거하는 내성을 유지하면서, 실장 효율을 높인 구성 예에 대하여 설명한다.
(7-1. 확장 Feistel의 타입(2)의 효율적인 F함수 배치방법)
우선, 먼저, 도 9, 도 11을 참조하여 설명한 확장 Feistel의 타입(2)의 효율적인 F함수 배치구성에 대하여 설명한다. 타입(2)의 확장 Feistel구조는, 먼저 설명한 항목(5-2. 확장 Feistel구조의 타입(2)에 대한 DSM의 적용)에 있어서 기술한 바와 같이, 이하의 파라미터를 가진다.
파라미터
(a)데이터분할수:d(단지 d는 4 이상의 짝수)
(b)입출력 데이터 길이:dmn비트
(c)분할데이터 길이:mn비트
(d)1라운드 근처의 F함수의 수:d/2
즉, 도 9에 나타내는 바와 같이, 각 라운드 내에서는 좌단부터 세어 홀수 번째에 있는 mn비트의 데이터계열에 대해서 F함수가 적용되며, F함수의 처리결과는, 바로 근처의 데이터에 출력이 배타적 논리화된다. 또한, 도 9에 있어서는 배타적 논리화의 연산기호를 생략하고 있다.
이하에서는, 이러한 구성을 가지는 타입(2)의 확장 Feistel구조에 대한 실장 효율을 높인 구성에 대하여 설명한다. 일례로서, 데이터계열수(분할수)d=4의 경우에 대해서, 도 12를 참조하여 설명한다. 도 12에 있어서, 2개의 다른 선형변환 행렬(M1, M2)에 의해서 선형변환을 실행하게 되는 2개의 F함수를 각각, F1, F2로 한다.
도 12에 나타내는 Feistel구조는, F함수(F1, F2)의 2개의 F함수를 이용한 d=4의 확장 Feistel 구조의 타입(2)이다. 즉,
(a)데이터분할수:4
(b)입출력 데이터 길이:4mn비트
(c)분할 데이터 길이:mn비트
(d)1라운드 근처의 F함수의 수:4/2=2
를 가지는 구성이다.
이 도 12에 나타내는 구성의 경우, 2개의 F함수를 이용하여 DSM 조건을 만족시키도록 하려면 몇 개의 배치가 생각된다. 즉, DSM 조건을 만족시키기 위해서는, 상술한 바와 같이, 각 데이터계열(s(i))에 입력하는 연속하는 k개(다만, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬로 설정하는 것 등의 조건이 만족되면 좋고, 각 라운드에 있어서 병렬로 실행되는 F함수에 있어서의 제약은 특히 없다.
따라서, F함수의 설정형태로서는,
(a)1개의 라운드에 설정하는 복수의 F함수를 동일한 F함수로 하는 설정,
(b)1개의 라운드에 설정하는 복수의 F함수를 다른 F함수로 하는 설정,
상기 2개의 형태가 가능해진다.
여기에서는, 도 12에 나타내는 바와 같이, 1개의 라운드에 존재하는 2개의 F함수가 서로 F1, F2가 되도록 선택하는 구성을 취한다. 이 구성에 의한 메리트는, 1라운드 분의 처리를 기본으로서 하드웨어(H/W) 실장을 실시했을 경우에 현저하게 나타난다.
즉, 하드웨어(H/W) 실장으로서, 1개의 라운드 분의 처리만을 실행 가능한 구성, 즉, 도 13에 나타내는 바와 같이, F함수 F1과, 함수 F2를 병렬로 실행 가능한 구성을 가지는 하드웨어를 설정한다. 도 13은, 도 12에 나타내는 확장 Feistel구조에 따른 암호처리를 실행하는 하드웨어 구성을 가지는 암호처리장치(250)를 나타내는 블럭도이다.
암호처리장치(250)는, F함수 F1을 실행하는 제 1 F함수(F1) 전용처리회로(251)와, F함수 F2를 실행하는 제 2 F함수(F2) 전용처리회로(252)와, 제어회로(253) 및 보조회로(254)로부터 구성된다. 제 1 F함수(F1) 전용처리회로(251)와 제 2 F함수(F2) 전용처리회로(252)는 병렬로 동작 가능한 구성이며, 각 라운드에 있어서, 이러한 2개의 회로를 적용하여 2개의 다른 F함수에 의거하는 데이터 변환이 실행된다.
제어회로(253)는, 각 F함수 전용처리회로(251, 252) 및 보조회로(254)에 대한 입출력 데이터의 제어를 실행한다. 보조회로(254)는 F함수 이외의 연산처리 등을 실행한다.
이 구성을 적용하는 것으로, 필요한 라운드 수만큼, 제 1 F함수(F1) 전용처리회로(251)와, 제 2 F함수(F2) 전용처리회로(252)를 적용하여 라운드 연산을 행하는 것이 가능해진다. 모든 라운드에 있어서 2개의 F함수 전용회로가 병렬로 실행되며, 불필요한 회로를 설치하지 않는 실장이 가능해진다.
도 12에 나타내는 바와 같이 각 라운드에서 병렬로 실행하는 F함수가 2개인 경우, 이들을 다른 F함수로 설정하는 것으로, 도 13에 나타내는 하드웨어 실장에 의해, 모든 라운드 연산을 행하는 것이 가능해진다. 또한, 1개의 라운드에 있어서 실행하는 F함수를 같은 설정, 예를 들면 제 1 라운드에서, F1, F1를 병렬로 실행하고, 제 2 라운드에서 F2, F2를 실행하는 구성으로 한 경우, 하드웨어로서는, F1실행 회로와 F2실행 회로를 각각 2개 설치하는 것이 필요하게 되며, 도 13에 나타내는 구성에 비교하여 회로규모를 큰 것으로 하는 것이 필요하다.
도 12에 나타내는 바와 같이 각 라운드에서 실행하는 F함수의 조합을 모두 F1, F2의 설정으로 하는 것으로, 도 13에 나타내는 하드웨어를 적용하고, 각 라운드에 있어서, 항상 F1, F2를 동시에 실행할 수 있고, 회로 상의 낭비를 발생시키지 않고 회로규모를 작게 한 소형의 장치가 실현된다.
도 12에 나타내는 구성은, 데이터계열d=4의 경우지만, 그 외의 데이터계열수의 경우도, 동일한 설정으로 하는 것으로, 효율적인 실장이 가능해진다. 예를 들면 데이터계열수d=8의 경우, 1개의 라운드에는, 4개의 F함수가 설정되게 되지만, 이 4개의 F함수를, 2개의 다른 F함수(F1, F2)를 2개씩 설정하는 구성으로 한다.
이 경우의 실장구성은, F함수(F1, F2)를 각각, 2개씩 설치하고, 4개의 F함수(F1, F1, F2, F2)를 병렬실행 가능한 구성으로 한다. 이 구성에 의해, 모든 라운드에 있어서 4개의 모든 F함수가 병렬로 실행되며, 불필요한 회로를 설치하지 않는 실장이 가능해진다.
또, 데이터계열수d=16의 경우, 1개의 라운드에 존재하는 8개의 F함수를 F1, F2를 4개씩 설정한다. 또한 일반화하여, 데이터계열수d=4x의 경우에는, 각 라운드에 있어서, F함수(F1, F2)가 x개씩 이용되는 구성으로 하도록 하고, 하드웨어 실장으로서, F함수(F1, F2)를 각각 x개 설정한 구성으로 하면, 매 라운드에서 필요하게 되는 F1, F2의 개수가 같기 때문에 과부족 없이 실행할 수 있고 실장효율을 높일 수 있다.
상술한 처리 예는, 확산행렬변환기구(DSM)를 만족시키기 위해서, 2개의 선형변환행렬을 적용한 2개의 다른 F함수를 설정한 예이지만, 3종류 이상의 선형변환행렬을 이용하여 3종류 이상의 F함수를 설정한 경우에도 마찬가지인 것을 말할 수 있다.
3종류의 F함수를 효율적인 실장으로 하기 위한 배치 예를 도 14에 나타낸다. 도 14는, 데이터계열수d=6의 확장 Feistel의 타입(2)의 구조 예이다. 이 도 14에 나타내는 구성에서는, 1개의 라운드에 존재하는 3개의 F함수가 F1, F2, F3으로 반드시 하나씩 이용되는 구성이 되도록 설정되어 있다.
이 구성에 의해, 하드웨어(H/W) 실장 시에 F1, F2, F3을 각각 하나씩 실장하는 것만으로, 각 라운드에 있어서, F함수를 병렬로 실행시키는 구성으로 할 수 있고, H/W적으로 봐서 낭비가 없는 회로구성이 실현된다.
또한, 데이터계열수d=12의 경우는 1개의 라운드에 존재하는 6개의 F함수를 F1, F2, F3 각각 2개씩의 설정으로 한다. 또, 데이터계열수d=18의 경우는, 1개의 라운드에 설정하는 9개의 F함수에 대해서, F1, F2, F3을 3개씩의 설정으로 한다. 이들을 일반화하고, 데이터계열수d=6x의 경우에는, 각 라운드에서 설정하는 F함수를 F1, F2, F3의 각각이 x개씩 되도록 한다. 즉, 각 라운드에 있어서, 다른 F함수가 균등하게 이용되는 구성으로 한다.
이러한 F함수의 설정 구성으로 하는 것으로, 매 라운드에서 필요하게 되는 F1, F2, F3의 개수를 같은 수로 설정할 수 있고, 하드웨어 실장에 있어서 과부족 없이 이용하는 회로의 설정이 가능해지며, 실장효율을 높일 수 있다. 소프트웨어의 경우에도, 입출력 값을 취득하기 위한 테이블의 이용형태가 각 라운드에 있어서 균등하게 되므로, 여러 가지 패턴을 상정한 테이블을 구성하지 않고, 1개의 이용형태에 따른 테이블을 설정하여 메모리에 격납하는 것이 가능해진다.
상술한 각 처리 예를 또한, 일반화하면 이하와 같이 말할 수 있다.
(1)a종류의 F함수를 이용한 타입(2)의 확장 Fesitel 구조를 구성하는 경우, 데이터계열수(분할수)d=2ax, 단지 a는 2 이상의 정수, x는 1 이상의 정수로 했을 때, 1개의 라운드 내에 설정되는 ax개의 F함수로서 전 종류의 F함수가 균등하게 x개씩 설정하는 구성으로 하는 것으로 실장효율을 향상시키는 것이 가능해진다.
또한, 상술한 F함수의 설정에 있어서는, 각 데이터계열에 입력되는 F함수의 설정을, 상술한 DSM 조건을 만족시키는 설정으로 하는 것으로 내성의 유지가 가능 하다.
(7-2. Feistel구조와 확장 Feistel구조에 있어서의 부품의 공통화)
상술한 바와 같이, 지금까지 설명해 온 Feistel구조, 확장 Feistel의 타입(1), 확장 Feistel의 타입(2)의 어느 쪽에 대해서도 DSM 메커니즘을 이용함으로써, 공격에 대한 내성을 향상시키는 메리트가 있다.
즉, Feistel구조를 크게 분류하면,
(a)데이터계열수(분할수)d=2로 한 Feistel구조
(b)데이터계열수(분할수)d≥2의 임의 수라고 한 확장 Feistel구조
에 분류되며, 또한, 확장 Feistel구조는,
(b1)각 라운드에 있어서 1개의 F함수의 실행만을 허용한 타입(1),
(b2)각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 타입,
이들 (a), (b1), (b2)의 3 종류로 분류할 수 있다.
이러한 3종류의 Feistel구조의 어느 한쪽에 있어서도, DSM 메커니즘의 적용에 의한 내성향상이 실현된다.
DSM 메커니즘의 적용을 위해서는, 적어도 2 이상이 다른 선형변환행렬을 실행하는 다른 F함수를 실장하는 것이 필요하지만, 이 다른 복수의 F함수를 가지는 실장 구성에 의해서, 상술한 복수의 다른 Feistel구조 (a), (b1), (b2)를 선택적으로 실행가능한 장치를 실현할 수 있다. 이러한 선택적인 처리를 실행하는 장치 구성에 대하여 이하, 설명한다.
확산행렬변환기구(DSM)를 만족하는 선형변환행렬을 실행하는 복수의 다른 F 함수를 결정하고, 이러한 각 F함수에 있어서의 입출력 데이터의 데이터 사이즈를 mn비트로 한다. 이러한 F함수를 적용하는 것으로, 예를 들면, 도 15에 나타내는 바와 같은, 데이터계열d=2의 Feistel구조에서는 2mn비트의 블록암호가 실행된다.
도 15에 나타내는 데이터계열d=2의 Feistel구조의 각 F함수(F1, F2)는, 입출력 데이터 사이즈가 mn비트이다. 이 데이터계열d=2의 Feistel구조는, 2mn비트의 평문을 2mn비트의 암호문으로 하는 처리, 또는 그 반대의 복호처리를 행하고, 2mn비트의 블록암호를 실행한다.
또, 이 도 15에 나타내는 입출력 데이터 사이즈가 mn비트의 F함수(F1, F2)를 이용하는 것으로, 확산행렬변환기구(DSM)를 만족하는 데이터계열수d=4의 확장 Feistel구조를 구성할 수 있다. 도 16에 이 구성을 나타낸다.
도 16에 나타내는 데이터계열d=4의 확장 Feistel구조의 각 F함수(F1, F2)는, 입출력 데이터 사이즈가 mn비트이며, 도 15에 나타내는 F함수(F1, F2)를 그대로 적용한 것이다. 이 데이터계열d=4의 확장 Feistel구조는, 4mn비트의 평문을 4mn비트의 암호문으로 하는 처리, 또는 그 반대의 복호처리를 행하고, 4mn비트의 블록암호를 실행한다.
또한, 일반화하여, 데이터계열수d=x, 단지 x는 2 이상의 정수로 한 경우, xmn비트의 암호화 또는 복호처리를 실행하는 블록암호구성을, 같은 F함수 실행구성을 이용하여 구축할 수 있다.
예를 들면, 입출력 비트가 64비트의 다른 F함수(F1, F2) 만을 이용하고, DSM 기구를 실현하는 입출력 128비트 블록암호처리와 256비트 블록암호처리를 선택적으 로 실행 가능한 장치를 구성하는 것이 가능해진다.
즉 F함수로서는, 입출력 비트가 64비트의 다른 2개의 F함수(F1, F2)를 실장하고, 이러한 이용모양을 제어한다. 예를 들면, 데이터계열수d=2로 한 Feistel구조(도 15)에 의거하는 암호처리를 실행하는 경우는, 각 F함수(F1, F2)를 각 라운드에 있어서 1개 실행하는 구성으로 한다. 또한, 데이터계열수d=4로 한 확장 Feistel구조(도 16)에 의거하는 암호처리를 실행하는 경우는, 각 F함수(F1, F2)를 각 라운드에 있어서 병렬로 실행하는 구성으로 한다. 이와 같이, 2종류의 F함수를 장착하는 것으로, 입출력 128비트 블록암호와 256비트 블록암호를 선택적으로 실행 가능한 장치가 실현된다. 즉, 같은 F함수를 사용하여 접속방법을 바꾸는 것으로 다른 비트수의 블록암호를 실행하는 것이 가능하며, S/W, H/W 양자에 있어서 회로·코드의 공유화 등에 의한 실장효율의 향상을 기대할 수 있다.
이러한 구성을 가지는 암호처리장치의 구성 예를 도 17에 나타낸다. 도 17에 나타내는 암호처리장치(270)는, F함수 F1을 실행하는 제 1 F함수(F1) 전용처리회로(271)와, F함수 F2를 실행하는 제 2 F함수(F2) 전용처리회로(272)와, 제어회로(273) 및 보조회로(274)로부터 구성된다. 제 1 F함수(F1) 전용처리회로(271)와, 제 2 F함수(F2) 전용처리회로(272)는 병렬로 동작 가능한 구성이다. 제어회로(273)는, 각 처리부에 대한 데이터 입출력 제어를 행하는 동시에, Feistel구조 선택처리를 실행한다. 보조회로(254)는 F함수 이외의 연산처리 등을 실행한다.
제어회로(273)는, Feistel구조 선택처리로서,
(a)데이터계열수(분할수)d=2로 한 Feistel구조
(b1)데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 타입 1,
(b2)데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 타입 2,
이러한 어느 한쪽의 구조에 의거하는 암호처리를 실행하는지를 선택한다. 또한, 설정정보는, 예를 들면 외부에서 입력한다. 혹은 암호화 또는 복호처리의 대상이 되는 데이터의 비트길이에 따라 실행하는 처리형태를 선택하는 구성이라고 해도 좋다. 제어회로(273)는, 선택에 따라서, 각 F함수 전용회로의 적용순서를 변경하고, 각 Feistel구조에 따른 라운드 함수를 실행시키는 제어를 행한다.
이 구성을 적용하는 것으로, 제 1 F함수(F1) 전용처리회로(251)와, 제 2 F함수(F2) 전용처리회로(252)를 적용하여 여러 가지 Feistel구조를 적용한 암호처리가 가능해지며, 암호화 처리, 또는 복호처리의 처리비트가 다른 여러 가지 비트대응의 암호처리가 실행 가능해진다.
또, 도 17에는 2개의 F함수를 가지는 예를 나타내고 있지만, 2개의 F함수를 이용한 예에는 한정되지 않고, 임의의 개수의 F함수를 이용한 구성에서도 같은 결과를 기대할 수 있다. 예를 들면, 먼저 도 14를 참조하여 설명한 확장 Feistel구조에서는, 3개의 다른 F함수(F1, F2, F3)를 적용하여 확산행렬변환기구(DSM)를 만족하는 데이터계열수d=6의 확장 Feistel구조를 구성하고 있다. 이것과 같은 3종류의 F함수(F1, F2, F3)의 F함수를 적용하여 도 18에 나타내는 데이터계열d=2의 Feistel구조를 가지는 암호처리구성을 구축할 수 있다. 이 데이터계열d=2의 구 성에 있어서도, 각 행렬(F1, F2, F3)은, DSM 기구를 만족하는 설정으로 배치된다.
이러한 3 종류의 F함수(F1, F2, F3)를 실행하는 암호처리장치의 구성 예를 도 19에 나타낸다. 도 19에 나타내는 암호처리장치(280)는, F함수 F1을 실행하는 제 1 F함수(F1) 전용처리회로(281)와, F함수 F2를 실행하는 제 2 F함수(F2) 전용처리회로(282)와, F함수 F3을 실행하는 제 3 F함수(F3) 전용처리회로(283)와, 제어회로(284) 및 보조회로(285)로부터 구성된다. 제 1 F함수(F1) 전용처리회로(281)와, 제 2 F함수(F2) 전용처리회로(282)와, 제 3 F함수(F3) 전용처리회로(283)는 병렬로 동작가능한 구성이다. 제어회로(284)는, 각 처리부에 대한 데이터 입출력 제어를 행함과 동시에, Feistel구조 선택 처리를 실행한다. 보조회로(285)는 F함수 이외의 연산처리 등을 실행한다.
제어회로(284)는, Feistel구조 선택 처리로서,
(a)데이터계열수(분할수)d=2로 한 Feistel구조
(b1)(데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 타입(1),
(b2)데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 타입(2),
이러한 어느 한쪽의 구조에 의거하는 암호처리를 실행하는지를 선택한다. 또한, 설정정보는, 예를 들면 외부에서 입력한다. 제어회로(284)는, 설정에 따라서, 각 F함수 전용회로의 적용순서를 변경하고, 각 Feistel구조에 따른 라운드 함수를 실행시키는 제어를 행한다.
이 구성을 적용하는 것으로, 제 1 F함수(F1) 전용처리회로(281)∼제 3 F함수(F3) 전용처리회로(283)를 적용하여 여러 가지 Feistel구조를 적용한 암호처리가 가능해지며, 암호화 처리, 또는 복호처리의 처리비트가 다른 여러 가지 비트대응의 암호처리를 실행 가능하게 한다. 또한, 4 이상의 F함수 실행부를 가지는 구성도 가능하다.
상술한 바와 같이, 확산행렬변환기구(DSM)를 만족하는 선형변환행렬을 실행하는 복수의 다른 F함수를 결정하고, 이러한 각 F함수를 실장하여, F함수를 적용한 처리순서를 변경하는 것으로,
(a)데이터계열수(분할수)d=2로 한 Feistel구조
(b1)데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 타입(1),
(b2)데이터계열수(분할수)d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 타입(2),
이러한 어느 한쪽의 구조에 의거하는 암호처리를 선택적으로 실행하는 구성이 실현되며,
암호화처리 또는 복호처리에 있어서의 처리 비트수가 변경 가능한 장치가 실현된다.
예를 들면, a종류(a는 2 이상의 정수)의 F함수를 구성하고, 상기 3종류의 Feistel구조에 의거하는 암호처리를 실행하고, 또한 확산행렬변환기구(DSM)를 만족시킨 처리 구성에 의해 내성의 높은 암호처리를 행하는 것이 가능해진다.
[8. 본 발명의 암호처리 및 암호 알고리즘 구축처리의 통계]
마지막으로, 상술한 본 발명의 암호처리 및 암호 알고리즘 구축처리에 대해 정리하여 설명한다.
본 발명의 암호처리장치는, 도 1, 도 2를 참조하여 설명한 바와 같이, 비선형변환처리 및 선형변환처리를 포함한 데이터 변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록 암호처리를 실행하는 암호처리부를 가진다. 또한, 도 5 이하를 참조하여 설명한 바와 같이, 암호처리부는, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가진다.
이러한 2 이상의 복수의 다른 행렬은, 확산행렬변환기구(DSM:Diffusion Switching Mechanism)를 실현하도록 설정되며, DSM에 의해, 차분공격이나 선형공격에 대한 내성을 향상시킨 암호처리가 실현된다. 이 DSM에 의한 내성 향상의 실현을 위해 특정 조건에 따른 행렬의 선택, 배치가 행해진다.
즉, F함수에 있어서 실행하는 선형변환처리에 적용되는 복수의 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬이 선택되며, 이러한 복수의 다른 행렬이, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치된다.
또한, 구체적으로는, 암호처리부에 있어서 이용되는 복수의 다른 행렬은, 확장 Feistel 구조의 각 데이터계열(s(i))에 입력하는 연속하는 k개(다만, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i)) 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬이다.
혹은, 확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 L(s(i)) 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 L]가 3 이상이 되는 조건을 만족하는 복수의 다른 행렬이다.
본 발명의 암호처리장치의 암호처리부는, 이러한 복수의 다른 행렬을, n개(다만, n는 2 이상의 정수)의 다른 행렬을, M0, M1, ‥Mn -1로 했을 때, 이들을, 확장 Feistel 구조의 각 데이터계열에 입력하는 F함수에 차례로 반복 배치한 구성을 가진다. 구체적인 확장 Feistel구조의 예로서는, 예를 들면 도 8, 도 10을 참조하여 설명한 1개의 라운드에 1개의 F함수만을 실행하는 타입(1)의 확장 Feistel구조나, 도 9, 도 11을 참조하여 설명한 1개의 라운드에 복수의 F함수를 병렬로 실행하는 확장 Feistel구조가 있다.
또한, 본 발명은, 이러한 확장 Feistel구조를 적용한 암호처리를 실행하는 암호처리장치 및 방법과 암호처리를 실행하는 컴퓨터·프로그램과, 또한, 상술의 확장 Feistel구조를 적용한 암호처리를 실행하기 위한 암호처리 알고리즘을 구축하는 정보처리장치 방법과 컴퓨터·프로그램을 포함하는 것이다.
암호처리 알고리즘을 구축하는 정보처리장치는, 예를 들면 일반적인 PC 등의 정보처리장치가 적용 가능하며, 이하의 처리 스텝을 실행 가능한 제어부를 가진다. 즉,
데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리 알고리즘의 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에 적용하는 적어도 2 이상의 복수의 다른 행렬을 결정하는 행렬결정스텝과,
행렬결정스텝에 있어서 결정한 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치하는 행렬설정스텝이다.
상술한 행렬결정스텝은, 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬을 적용행렬로서 결정하는 처리를 실행하는 스텝으로서 실행된다.
이러한 처리 알고리즘에 의해서 설정된 확장 Feistel구조를 적용한 암호처리에 있어서는, 확산행렬변환기구(DSM:Diffusion Switching Mechanism)가 실현되며, DSM에 의해, 차분공격이나 선형공격에 대한 내성을 향상시킨 암호처리가 실현된다.
[9. 암호처리장치의 구성 예]
마지막으로, 상술한 실시 예에 따른 암호처리를 실행하는 암호처리장치로서 의 IC모듈(300)의 구성 예를 도 20에 나타낸다. 상술의 처리는, 예를 들면 PC, IC카드, 리더라이터, 그 외, 여러 가지 정보처리장치에 있어서 실행 가능하고, 도 20에 나타내는 IC모듈(300)은, 이들 여러 가지 기기에 구성하는 것이 가능하다.
도 20에 나타내는 CPU(Central processing Unit)(301)는, 암호처리의 개시나, 종료, 데이터의 송수신의 제어, 각 구성부 간의 데이터 전송 제어, 그 외의 각종 프로그램을 실행하는 프로세서이다. 메모리(302)는, CPU(301)가 실행하는 프로그램, 혹은 연산 파라미터 등의 고정 데이터를 격납하는 ROM(Read-Only-Memory), CPU(301)의 처리에 있어서 실행되는 프로그램 및 프로그램 처리에 있어서 적당 변화하는 파라미터의 격납 에어리어, 워크 영역으로서 사용되는 RAM(Random Access Memory) 등으로 이루어진다. 또, 메모리(302)는 암호처리에 필요한 열쇠 데이터나, 암호처리에 있어서 적용하는 변환 테이블(치환표)이나 변환 행렬에 적용하는 데이터 등의 격납 영역으로서 사용 가능하다. 또한 데이터 격납 영역은, 변조 방지(tamper resistant) 구조를 가지는 메모리로서 구성되는 것이 바람직하다.
암호처리부(303)는, 예를 들면 상술한 확장 Feistel형의 공통열쇠블록 암호처리 알고리즘에 따른 암호처리, 복호처리를 실행한다. 또한, 여기에서는, 암호처리수단을 개별 모듈로 한 예를 나타냈지만, 이러한 독립한 암호처리 모듈을 설치하지 않고, 예를 들면 암호처리 프로그램을 ROM에 격납하여, CPU(301)가 ROM 격납 프로그램을 읽어내어 실행하도록 구성해도 좋다.
난수발생기(random number generation)(304)는, 암호처리에 필요한 열쇠의 생성 등에 있어서 필요한 난수의 발생 처리를 실행한다.
송수신부(305)는, 외부와의 데이터통신을 실행하는 데이터통신처리부이며, 예를 들면 리더라이터 등, IC모듈과의 데이터통신을 실행하고, IC모듈 내에서 생성한 암호문의 출력, 혹은 외부의 리더라이터 등의 기기로부터의 데이터 입력 등을 실행한다.
이 IC모듈(300)은, 예를 들면, 상술한 실시 예에 따라서, 데이터계열수(d)가 d≥2의 정수로 한 확장 Feistel형 암호처리를 실행한다. 확장 Feistel구조에 있어서의 F함수의 선형변환행렬로서, 상술한 실시 예에 따른 형태로, 다른 선형변환행렬을 설정하는 것으로, 확산행렬변환기구(DSM:Diffusion Switching Mechanism)가 실현되며, 차분공격이나 선형공격에 대한 내성을 향상시키는 것이 가능해진다.
이상, 특정의 실시 예를 참조하면서, 본 발명에 대하여 상세하게 풀이해 왔다. 그렇지만, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 상기 실시 예의 수정이나 대용을 이뤄낼 수 있는 일은 자명하다. 즉, 예시라고 하는 형태에서 본 발명을 개시하기 위한 것이고, 한정적으로 해석되어서는 안 된다. 본 발명의 요지를 판단하기 위해서는, 특허청구의 범위란을 참작해야 한다.
또한, 명세서 중에 있어서 설명한 일련의 처리는 하드웨어, 또는 소프트웨어, 혹은 양자의 복합 구성에 의해서 실행하는 것이 가능하다. 소프트웨어에 의한 처리를 실행하는 경우는, 처리순서를 기록한 프로그램을, 전용의 하드웨어에 장착된 컴퓨터 내의 메모리에 인스톨하여 실행시키든가, 혹은, 각종 처리가 실행 가능한 범용 컴퓨터에 프로그램을 인스톨하여 실행시키는 것이 가능하다.
예를 들면, 프로그램은 기록매체로서의 하드디스크나 ROM(Read Only Memory) 에 미리 기록해 둘 수 있다. 혹은, 프로그램은 플렉시블 디스크, CD ROM(Compact Disc Read Only Memory), MO(Magneto optical)디스크, DVD(Digital Versatile Disc), 자기 디스크, 반도체 메모리 등의 리무버블 기록매체에, 일시적 혹은 영속적으로 격납(기록)해 둘 수 있다. 이러한 리무버블 기록매체는, 이른바 패키지 소프트웨어로서 제공할 수 있다.
또한, 프로그램은, 상술한 바와 같은 리무버블 기록매체에서 컴퓨터에 인스톨하는 것 외, 다운로드 사이트에서, 컴퓨터에 무선전송하거나 LAN(Local Area Network), 인터넷이라고 하는 네트워크를 통하여, 컴퓨터에 유선으로 전송하고, 컴퓨터에서는, 그렇게 하여 전송되어 오는 프로그램을 수신하고, 내장하는 하드 디스크 등의 기록매체에 인스톨 할 수 있다.
또한, 명세서에 기재된 각종의 처리는, 기재에 따라서 시계열로 실행될 뿐만 아니라, 처리를 실행하는 장치의 처리능력 혹은 필요에 따라서 병렬적으로 혹은 개별적으로 실행되어도 좋다. 또, 본 명세서에 있어서 시스템이란, 복수장치의 논리적 집합 구성이며, 각 구성의 장치가 동일 케이스 내에 있는 것은 한정되지 않는다.
상술한 바와 같이, 본 발명의 일 실시 예의 구성에 의하면, 비 선형변환부 및 선형변환부를 가지는 SPN형의 F함수를, 복수라운드 반복실행하는 Feistel형 공통열쇠블록 암호처리에 있어서, 2개의 데이터계열을 가지는 Feistel구조를 확장한 Feistel구조, 즉, 예를 들면 3개, 4개 등, 2 이상의 임의의 데이터계열을 가지는 확장형의 Feistel구조에 있어서, 복수의 다른 선형변환행렬을 적용한 라운드 함수부를 설정하는 것으로 확산행렬변환기구(DSM)를 실현하고, 선형해석이나 차분해석에 대한 내성의 높은 공통열쇠블록 암호 알고리즘의 구축 및 암호처리의 실행이 가능해진다.
본 발명의 일 실시 예의 구성에 의하면, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel 구조를 적용한 암호처리를 실행하는 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지며, 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬로서 설정하는 것으로, 확산행렬변환기구(DSM)를 실현하여, 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록 암호 알고리즘의 구축 및 암호처리의 실행이 가능해진다.
또한, 본 발명의 일 실시 예의 구성에 의하면, 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 a(a≥2)종류의 F함수를 이용한 데이터계열수d=2ax의 확장 Fesitel구조(x≥1)를 적용한 암호처리를 실행하는 구성에 있어서, 1개의 라운드에 있어서, 전 종류(a종류)의 F함수를 균등하게 x개씩 실행하는 구성으로 했으므로, 불필요한 회로를 설치하지 않는 소형의 암호처리장치가 실현된다.
또한, 본 발명의 일 실시 예의 구성에 의하면, 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 복수의 F함수 실행부를 구성하고, 복수의 F함수 실행 부의 이용 순서를 설정에 따라 변경하는 구성으로 한 것으로,
(a)데이터계열수d=2로 한 Feistel구조에 의한 암호처리, 또는,
(b1)(데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 암호처리, 또는,
(b2)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 암호처리,
상기 (a), (b1), (b2)의 어느 한쪽의 암호처리를 선택적으로 실행하는 것을 가능하게 한 암호처리장치가 실현된다.
본 발명의 일 실시 예의 구성에 의하면, 비 선형변환부 및 선형변환부를 가지는 SPN형의 F함수를, 복수 라운드 반복하여 실행하는 Feistel형 공통열쇠블록암호처리에 있어서, 2개의 데이터계열을 가지는 Feistel구조를 확장한 Feistel구조, 즉, 예를 들면 3개, 4개 등, 2 이상의 임의의 데이터계열을 가지는 확장형의 Feistel구조에 있어서, 복수의 다른 선형변환행렬을 적용한 라운드 함수부를 설정하는 것으로 확산행렬변환기구(DSM)를 실현하여, 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록암호 알고리즘의 구축 및 암호처리의 실행이 가능해진다.
본 발명의 일 실시 예의 구성에 의하면, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지며, 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하 는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상이 되는 조건을 만족하는 복수의 다른 행렬로서 설정하는 것으로, 확산행렬변환기구(DSM)를 실현하여, 선형해석이나 차분해석에 대한 내성이 높은 공통열쇠블록암호 알고리즘의 구축 및 암호처리의 실행이 가능해진다.
또한, 본 발명의 일 실시 예의 구성에 의하면, 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 a(a≥2) 종류의 F함수를 이용한 데이터계열수d=2ax의 확장 Fesitel구조(x≥1)를 적용한 암호처리를 실행하는 구성에 있어서, 1개의 라운드에 있어서, 전 종류(a종류)의 F함수를 균등하게 x개씩 실행하는 구성으로 했으므로, 불필요한 회로를 설치하지 않는 소형의 암호처리장치가 실현된다.
또한, 본 발명의 일 실시 예의 구성에 의하면, 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 복수의 F함수 실행부를 구성하고, 복수의 F함수 실행부의 이용 순서를 설정에 따라 변경하는 구성으로 한 것으로,
(a)데이터계열수d=2로 한 Feistel구조에 의한 암호처리, 또는,
(b1)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 암호처리, 또는,
(b2)데이터계열수d≥2의 임의수라고 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 암호처리,
상기 (a), (b1), (b2)의 어느 한쪽의 암호처리를 선택적으로 실행하는 것을 가능하게 한 암호처리장치가 실현된다.

Claims (25)

  1. 암호처리장치이며,
    비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 암호처리부를 가지며,
    상기 암호처리부는,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지고,
    상기 2 이상의 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전(全) 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치한 구성을 가지는 것을 특징으로 하는 암호처리장치.
  2. 제 1항에 있어서,
    상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속한 k개(단, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호처리장치.
  3. 제 1항에 있어서,
    상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속한 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 D]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호처리장치.
  4. 제 1항에 있어서,
    상기 암호처리부에 있어서 이용되는 상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속한 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 L(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 L]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호처리장치.
  5. 제 1항에 있어서,
    상기 암호처리부는,
    상기 복수의 다른 행렬을, n개(단, n은 2 이상의 정수)의 다른 행렬,
    M0, M1, ‥Mn-1로 했을 때,
    이러한 다른 행렬(M0, M1, ‥Mn-1)을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 차례로 반복하여 배치한 구성을 가지는 것을 특징으로 하는 암호처리장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 암호처리부는,
    1개의 라운드에 1개의 F함수만을 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 구성인 것을 특징으로 하는 암호처리장치.
  7. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 암호처리부는,
    1개의 라운드에 복수의 F함수를 병렬로 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 구성인 것을 특징으로 하는 암호처리장치.
  8. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 암호처리부는,
    a≥2의 임의의 정수, x≥1의 임의의 정수로 했을 때, 상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 a종류의 F함수를 이용한 데이터계열수d=2ax의 확장 Feistel구조를 적용한 암호처리를 실행하는 구성이며,
    1개의 라운드에 있어서, 전 종류(a종류)의 F함수를 균등하게 x개씩 실행하는 구성인 것을 특징으로 하는 암호처리장치.
  9. 제 8항에 있어서,
    상기 암호처리부는,
    1개의 라운드에 있어서 병렬로 실행하는 ax개의 F함수를 실행하는 F함수실행부와,
    상기 F함수실행부에 대한 데이터입출력제어를 실행하는 제어부를 갖춘 구성인 것을 특징으로 하는 암호처리장치.
  10. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 암호처리부는,
    상기 복수의 다른 행렬에 의한 다른 선형변환처리를 실행하는 복수의 F함수실행부와,
    상기 복수의 F함수실행부의 이용순서를 설정에 따라서 변경하는 제어부를 갖추고,
    상기 제어부는,
    (a)데이터계열수d=2로 한 Feistel구조에 의한 암호처리, 또는,
    (b1)데이터계열수d≥2의 임의수로 한 확장 Feistel구조이며, 각 라운드에 있어서 1개의 F함수의 실행만을 허용한 암호처리, 또는,
    (b2)데이터계열수d≥2의 임의수로 한 확장 Feistel구조이며, 각 라운드에 있어서 복수의 F함수의 병렬실행을 허용한 암호처리,
    상기 (a), (b1), (b2)의 어느 한쪽의 암호처리를 선택적으로 실행하는 구성인 것을 특징으로 하는 암호처리장치.
  11. 제 10항에 있어서,
    상기 제어부는,
    암호화 또는 복호처리의 대상으로 되는 데이터의 비트길이에 따라서, 실행하는 처리형태를 선택하는 구성인 것을 특징으로 하는 암호처리장치.
  12. 암호처리장치에 있어서, 암호처리를 실행하는 암호처리방법이며,
    암호처리부에 있어서, 비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 암호처리스텝을 가지며,
    상기 암호처리스텝은,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 스텝이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용한 연산을 실행하는 연산스텝을 가지며,
    상기 연산스텝에 있어서 적용하는 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 연산스텝은,
    확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 상기 복수의 다른 행렬에 의거하는 선형변환연산을 실행하는 스텝인 것을 특징으로 하는 암호처리방법.
  13. 제 12항에 있어서,
    상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속한 k개(단, k는 2 이상의 정수)의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[Bk D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[Bk D]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호 처리방법.
  14. 제 12항에 있어서,
    상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 D(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수[B2 D]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호처리방법.
  15. 제 12항에 있어서,
    상기 복수의 다른 행렬은,
    확장 Feistel구조의 각 데이터계열(s(i))에 입력하는 연속하는 2개의 F함수에 포함되는 선형변환행렬에 의거하여 산출되는 데이터계열 대응의 최소분기수[B2 L(s(i))] 중에서 선택되는 전 데이터계열 중의 최소분기수 [B2 L]가 3 이상으로 되는 조건을 만족하는 복수의 다른 행렬인 것을 특징으로 하는 암호처리방법.
  16. 제 12항에 있어서,
    상기 복수의 다른 행렬을, n개(단, n은 2 이상의 정수)의 다른 행렬,
    M0, M1, ‥Mn-1로 했을 때,
    상기 연산스텝은,
    확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 이러한 다른 행렬(M0, M1, ‥Mn-1)을 차례로 반복하여 실행하는 스텝인 것을 특징으로 하는 암호처리방법.
  17. 제 12항 내지 제 16항 중 어느 한 항에 있어서,
    상기 암호처리스텝은,
    1개의 라운드에 1개의 F함수만을 실행하는 확장 Feistel구조를 적용한 암호처리를 실행하는 스텝인 것을 특징으로 하는 암호처리방법.
  18. 정보처리장치에 있어서 암호처리 알고리즘을 구축하는 암호처리 알고리즘 구축방법이며,
    정보처리장치에 있어서의 제어부가, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리 알고리즘의 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에 적용하는 적어도 2 이상의 복수의 다른 행렬을 결정하는 행렬결정스텝과,
    상기 제어부가, 상기 행렬결정스텝에 있어서 결정한 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열로 입력하는 F함수에 반복하여 배치하는 행렬설정스텝을 가지며,
    상기 행렬결정스텝은,
    상기 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬을 적용행렬로서 결정하는 처리를 실행하는 스텝인 것을 특징으로 하는 암호처리 알고리즘 구축방법.
  19. 암호처리장치에 있어서, 암호처리를 실행시키는 프로그램을 기록한 기록매체이며,
    암호처리부에 있어서, 비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행시키는 암호처리스텝을 가지며,
    상기 암호처리스텝은,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행시키는 스텝이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용한 연산을 실행하는 연산스텝을 포함하고,
    상기 연산스텝에 있어서 적용하는 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 연산스텝은,
    확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 있어서, 상기 복수의 다른 행렬에 의거하는 선형변환연산을 실행하는 스텝인 것을 특징으로 하는 프로그램이 기록되어 있는, 컴퓨터에서 판독 가능한 기록매체.
  20. 정보처리장치에 있어서 암호처리 알고리즘을 구축시키는 프로그램을 기록한 기록매체이며,
    정보처리장치에 있어서의 제어부에, 데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리 알고리즘의 구성에 있어서, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에 적용하는 적어도 2 이상의 복수의 다른 행렬을 결정시키는 행렬결정스텝과,
    상기 제어부에, 상기 행렬결정스텝에 있어서 결정한 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치시키는 행렬설정스텝을 가지며,
    상기 행렬결정스텝은,
    상기 2 이상의 복수의 다른 행렬로서, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬을 적용행렬로서 결정하는 처리를 실행하는 스텝인 것을 특징으로 하는 프로그램이 기록되어 있는, 컴퓨터에서 판독 가능한 기록매체.
  21. 복호처리장치이며,
    비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 복호처리부를 가지며,
    상기 복호처리부는,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 복호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지고,
    상기 2 이상의 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치한 구성을 가지는 것을 특징으로 하는 복호처리장치.
  22. 암호처리장치이며,
    프로그램을 실행하는 프로세서와,
    상기 프로세서가 실행하는 상기 프로그램을 격납하는 메모리와,
    비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 암호처리부를 가지며,
    상기 암호처리부는,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 암호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지고,
    상기 2 이상의 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치한 구성을 가지는 것을 특징으로 하는 암호처리장치.
  23. 복호처리장치이며,
    프로그램을 실행하는 프로세서와,
    상기 프로세서가 실행하는 상기 프로그램을 격납하는 메모리와,
    비선형변환처리 및 선형변환처리를 포함하는 데이터변환처리를 실행하는 SP형 F함수를 복수라운드 반복하는 Feistel형 공통열쇠블록암호처리를 실행하는 복호처리부를 가지며,
    상기 복호처리부는,
    데이터계열수(d)를 d≥2의 정수로 한 확장 Feistel구조를 적용한 복호처리를 실행하는 구성이며, 각 라운드에 있어서의 F함수에 있어서 실행하는 선형변환처리에, 적어도 2 이상의 복수의 다른 행렬을 선택적으로 적용하는 구성을 가지고,
    상기 2 이상의 복수의 다른 행렬은, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 포함되는 선형변환행렬에 의거하는 데이터계열 대응의 최소분기수 중에서 선택되는 전 데이터계열 중의 최소분기수가 미리 정한 값 이상으로 되는 조건을 만족하는 복수의 다른 행렬이며,
    상기 복수의 다른 행렬을, 확장 Feistel구조의 각 데이터계열에 입력하는 F함수에 반복하여 배치한 구성을 가지는 것을 특징으로 하는 복호처리장치.
  24. 삭제
  25. 삭제
KR1020097001363A 2006-07-28 2007-07-17 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램 KR101364192B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2006-206376 2006-07-28
JP2006206376 2006-07-28
JPJP-P-2006-224674 2006-08-21
JP2006224674A JP4882598B2 (ja) 2006-07-28 2006-08-21 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
PCT/JP2007/064089 WO2008013076A1 (fr) 2006-07-28 2007-07-17 Dispositif de traitement par cryptage, procédé d'établissement d'un algorithme de traitement par cryptage, procédé de traitement par cryptage et programme informatique

Publications (2)

Publication Number Publication Date
KR20090052850A KR20090052850A (ko) 2009-05-26
KR101364192B1 true KR101364192B1 (ko) 2014-02-19

Family

ID=38981389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097001363A KR101364192B1 (ko) 2006-07-28 2007-07-17 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램

Country Status (11)

Country Link
US (1) US8295478B2 (ko)
EP (1) EP2048641B1 (ko)
JP (1) JP4882598B2 (ko)
KR (1) KR101364192B1 (ko)
CN (3) CN103078734B (ko)
BR (1) BRPI0715646A2 (ko)
HK (1) HK1131252A1 (ko)
MY (1) MY151698A (ko)
RU (1) RU2409902C2 (ko)
TW (1) TW200821999A (ko)
WO (1) WO2008013076A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP4687775B2 (ja) * 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
US8731189B2 (en) 2009-10-27 2014-05-20 Nec Corporation Information processing device, information processing method
US8369515B2 (en) * 2010-03-18 2013-02-05 Chiou-Haun Lee Cryptographic method of multilayer diffusion in multidimension
JP5424974B2 (ja) * 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
FR2966953B1 (fr) 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
JP5929757B2 (ja) * 2010-11-15 2016-06-08 日本電気株式会社 暗号処理装置および暗号処理方法
JP5605197B2 (ja) * 2010-12-09 2014-10-15 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682525B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682527B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5813380B2 (ja) 2011-06-03 2015-11-17 株式会社東芝 半導体記憶装置
TWI451741B (zh) * 2012-03-19 2014-09-01 Chiou Haun Lee 以xor運算於三方通訊之加解密方法
KR101330664B1 (ko) 2012-06-15 2013-11-15 한국전자통신연구원 저전력 암호화 장치 및 방법
KR101989813B1 (ko) * 2012-06-29 2019-06-18 펜타시큐리티시스템 주식회사 특정 포맷을 가지는 대체 데이터의 생성 및 검증
US10142099B2 (en) 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
TWI510046B (zh) * 2013-07-04 2015-11-21 Univ Nat Cheng Kung 認證式加解密方法
JP2015191106A (ja) * 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method
JP6292107B2 (ja) * 2014-12-01 2018-03-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN105763316A (zh) * 2016-02-01 2016-07-13 苏州中科启慧软件技术有限公司 基于分组密码vhf和ctr模式的轻量级流密码技术cvhf
JP6877889B2 (ja) * 2016-04-08 2021-05-26 ソニーグループ株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
CN112487410A (zh) * 2020-12-02 2021-03-12 中国电子科技集团公司第三十研究所 基于循环移位和异或运算构造密码结构模型的方法
CN114024663B (zh) * 2021-11-24 2023-06-02 中国电子科技集团公司第三十研究所 基于smt的线性扩散层分支数测评方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016773A1 (en) 2000-06-30 2002-02-07 Kenji Ohkuma Encryption apparatus and method, and decryption apparatus and method based on block encryption
US20050111659A1 (en) 2003-09-30 2005-05-26 Taizo Shirai Cryptographic processing apparatus and cryptographic processing method, and computer program
US20060019610A1 (en) 1998-04-17 2006-01-26 Matsushita Electric Industrial Co., Ltd. Radio communication device and method of controlling transmission rate

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4195200A (en) * 1976-06-30 1980-03-25 International Business Machines Corporation Key controlled block-cipher cryptographic system employing a multidirectional shift matrix
US4316055A (en) * 1976-12-30 1982-02-16 International Business Machines Corporation Stream/block cipher crytographic system
JP2927079B2 (ja) * 1991-10-02 1999-07-28 松下電器産業株式会社 データ暗号化方法およびデータ暗号化装置
WO1997009705A1 (fr) * 1995-09-05 1997-03-13 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees
CA2173688C (en) * 1996-04-09 2000-01-18 Hideo Shimizu Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
CA2302784A1 (en) * 1997-09-17 1999-03-25 Frank C. Luyster Improved block cipher method
WO1999038143A1 (fr) * 1998-01-27 1999-07-29 Nippon Telegraph And Telephone Corporation Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees
US6185679B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US7187769B1 (en) * 1998-06-02 2007-03-06 Nippon Telegraph And Telephone Public Corporation Method and apparatus for evaluating the strength of an encryption
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US6269163B1 (en) * 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
US7346161B2 (en) * 2000-01-26 2008-03-18 Fujitsu Limited Method and apparatus for designing cipher logic, and a computer product
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
DE60139280D1 (de) * 2000-03-09 2009-08-27 Nippon Telegraph & Telephone Blockverschlüsselungseinrichtung unter Verwendung von Hilfsumwandlungen
ES2244639T3 (es) * 2000-08-03 2005-12-16 Koninklijke Philips Electronics N.V. Transformacion lineal para cifrado de claves simetricas.
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
JP2003098959A (ja) * 2001-09-21 2003-04-04 Toshiba Corp 暗号処理装置
US7236592B2 (en) * 2002-02-01 2007-06-26 International Business Machines Corporation Efficient stream cipher system and method
JP4777651B2 (ja) * 2002-08-23 2011-09-21 イグジット−キューブ,インク. コンピュータシステム及びデータ保存方法
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
FR2851862B1 (fr) * 2003-02-27 2006-12-29 Radiotelephone Sfr Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits
AU2004201807A1 (en) * 2003-05-09 2004-11-25 Nor Azman Bin Abu Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem
US7415616B2 (en) * 2004-01-21 2008-08-19 National Institute Of Information And Communications Technology Cipher strength evaluation apparatus
US7460665B2 (en) * 2004-01-21 2008-12-02 National Institute Of Information And Communications Technology Cipher strength evaluation apparatus
US7289629B2 (en) * 2004-02-09 2007-10-30 Microsoft Corporation Primitives for fast secure hash functions and stream ciphers
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
EP1646174A1 (en) * 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
US7881466B2 (en) * 2004-10-28 2011-02-01 Irdeto B.V. Method and system for obfuscating a cryptographic function
KR100855958B1 (ko) * 2004-11-24 2008-09-02 삼성전자주식회사 해밍거리를 이용한 부가 채널 공격에 안전한 암호화시스템 및 방법
JP4622807B2 (ja) * 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007192893A (ja) * 2006-01-17 2007-08-02 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
IL174784A0 (en) * 2006-04-04 2006-12-31 Nds Ltd Robust cipher design
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム
WO2009087972A1 (ja) * 2008-01-09 2009-07-16 Nec Corporation データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
JP5532560B2 (ja) * 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060019610A1 (en) 1998-04-17 2006-01-26 Matsushita Electric Industrial Co., Ltd. Radio communication device and method of controlling transmission rate
US20020016773A1 (en) 2000-06-30 2002-02-07 Kenji Ohkuma Encryption apparatus and method, and decryption apparatus and method based on block encryption
US20050111659A1 (en) 2003-09-30 2005-05-26 Taizo Shirai Cryptographic processing apparatus and cryptographic processing method, and computer program

Also Published As

Publication number Publication date
KR20090052850A (ko) 2009-05-26
EP2048641A1 (en) 2009-04-15
CN103078734A (zh) 2013-05-01
RU2009102664A (ru) 2010-10-27
WO2008013076A1 (fr) 2008-01-31
HK1131252A1 (en) 2010-01-15
RU2409902C2 (ru) 2011-01-20
JP2008051829A (ja) 2008-03-06
TWI340367B (ko) 2011-04-11
MY151698A (en) 2014-06-30
CN101908958B (zh) 2014-01-29
CN101908958A (zh) 2010-12-08
JP4882598B2 (ja) 2012-02-22
US20100061548A1 (en) 2010-03-11
EP2048641A4 (en) 2017-04-19
CN101496080B (zh) 2010-09-01
EP2048641B1 (en) 2019-05-22
CN101496080A (zh) 2009-07-29
TW200821999A (en) 2008-05-16
BRPI0715646A2 (pt) 2013-03-26
CN103078734B (zh) 2016-03-09
US8295478B2 (en) 2012-10-23

Similar Documents

Publication Publication Date Title
KR101364192B1 (ko) 암호처리장치, 암호처리 알고리즘 구축방법 및 암호처리방법과 컴퓨터·프로그램
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR101770874B1 (ko) 암호 처리 장치, 암호 처리 방법, 컴퓨터로 판독가능한 기록 매체, 및 정보 처리 장치
JP5272417B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
KR20090094086A (ko) 암호 처리 장치, 암호 처리 방법과 컴퓨터 프로그램
TWI595460B (zh) Data processing device, information processing device, data processing method and program
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP5510587B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
Jakimoski et al. On resistance of DES to related-key differential cryptanalysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee