KR20070093963A - 대입 박스들 - Google Patents

대입 박스들 Download PDF

Info

Publication number
KR20070093963A
KR20070093963A KR1020077009201A KR20077009201A KR20070093963A KR 20070093963 A KR20070093963 A KR 20070093963A KR 1020077009201 A KR1020077009201 A KR 1020077009201A KR 20077009201 A KR20077009201 A KR 20077009201A KR 20070093963 A KR20070093963 A KR 20070093963A
Authority
KR
South Korea
Prior art keywords
input
bits
output
box
bit
Prior art date
Application number
KR1020077009201A
Other languages
English (en)
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
Priority claimed from AU2004905507A external-priority patent/AU2004905507A0/en
Application filed by 시냅틱 래버러토리즈 리미티드 filed Critical 시냅틱 래버러토리즈 리미티드
Publication of KR20070093963A publication Critical patent/KR20070093963A/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

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)
  • Image Processing (AREA)
  • Logic Circuits (AREA)
  • Packages (AREA)
  • Complex Calculations (AREA)

Abstract

다중-입력 다중-출력 s-박스는 연속적으로 넘버링된 a개의 입력 비트(101, 102, 103, 104, 105) I1, I2 내지 Ia를 수신하고(여기서 a는 최소한 4가 됨), 연속적으로 넘버링된 b개의 출력 비트(131, 132, 133, 134, 135) O1, O2 내지 Ob를 출력한다. 상기 s-박스는 c개의 원시 s-박스(121, 122, 123) sbl, sb2 내지 sbc를 포함한다. 상기 원시 s-박스들(121, 122, 123) 각각은 다중 입력들과 단일 출력 사이의 관계를 정의하는 대응하는 다중-입력 단일-출력 부울 함수 f1, f2 내지 fc를 갖는다. 상기 원시 s-박스들(121, 122, 123) 각각은 대응하는 입력 비트들의 세트(s1, s2 내지 sc)를 수신한다. 상기 세트들 각각은 상기 s-박스에 대한 상기 a개의 입력 비트(101, 102, 103, 104, 105)로부터 선택된다. 또한, 상기 세트들은 sl1, sl2 내지 slc개 비트를 각각 포함한다. 상기 sl1, sl2 내지 slc 각각은 3부터 (a-1)까지의 범위 내에 있고, 상기 sl1, sl2 내지 slc의 총합은 a 보다 크다. 상기 s-박스의 b개의 출력 비트(131, 132, 133, 134, 135)는 상기 c개의 부울 함수들의 출력들이 된다.
대입 박스, 치환 박스, 대입 치환 네트워크, 원시 s-박스, 전단사 사상

Description

대입 박스들{Substitution boxes}
본 발명은 대입 박스(s-박스 또는 Substitition box)들의 배열에 관한 것으로서, 본 발명의 일부 실시예는 하드웨어에서 효율적이며, 일부 실시예는 소프트웨어에서 효율적이다.
본 출원은, 호주 가특허출원들, 2004년 9월 24일 출원된 2004905507, 2004년 11월 16일 출원된 2004906543, 2004년 12월 30일 출원된 2004907361, 2004년 12월 31일 출원된 2004907374, 그리고 2005년 4월 29일 출원된 2005902136에 대하여 우선권을 주장하며, 상기 모든 특허출원의 내용은 참조로서 본 명세서에 동봉된다.
청구항을 포함한 본 명세서에서 용어들:
'포함한다' 및 '포함하는'이라는 어구는 진술된 특징, 완전체(integer), 단계 또는 구성요소들의 존재를 구체화하기 위해 사용되었으나 하나 또는 그 이상의 다른 특징, 완전체, 단계, 구성요소들의 존재나 추가를 배제하지 않는다; 그리고
비트 i의 '인덱스 위치' Pia 개의 인접한 입력 비트로 이루어진 세트(set) 내에서 비트 i의 위치를 표시하기 위해 사용된다.
본 명세서에서 '확률 프로세스(probabilistic process)'라는
용어는 의사 랜덤 프로세스가 불변하는 또는 키 재료에 의해 '키잉(keying)' 또는 '시드(seeded)'되는 경우와 무작위성의 소스 및 의사 랜덤 알고리즘이 임의적인 경우를 포함하는 '랜덤(random)' 및 '의사 랜덤(pseudo-random)' 프로세스를 나타내기 위해 사용된다. 이러한 목적을 위해 공지된 임의의 의사 난수 생성기 또는 스트림 암호가 이용될 수 있다.
본 명세서에서 출판된 문서를 참조하는 경우, 해당 문서의 내용을 본 명세서에 대하여 숙련된 독자의 일반적 지식의 일부로서 받아들여서는 안 된다.
본 발명의 발명적 특징들이 보다 손쉽게 파악될 수 있도록 당해 기술분야와 관련하여 이미 출판된 몇몇 문서들에 대한 요약이 이하에서 개시된다.
1949년 C. E. Shannon의 논문 'Communication Theory of Secrecy Systems'에서혼돈(confusion)과 확산(diffusion)의 정의가 처음으로 공적으로 소개되었다.
s-박스들(s-boxs)은 디지털 형식으로 코딩된 입력을 수신하여 그 입력을 상이하게 코딩된 디지털 출력으로 변환함으로써 혼돈을 초래한다. 치환박스(permutation box or p-박스)들은 디지털 형식으로 코딩된 입력을 수신하여 그와 동일한 비트들을 출력하는데, 이때 그 값들에는 변화가 없지만 순서가 치환됨으로써 확산(diffusion)을 제공한다.
가장 단순한 형태에서 '쇄도 효과(avalanche effect)'는, 라운드 함수에 대한 입력에서 단일(single) 비트가 변화하면 출력에서는 적어도 두 개의 비트 변화를 초래하는 암호 속성을 말한다. Horst Feistel은 1973년 5월 Scientific American Vol 228, Number 5에 실린 'Cryptography and Computer Privacy'에서 자신의 암호의 속성들을 설명하면서 상기 효과를 s-박스들에 필요한 특성으로서 소개 했다. 그 논문에서는 기술적인 한계 때문에 128x128과 같은 대형 s-박스들에서는 완전한 애니 투 애니(any-to-any) 대입이 불가능함을 보여준다. 결과적으로 부분적 혼돈과 부분적 확산을 제공하기 위해서는 매우 작은 실용적인 크기(4x4)를 가진 비선형 s-박스들이 선택되고, Shannon이 정의한 바와 같은 추가적인 확산을 제공하기 위해서는 상기 s-박스들의 출력들을 상호 연결하기 위해서 대형 p-박스들이 선택된다.
최초의 디지털 블록 암호의 개발자는 Horst Feistel이라고 할 수 있다. 1974년 3월에 공개된 US patent 3,798,359(Feistel)에서 밝힌 바에 따르면, 블록 암호는 64 또는 128 비트에 대해 수행된 치환 연산들과 결합된 소형의 4x4 s-박스를 사용한다. 상기 4x4 s-박스들은 조합 로직(combinational logic)을 사용하여 구현되도록 설계되었다.
s-박스들과 p-박스들은 대부분의 Feistel 타입 또는 소위 말하는 Feistel Network 암호들, 그리고 다른 원시 암호학(cryptographic primitive)의 구성요소로서 사용된다. 그것들은 또한 1976년 5월 18일 공개된 US patent 3,958,081(Ehrsam 등)에서 제시된 공식 데이터 암호 표준(Data Encryption Standard(DES))에서 사용된다. DES 암호는 1977년 미연방표준(US Federal Standard)이 되었다. 당시에 일반에는 알려져 있지 않았던 중요한 암호학적 표준을 보호하면서 조합 로직을 이용한 효율적인 하드웨어 구현을 보장하기 위해서 6x4 s-박스들이 조심스럽게 선택되었다는 점은 주목할만하다.
s-박스의 대입 연산들은 일반적으로 수학적인 것이 아니다. 덧셈, 곱셈 그리 고 누승법과 같은, 하지만 이것에 국한되지 않는 수학적 연산들은 종종 비수학적 s-박스들과 함께 사용되거나 또는 그것들을 대신해서 사용된다. 수학적 연산과 비수학적 s-박스들의 조합에 기반을 둔 대입-치환 네트워크들은 워드(word) 기반 프로세서 아키텍처에서 효율적이다. 이러한 유형의 예는 수학적 덧셈 또는 뺄셈 모듈로(modulo) 2n, n-비트 폭의 XOR, 정적인 n-비트 치환들 및 n-비트의 키-의존 로테이션(key-dependent rotation) 연산을 이용하는 암호를 개시하고 있는 1981년 3월에 공개된 US patent 4,255,811(Adler)에서 나타나 있다. 유사한 특성을 가진 추가적인 구조들은 1991년 1월 1일 공개된 US patent 4,982,429(Takaragi 등)와 1992년 4월 7일 공개된 US patent 5,103,479 (Takaragi 등)에서 기술된다. 수학적 단어 기반의 비선형 연산은 Ron Rivest가 1992년 4월 Recommendation for Comment 1321에서 기술된 바와 같이 MD5 암호 해쉬 함수(cryptographic hash function)와 같은 암호 해쉬 함수들에서 이용된다.
p-박스에 대해서 출판된 연구들로는 두드러진 것이 없는데, p-박스는 설계자의 판단에 내맡겨지며 대부분의 사례에서 완전한 선형이거나 랜덤하게 선택된다.
Feistel Network 암호들은 또한, 대부분의 사례에서 선형을 이루며 확산에 기여하는 구조 속에 합성 함수(combining function)를 포함한다. 선형 합성기(linear combiner)를 더 높은 확산률을 가진 비선형 수학 연산으로 대체하는 예는 National Soviet Bureau of Standards에 의해 권장된 소위 말하는 GOST 암호; Information Processing Systems; Cryptographic Protection; Cryptographic Algorithm, GOST 28147-89, 1989에서 찾아볼 수 있다. GOST 암호는 또한 s-박스들 사이에 비트의 확산을 달성하기 위해서 워드 기반 로테이션 연산(rotation operation)을 사용하는 암호의 한 사례이다.
'완전성의 표준(completeness criterion)'은 1979년 John B. Kam과 Geroge I. Davida가 IEEE Transactions on Computers, Vol. 28, No. 10, 747에 발표한 논문 'Structured Design of Substitution-Permutation Encryption Networks'에서 처음으로 명백하게 정의되었다. 암호학적 변형은 각 암호문 비트가 모든 평문 비트들에 의존할 때 '완성'된다. 상기 완전성의 표준을 만족시키는 암호는 1981년 6월 23일 공개된 US patent 4,275,265(Davida 등)에서 찾을 수 있다. 완전성의 표준에 따르면 MxN개의 s-박스들은, M-입력 단일-출력 부울 함수(Boolean function)들로 이루어진 N개의 인스턴스들 각각이 반드시 M개의 입력 비트 전체를 입력으로서 취하는 형태가 되어야 한다.
1982년 논문 'Are Big S-Boxes Best'에서 J. Gordon과 H. Retkin은 모든 가능한 출력들의 세트를 랜덤 치환함으로써 컨텐츠들을 선택하는 경우의 s-박스들의 암호학적 속성들을 탐구했다. 상기 논문은, 예비 작업에서 만약 입력 숫자가 충분히 크다면 그와 같이 랜덤하게 선택된 s-박스에서 다양한 바람직한 암호학적 속성들이 발견될 수 있다는 결론을 내렸다. 예를 들어, 264개의 랜덤하게 생성된 가역성(reversible) 6x6 s-박스들 중에서 하나 조차도 이용할 수 있는 선형성을 포함하지 않는다.
1982년 F. Ayoub의 논문 'Probabilistic completeness of substitution-permutation encryption networks', IEEE Proceedings, 129(5):195-199는 그 당시 새로운 연구는 어떤 조건들 하에서 의도적인 트랩도어(trapdoor)로부터 안전함에 대한 증거로서 대입 함수가 랜덤 선택에 의해 설계될 수 있다는 결론을 내렸다. 치환 또한 랜덤하게 선택되는 경우(즉, 사용자의 입력)에 결과되는 네트워크는 매우 높은 확률로 완전성의 속성을 유지한다고 상기 논문은 기술한다. 즉, 출력 비트들 각각은 모든 입력 비트들의 함수가 된다.
M×1 s-박스들에 있어서 부울 함수들의 랜덤 선택이 가능한 경우에 상기 두 논문을 참조한다.
카나다, Ont, Kingston, Queen 대학 전기 공학부의 A.F. Webster 및 S.E. Tavares가 LNCS no.218, 523-534 페이지(1986)에 발표한 석사 논문 'On the Design of S-Boxes'에서 SAC(strict avalanche criterion)를 명백하게 정의하였다. SAC는 각 암호문 출력 비트는 단일 입력 비트가 보충(complement)될 때마다 정확히 1/2의 확률로 변화되어야 한다고 설명한다.
이 논문은 SAC 및 부가적인 속성 '쇄도 변수 독립(avalanche variable independence)'을 충족시키는 4×4 s-박스들을 선택하는데 이용되는 휴리스틱(heuristic) 프로세스에 대해 기술한다. 상기 프로세스는 SAC를 충족시키는 모든 가역 가능 4×1 함수들의 선택, 및 4×4 s-박스들을 생성하기 위해 한 번에 4개씩 결합함으로써 시작된다. 초기 단계에서 '완전한(perfect)' s-박스들을 생성시키는 제한된 수의 패밀리들로부터 4×1 부울 함수들을 선택함으로써 조사(search) 프로 세스를 최적화하는 것 같은 부가적인 휴리스틱 기법들이 상기 논문에서 기술된다.
이 논문은 US 특허 4,275,265(Davida 등)에서 기술된 암호가 어떻게 SAC를 충족시키지 못하는 지를 강조하고, 다른 연구자들에 의해 이전에 확인된 DES의 잠재적 약점(potential weakness)을 증명한다. 상기 논문은 또한 여러 라운드에 걸쳐 SAC를 충족시키지 못하는 구성을 되풀이함으로써 SAC를 충족시키는 구성으로 전환하는 것이 가능하다는 것을 강조한다. 상기 전환은 치환 와이어링(permutation wiring)이 랜덤이고 상기 구성이 대입 치환 네트워크인 경우에 달성될 수 있다.
s-박스들에 대한 완전 비선형성 표준(perfect nonlinearity criterion)은 Advances in Cryptology EUROCRYPT 89', 549-562에서 실린 Meier 및 Staffelbach의 1989년 논문 'Nonlinearity Criteria for Cryptographic Functions'에서 처음으로 기술되었다. 상기 논문의 저자들은 완전 비선형성 표준은 확산에 영향을 미친다고 설명한다. 실제로 이것은 SAC보다 더욱 강한 요건이 된다.
Information Processing Letters, vol. 41, Feb. 14, 1992, pp 77-80에 실린 Carlisle M. Adams의 1992년 논문 'On immunity against Biham and Shamir's Differential Cryptanalysis'에서 차분 암호 해독에 대한 면역성(immune)이 있는 실제적인 사이즈의 s-박스들을 생성시키는 방법이 기술된다.
1998년 8월 18일 공개된 US 특허 5,796,837(Kim 등)에서는 선형 및 차분 암호해독에 대하여 면역성을 갖는 실제적인 사이즈의 M×N s-박스들의 생성을 위한 프로세스가 개시된다. 2000년 2월 29일 공개된 US 특허 6,031,911 (Adams 등)에서는 증가 진행(incremental process)(상기 언급된 논문 'On the Design of S-Boxes' 에서 A.F.Webster 및 S.E. Tavares에 의하여 기술된 기법들과 유사함)에서 SAC 및 다른 표준을 신속하게 충족시키는 M×N s-박스들의 생성을 위한 휴리스틱 기법들이 개시된다.
공개된 자료에 대한 이전 분석으로부터, 비산술적 s-박스 연구의 일반적인 방향에 대하여 결론을 내릴 수 있다. 비산술적 s-박스들의 생성은 세 가지방식으로 분류된다. 즉, 랜덤하게 치환 가능한 모든 출력들을 갖는 합리적으로 큰 s-박스들의 선택, 견고(strong)한 것으로 알려진 s-박스들로부터 키-의존 s-박스들의 생성, 및 고정된 s-박스들에 대하여 요망되는 암호 속성들을 보장하기 위한 더 새롭고 완전한 새로운 표준들의 발견으로 분류된다. 모든 경우에 있어서, 비산술적 s-박스 생성에 대한 상기 세 가지 방식은 s-박스들은 최소한 높은 확률로 완전성의 표준을 보장하여야 한다는 점에 대하여 모두 동의한다.
우리는 비산술적 s-박스들에 관한 다음의 속성들을 주목한다.
- s-박스 구성을 위한 평형(balanced) M×1 부울 함수들이 랜덤하게 선택될 수 있다.
- M×N s-박스들이 랜덤 평형 M×1 부울 함수들로 형성된 다음에 SAC를 충족시키시도록 휴리스틱하게(heuristically) 개선될 수 있다.
- M×N s-박스들은 고정된 초기 치환을 랜덤하게 치환함으로써 선택될 수 있다.
- SP(substitution permutation) 네트워크가 SAC를 충족시키지 못하는 경우에 SAC를 충족시키는 유니크(unique) M×N s-박스를 하나 이상 이용하여 단일 라운 드의 암호 SP 네트워크(cryptographic SP network)가 형성될 수 있다.
- 상기에 기술된 단일 라운드의 암호 SP 네트워크가 SAC를 충족시키지 못하는 경우에는, 둘 이상의 라운드 반복 후에 완성된 SP 네트워크가 SAC를 충족시킨다.
모든 경우에 있어서, 달성가능한 최고의 비선형성, 달성가능한 최고의 대수적 정도(algebraic degree) 및 달성가능한 가장 빠른 쇄도 같은 이상적인 특성들을 갖는 작은 사이즈의 실질적인 s-박스들이 달리 기술적으로 불가능한 크고 강한 s-박스와 거의 같은 SPN을 위하여 선택된다.
소프트웨어 또는 워드-기반 프로세서 아키텍처들에 있어서, 원시 부울 로직 연산들(AND, MOV-move/copy, NAND, NOR, NOT, OR, XNOR, XOR 등)은 엄격한(strictly) 구조를 갖춘 병렬 N-비트 폭 입력들을 통해 실행되는 SIMD(single-instruction-multiple-data) 연산의 형태가 된다. 예를 들어, IBM 파워 PC 또는 인텔 x86 아키텍처 같은 32-비트 범용 프로세서의 경우에, 부울 AND 명령은 32-비트 폭 레지스터 블록들에서 공급되는 64개의 입력 비트에 대하여 32번의 개별적인 비트 단위 AND 연산을 수행하고, 32비트를 출력한다.
모든 M×N s-박스들 및 M×1 부울 함수들은 원시 SIMD 연산들의 적절한 선택 및 배합을 통해 또는 참조표(look-up tables) 같은 소프트웨어로 구현된다. 32 병행 소프트웨어 이피션트 2-대-1 멀티플렉서들(32 concurrent software efficient two-to-one multiplexers)을 구현하는 암호문에서의 SIMD 연산 이용의 예가 암호 해쉬 함수 MD5에서 나타난다.
SIMD 명령들의 가장 두드러진 특징은 병렬 처리(parallelism)가 된다. 즉, 각 입력 레지스터의 각 비트는 단지 출력에서 동일한 위치에 있는 비트에만 영향을 미친다. 다시 말해, 각 입력 레지스터의 최하위 비트는 단지 출력의 최하위 비트에만 영향을 미치며, 각 입력 레지스터의 최상위 비트는 단지 출력의 최상위비트에만 영향을 미친다. 이러한 연산들이 (고정된 또는 가변의) 로테이션, 바이트 스와핑 또는 다른 (고정된 또는 가변의) 치환, 대입 또는 산술 연산들을 이용함이 없이 반복되거나 또는 그룹으로 이용될 때, 출력 비트들 각각은 N-비트 폭 입력 레지스터들 각각에서 2비트 이상의 비트들에 의해 영향을 받지 않는다. 따라서, 암호 어플리케이션에 있어서 가장 중요한 각 입력 레지스터의 상이한 비트들 사이의 확산을 도입하기 위하여 고정된 또는 가변의 로테이션, 바이트 스와핑 또는 다른 (고정된 또는 가변의) 비트 단위 치환, 비트 단위 대입 또는 산술 연산들이 요구된다.
다음 기법들이 비트 확산을 도입하는데 요구되는 비트 단위 치환 연산들을 수행하기 위하여 워드-기반 아키텍처들에서 이용된다.
- 일반적으로 참조표로서 구현되고 s-박스들과 결합되는 p-박스들
- 1989년 발표된 GOST 스탠다드 28147-89에서 나타나는 고정된 비트 단위 로테이션 연산들
- 1981년 3월 10일 공개된 상기 참조된 US 특허 4,255,811(Adler)에서 개시되는 키-의존 비트 단위 로테이션 연산들
- 1979년 6월 5일 공개된 US 특허 4,157,454(Becker)에서 개시되는 데이터-의존 로테이션 연산들
- 1992년 12월 1일 공개된 US 특허 5,168,521(Delaporte 등) 및 1989년 12월 19일 공개된 US 특허 4,888,798(Earnest)에서 개시되는 OR, XOR, 또는 ADD 연산들 및 비트 단위 로테이션 연산들과 결합되는 비트 단위 마스킹 AND 연산들
- Ruby B. Lee, Z. J. Shi, Y. L. Yin, Ronald L. Rivest, M. J. B. Robshaw의 'On permutation operations in cipher design"에서 제안하는 그룹 연산들, 2001년 12월 IEEE Micro, 21(6):56-69, R. B. Lee 등의 논문 'Efficient permutation instructions for fast software cryptography'에 기술된 PPERM 및 CROSS 연산들, 또는 2003년 6월 Application-Specific Systems 관한 제15회 국제 컨퍼런스의 회보 중 Architectures and Processors, pages 237-247, Z. Shi 등의 'Arbitrary bit permutations in one or two cycles'에서 기술된 BFLY 연산들과 같은 치환 명령들
- 1989년 발표된 GOST 스탠다드 28147-89에서 나타나는 워드-기반 산술 연산들(ADD, SUB, MUL, DIV)
- 덜 일반적인 바이트-스와핑, 워드-스와핑 및 비트 순서 반전(bit order reversal) 연산들
상기 특허들에서 기술되는 정적 비트 단위 치환 및 확장 연산들은 제안된 또는 목적된 소프트웨어 구현에 관계없이 부가적인 로직 회로를 이용하지 않고 와이어링 치환들(wiring permutations) 같은 하드웨어로 직접 구현된다. s-박스들, 산술 연산들 및 데이터-의존 및 (임의적으로 선택된 키들에 대한) 키-의존 로테이션들 및 치환들 을 포함하는 동적 비트 단위 치환 연산들은 참조표 또는 부울 로직의 이용을 통해 하드웨어로 구현된다.
1997년 공표된 Eli Biham의 논문 'A Fast New DES Implementation in Software'에서 기술된 비트 슬라이싱은 단지 원시 AND, OR, XOR, NOT 부울 로직 함수들 및 이동(move) 연산들을 이용하여 병렬적으로 실행되는 다중 암호 인스턴스들을 초래한다. 상기에서 기술된 바와 같이, 비트 슬라이싱은 32 또는 64개의 상이한 암호 인스턴스들 사이의 상화관계들을 발생시키지 않는다. 비트 슬라이싱은 단일 프로세서 레지스터 내에서 비트단위 치환들 대신에 상이한 N-비트 폭 레지스터들에 대한 직접적인 레퍼런스들(references)을 이용하여 빠른 병렬된 (parallelised) 소프트웨어 구현들을 가능하게 한다. 비트 슬라이싱은 단일 암호를 구현하기 위하여 축차(sequential) 실행 지연 시간을 증가시키고, 볼륨으로 감소된 성능을 보상한다.
휴리스틱 알고리즘(때때로 근사화 알고리즘이라고 함)은 다루기 어려운 문제에 대한 적합한 해결책을 빠르게 찾는 확률 알고리즘이다. 이러한 해결책은 최적의 해결책일 수도 있고 아닐 수도 있으나, 적합한 해결책을 찾는 것 또는 소정의 해결책이 실제적으로 최적의 해결책인가를 입증하는 것이 계산적으로 불가능한 다루기 어려운 문제에 대하여 만족할 만한 해결책으로 생각된다. 품질 측정을 위해 사용되는 임의의 암호 표준들에 의해 평가되는 본 발명의 바람직한 실시예들에서 이용되는 랜덤하게 또는 의사-랜덤하게 선택된 와이어링 치환들 또는 부울 함수들을 개선시키기 위하여 다음의 휴리스틱 알고리즘들 중에서 어느 것이나 용이하게 적용될 수 있다. 상기 휴리스틱 알고리즘들은 유전(Genetic) 알고리즘들, 그리 디(Greedy) 알고리즘들, 랜덤 탐색(random search), 타부 탐색(Tabu Search), 힐 클라이밍(Hill Climbing), 개미 집단 최적화(Ant Colony Optimization), 시뮬레이티드 어닐링(Simulated Annealing) 또는 이들의 혼성물 및 유사 변형물 등이다. 상기 알고리즘들은
Springer-Verlag, 하이델 베르그, 2001, ISBN:3-540-65367-8, Vijay V. Vazirani의 'Approximation Algorithms',
보스톤, 1996, ISBN: 0-534-94968-1, PWS 출판사, D.S.Hochbaum의 'Approximation Algorithms for NP-hard Problems',
Cryptologia volⅩⅦ, No 4, 1993, p407-418에 발표된 W.S.Forsyth 및 R.Safavi-Naini의 'Automated Cryptanalysis of Substitution Ciphers',
The Computer Journal volⅩⅦ, No 4, 1994에 발표된 J.P.Giddy 및 R.Safavi-Naini의 'Automated Cryptanalysis of Transposition Ciphers',
Computer Science 1841 Springer 2000의 Lecture Notes, ISBN:3-540-67742-9, p242-254, John Andrew Clark and Jeremy Jacob의 'Two Stage Optimisation in the Design of Boolean Functions'에서 기술된다.
본 발명의 일 측면에 따라, 연속적으로 넘버링된(contiguously numbered) a(a는 최소한 4가 됨)개의입력 비트(I1, I2 내지 Ia)를 수신하고, 연속적으로 넘버링된 b개의 출력 비트(O1, O2 내지 Ob)를 출력하도록 적응(adapt)된 다중-입력 다중-출력 s-박스에 있어서,
상기 다중-입력 다중-출력 s-박스는 c개의 원시(primitive) s-박스(sb1, sb2 내지 sbc)를 포함하고,
상기 원시 s-박스들 각각은 다중 입력들과 단일 출력 사이의 관계를 정의하는 대응하는 다중-입력 단일-출력 부울 함수(f1, f2 내지 fc)를 포함하고, 대응하는 입력 비트들의 세트(s1, s2 내지 sc)를 수신하도록 적응되고,
상기 각 세트는 상기 다중-입력 다중-출력 s-박스에 대한 상기 a개의 입력 비트로부터 선택되고, sl1, sl2 내지 slc 개 비트를 각각 포함하고,
sl1, sl2 내지 slc 각각은 3부터 (a-1)까지의 범위 내에 있고, sl1, sl2 내지 slc의 합은 a보다 크고,
상기 다중-입력 다중-출력 s-박스의 상기 b개의 출력 비트는 상기 c개의 부울 함수의 출력들을 포함하는 것을 특징으로 하는 상기 다중-입력 다중-출력 s-박스가 제공된다.
본 발명의 다른 측면에 따라, a개의 연속적으로 넘버링된 입력 비트(I1, I2 내지 Ia)(여기서 a는 최소한 4가 됨)를 수신하고, b개의 연속적으로 넘버링된 출력 비트(O1, O2 내지 Ob)를 출력하는 암호 프로세스에 있어서,
c개의 원시 s-박스 연산(sb1, sb2 내지 sbc)을 포함하고,
상기 각 연산은 다중 입력들과 단일 출력 사이의 관계를 정의하는 대응하는 다중-입력 단일-출력 부울 함수(f1, f2 내지 fc)를 포함하고,
입력 비트들의 세트들(s1, s2 내지 sc)을 각각 수신하고, 상기 각 세트는 상기 암호 함수에 대한 상기 a개의 입력 비트들부터 선택되고, sl1, sl2 내지 slc 개 비트를 각각 포함하고,
sl1, sl2 내지 slc 각각은 3부터 (a-1)까지의 범위 내에 있고,
sl1, sl2 내지 slc의 총합은 a 보다 크고,
여기서 상기 암호 함수의 상기 b개의 출력 비트들은 상기 c개의 부울 함수들의 출력들을 포함하는 것을 특징으로 하는 암호 프로세스가 제공된다.
본 발명을 더욱 용이하게 이해할 수 있도록 본 발명의 바람직한 실시예들이 도면들을 참조하여 기술된다.
도 1은 본 발명의 바람직한 일 실시예에 따른 키-및-데이터-의존 대입-치환 네트워크 암호(key-and-data-dependent substitution-permutation network cipher)의 일부를 도시한다.
도 2는 본 발명의 바람직한 다른 실시예에 따른 키-및-데이터-의존 대입-치환 네트워크 암호 과정에 대한 전단사(bijective) 변형의 일부를 도시한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 워드-기반 키-및-데이터-의존 대입-치환 네트워크의 일부를 도시한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 도 1에서 도시되는 암호에 대한 소프트웨어 구현의 예를 도시한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 키-및-데이터-의존 대입-치환 네트워크 암호의 일부를 도시한다. 도 1은 회로와 같은 하드웨어로 직접 구현될 수 있거나 또는 이하에서 보여지는 워드 기반 아키텍처(word-based architecture)로 시뮬레이트될 수 있다.
도 1에서 도시되는 실시예에서 입력(100)은 5비트(101, 102, 103, 104 및 105)로 구성된다. 함수(110)는 입력 비트들을 치환(permutation)하는 역할을 하는 인자(factor) 3에 의한 입력(100)의 정적 확장을 나타낸다. 함수(120)는 5개의 3×1 s-박스를 포함하나, 도 1에서는 단지 3개(121, 122 및 123)만이 도시된다. 출력(130)은 5비트(131, 132, 133, 134 및 135)로 구성된다. 3×1 s-박스(123)는 입력(100)으로부터 3비트(즉, 105와 순환적인 다음 비트들 104 및 103)로 이루어진 유니크 세트(unique set)을 수신하며, 단일(single) 비트(135)를 출력한다. 3×1 s-박스(122)는 3비트(즉, 104와 순환적인 다음 비트 103 및 102)의 유니크 세트를 수신하며, 단일 비트(134)를 출력한다. 3×1 s-박스(121)는 3비트(즉, 101과 순환적인 다음 비트 105 및 104)의 유니크 세트를 수신하며, 단일 비트(131)를 출력한다. 출력 비트들 각각은 3×1 s-박스에 의해 생성되고, s-박스들 각각은 입력(100)으로부터 한 세트로서 3비트를 수신한다. 한 세트는 3개의 입력 비트들로 이루어지 며, 5개의 세트들에서 각 세트는 다른 세트들과 2비트보다 많은 비트들을 공통적으로 가질 수 없다.
참조 번호 120에 의해 표시되는 s-박스 함수들 각각은 비선형 3-입력 단일-출력 부울 함수로 구성된다. 도 1에서 도시되는 바람직한 실시예에서, 참조 번호 120에 의해 표시되는 s-박스 함수들 각각은 유니크 3-입력 단일-출력 평형 비선형 부울 함수를 수행한다.
도 1에 도시되는 본 발명의 바람직한 실시예는 종래의 M×N s-박스들과 비교하여 와이어링 리던던시(wiring redundancy)를 감소시킨다. 즉, 참조 번호 120에 의해 표시되는 영역의 L-대-1 부울 함수들 각각은 영역 120의 그 밖의 다른 L-대-1 부울 함수와 공통적으로 L 보다 적은 입력을 갖는다. 이와는 대조적으로 종래의 모든 M×N s-박스들은 완전성 표준을 충족시키기 위하여 완전한 와이어 리던던시(full wire redundancy)을 가져야 한다. 즉, 매(every) 출력 비트에 대하여 완전한 M-대-1 부울 함수는 s-박스 내의 다른 모든 M-대-1 부울 함수들과 M개의 입력 모두를 공유하여야 한다.
설명을 위해, s-박스들(123, 122 및 121)이 2-대-1 멀티플렉서 함수들로 선택되었으며, 데이터 입력으로서 대응하는 비트들의 세트({118, 117}, {115, 114} 및 {112, 111})를 취하는 각 멀티플렉서에 대하여 비트들(119, 116 및 113)은 선택자 입력(selector iput)이 된다. s-박스들(120)에 대한 선택자 및 데이터 입력들은 입력(100)으로부터 추출되며, s-박스들(120)은 데이터 의존 치환의 형태가 된다.
이러한 방식에서, 도 1에서 도시되는 본 발명의 실시예는 복수의 입력 비트 확장-치환, 멀티플렉서 함수들, 및 출력 비트 치환을 포함한다. 상기 실시예는 입력(100)에 대한 소정의 1-대-L 확장, 확장된 중간 상태(110)에 대한 소정의 비트 단위 치환, 그리고 키 및 데이터 의존 대입(120)을 수행하며, 여기서 키 및 데이터 의존 대입(120)은 출력으로서 상태(130)로 되돌아가는 확장된 중간 상태(110)에 대한 L-대-1 압축을 수행한다.
만약 출력(130)이 입력(100)으로 피드백되는 경우에, 이러한 구조를 '병렬 피드백을 갖는 비선형 지연 레지스터' 또는 '병렬 피드백 NLFSR'이라 한다. 본 발명의 바람직한 일 실시예에 있어서는, 출력(130)이 입력(100)으로서 피드백된다. 비트들에 대한 작용은 출력(130)에서의 각 비트의 순환적으로 오른쪽 2비트들에 대한 의존성으로 인하여 순환적으로 왼쪽 방향으로 이동한다. 이러한 예에서, 요망되는 확산 완전성을 달성하기 위하여 최소 2개의 라운드가 요구된다.
상기 과정을 구현하는 회로에 있어서 출력(130)에서의 비트들 각각에 대한 임계 경로 와이어 지연들(critical path wire latencies)이 대략 일정한 것으로 예상된다. 본 발명과는 대조적으로, 산술 연산을 기반으로 하는 s-박스들을 구현하는 회로는 항상 일련의 캐리 연산(carry operation)에서 최상위 비트에 의존하는 불규칙한 임계 경로 와이어 지연들을 나타낸다.
도 2는 본 발명의 바람직한 다른 실시예에 따른 키 및 데이터 의존 대입-치환 네트워크 암호 과정에 대한 전단사 변형의 일부를 도시한다. 영역(200)은 25개의 입력 비트를 나타낸다. 영역(201)은 입력(252)의 왼쪽에 위치하는 24비트를 나타낸다. 영역(210)은 25개의 출력 비트들을 나타낸다. 영역(211)은 영역(240)에서 도시되는 25-대-1 s-박스들에 의존하는 20개의 출력 비트들을 나타낸다(20개의 s-박스 중에서 참조 번호 241로 표시되는 단지 하나의 s-박스만이 도면에 도시됨). 영역(221)은 5개의 입력 비트들을 나타낸다. 영역(223)은 5비트 입력(221)을 갖는 전단사(가역성) 5×5 대입-치환(222)에 의존하는 5개의 출력 비트들을 도시한다.
영역(240)에서 각 다중-입력 단일-출력 부울 함수(241)는 영역(201)로부터 5비트(231, 232, 233, 234 및 235)로 이루어지는 소정의 세트(230)를 입력으로 취하고, 출력으로는 영역(250)에서의 선형 결합기(XOR/XNOR)(251)에 대한 첫번째 입력 비트를 생성한다. 선형 결합기(251)는 비트(253)를 출력으로 생성한다. 입력 비트(252)는 선형 결합기(251)에 대한 두 개의 입력들 중 두 번째 입력 비트가 된다. 영역(250)에서의 선형 결합기들(251) 각각에 대하여 대응하는 영역(240)에서의 부울 함수는 선형 결합기(251)에 대한 두 번째 입력 비트 왼쪽에 있는 영역(참조 번호 201로 표시됨)에서만 입력들을 수신하여야 한다.
도 2에서 도시되는 본 발명의 바람직한 실시예에 있어서, 영역(240)에 의해 도시되는 단계에서 이용되는 원시 5-대-1 s-박스들(241)은 영역(230)에 의해 도시되는 단계에서 이용되는 5개의 입력 비트(221 내지 235), 단일 출력, 및 입력 비트들과 출력 비트 사이의 관계를 정의하는 5-대-1 부울 함수로 구성된다. 각 평형 비선형 부울 함수(241)는 랜덤하게 선택된다.
도 3은 본 발명의 바람직한 일 실시예에 따른 워드-기반 키 및 데이터 의존 대입-치환 네트워크의 일부를 도시한다. 데이터 상태(310)는 3개의 워드(또는 가장 편리한 표시법에 따라 블록들, 서브-블록들 또는 레지스터들)로 분할되는 15비트가 된다. 워드(311)는 5비트(321, 322, 323, 324 및 325)로 구성되고, 워드(312)는 5비트(331, 332, 333, 334 및 335)로 구성되고, 워드(313)는 5비트(341, 342, 343, 344 및 345)로 구성된다.
영역(350)에서는 상기 데이터 상태에 대한 인자 3에 의한 정적 확장 치환이 도시된다. 영역(360)에서는 3×1 비선형 s-박스 함수들(도면에는 단지 하나만이 도시됨)이 도시된다.
데이터 상태(365)는 3개의 워드로 분할되는 15비트가 된다. 워드(366)는 5 비트(371, 372, 373, 374 및 375)로 구성되고, 워드(367)는 5비트(381, 382, 383, 384 및 385)로 구성되고, 워드(368)는 5비트(391, 392, 393, 394 및 395)로 구성된다.
도시된 3×1 대입 함수(361)는 3개의 입력들로 이루어진 유니크 세트를 입력으로 취한다. 상기 유니크 세트는 워드(313)의 비트(344)에서 유도된 하나의 비트(352), 워드(312)의 비트(332)에서 유도된 하나의 비트(353), 및 워드(311)의 비트(325)에서 유도된 하나의 비트(351)로 구성된다. 상기 도시된 s-박스(361)는 워드(367) 내의 단일 비트(385)를 출력한다.
상태(365)에서의 15비트 모두에 대하여, 영역(360)에서의 3×1 s-박스들 각각은 상기 템플릿(template)에 따라 4개의 입력들로 이루어진 유니크 세트를 나타낸다.
도 3에서 도시된 본 발명의 바람직한 일 실시예에 따른 워드-기반 키 및 데이터 의존 대입-치환 네트워크 암호는 암호의 소프트웨어 성능 향상을 위한 직접적 인 메커니즘을 제공한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 도 1에서 도시되는 암호에 대한 소프트웨어 구현의 예를 도시한다. 도 4의 과정은 5비트의 워드 길이를 갖는 프로세서에서 실행된다. 워드(400)는 5비트(401, 402, 403, 404 및 405)로 구성되고, 워드(410)는 5비트(411, 412, 413, 414 및 415)로 구성되고, 워드(430)는 5비트(431, 432, 433, 434 및 435)로 구성되고, 워드(470)는 5비트(471, 472, 473, 474 및 475)로 구성된다. 워드(400)는 복제(워드들(410 및 430))를 통해 3개의 워드로 확장된다.
워드(400)는 순환 로테이션(cyclic rotation)(419)을 이용하여 최상위 비트를 향해 한 비트씩 정적으로 치환된다. 이러한 방식에서, 비트들(411, 412, 413, 414 및 415) 각각은 대응하는 출력들(422, 423, 424, 425 및 421)로 치환된다. 출력 비트들(421 내지 425)은 450에 대한 단일-워드 입력으로 이용된다.
워드(430)는 순환 로테이션(439)을 이용하여 최상위 비트를 향해 두 비트씩 정적으로 치환된다. 이러한 방식에서, 비트들(431, 432, 433, 434 및 435) 각각은 대응하는 출력들(443, 444, 445, 441 및 442)로 치환된다. 출력 비트들(441 내지 445)은 450에 대한 단일-워드 입력으로 이용된다.
영역(450)에서는 일련의 워드 기반 명령들(460)을 수행하는 함수(입력으로 3워드를 취함)가 표시된다. 일련의 워드 기반 명령들(460)은 도 1에서 도시되는 멀티플렉서 연산들을 구현하는 워드 기반 원시 부울 함수들로 구성된다. 워드(400)를 A로, 워드(420)를 B로, 워드(440)를 C로 그리고 워드(470)를 D라고 표시한다면, 5 비트 폭을 갖는 2-대-1 멀티플렉서를 아래와 같이 표현할 수 있다. 여기서 A는 선택 입력들(select inputs)로 구성되고, B 및 C는 데이터 입력들로 구성된다.
D =(A AND B) OR ((NOT A) AND C)
영역(481)에서는 비트(471)가 어떻게 입력들(401, 421 및 441)에만 의존하는가를 시각적으로 보여준다.
영역들(482 내지 485) 각각은 대응하는 비트들(472 내지 475)에 대한 의존을 보여준다.
5-비트 변수들 A 및 D에 의해 상기 과정의 완전한 5비트 폭 구현을 나타내면:
D=(A AND (A ROT 1)) OR ((NOT A) AND (A ROT 2))가 된다.
어셈블러 의사 코드에 있어서(여기서 일반적인 목적의 5-비트 레지스터 RA는 입력, RB 및 RC는 임시 레지스터들, 그리고 RD는 출력임), 동일한 알고리즘은 아래와 같은 여섯 개의 연산으로 쉽게 구현될 수 있다.
RB = RA rotate left 1
RC = RA and RB
RA = not RA
RB = RB rotate left 1
RD = RA and RB
RD = RD or RC
상기 과정은 범용성(generality)의 손실없이 어떻게 치환 연산들이 단계적으 로 수행될 수 있는지 및 이동/복제 연산들이 최적화될 수 있는지를 나타낸다. 짧은 일련의 프로세서 명령들로 표현가능한 광범위한 와이어링 치환을 구현가능하게 하며, 따라서 하드웨어 성능의 저하 없이 요망되는 소프트웨어 성능을 달성할 수 있는 소프트웨어 프로세서들에 의해 바이트 스와핑 같은 다른 연산들, 참조 테이블(look-up tables), 및 2진 마스킹 연산들이 쉽게 이용될 수 있다.
도 1, 2 및 3에서 도시되는 본 발명의 바람직한 실시예들에 있어서, 모든 입력 비트(100, 201 및 310)가 대응하는 확장된 입력 비트(110, 240 및 350)에 할당되는 것뿐만 아니라 영역들(120, 240 및 360)에서의 복수의 원시 L-대-1 s-박스들로부터의 모든 출력 비트가 대응하는 영역들(130, 210 및 365)에서의 출력 비트에 할당되는 것을 포함하는 내부 와이어링 치환은 랜덤하게 선택된다.
본 발명의 다른 바람직한 실시예들에 있어서,
- 내부 와이어링 치환은 키 의존 의사 랜덤 과정을 이용하여 선택된다.
- 내부 와이어링 치환은 수학 공식에 따라 선택된다.
- 내부 와이어링 치환은 입력과 출력 비트들 사이의 단일-라운드 또는 다중-라운드 다항(polynomial) 관계들에 있어서 리던던시를 감소시키기 위하여 휴리스틱하게 정제(refine)된다.
- 내부 와이어링 치환은 하드웨어 회로 최적화를 위해 최대 허용 와이어링 지연에 따라서 제한된다.
- 121, 122, 123, 241 및 361에 대한 입력들 각각은 대응하는 출력들(131, 134, 135, 253 및 385)로부터의 거리(in distance)에 있어 제한된다.
- 영역들(120, 240 및 360)에서의 원시 L-대-1 s-박스들 각각에 대한 입력은 대응하는 영역(130, 210 및 365)에서의 출력 비트와 관련하여 대응하는 영역(100, 201 및 310)에서의 입력 비트들 중에서 동일 관련 위치들(same relative positions)에서 선택된다.
- 영역들(120, 240 또는 360)에서의 원시 L-대-1 s-박스들 중 일부는 입력으로 하나 또는 복수의 키 비트들을 수신하도록 적응(adapt)된다.
- 암호 연산의 각 라운드에 대해 상이한 와이어링 치환이 선택된다.
- 출력(130, 210 또는 365) 폭은 대응하는 입력(100, 200 또는 310) 폭과 다르다.
- 내부 와이어링 치환들은 짧은 일련의 32비트, 64비트 또는 128비트 범용 프로세서 명령들로서 구현될 수 있는 치환들로 국한된다.
- 내부 와이어링 치환들은 2004년 10월 13일 출원된 호주 가특허출원 2004905897로서 제목이 "Porcess of and Apparatus for Encoding a digital signal"에서 개시된 로테이션 시퀀싱(rotation sequencing)과 바이트-스와핑을 통합하기 위하여 적응된다.
- 단일 부울 함수는 영역들(120, 240 또는 360)에서의 모든 원시 L-대-1 s-박스들에서 이용된다.
- 복수의 부울 함수들이 영역들(120, 240, 또는 360)에서의 모든 원시 L-대-1 s-박스들에서 이용된다.
- 영역들(120, 240, 또는 360)에서의 모든 원시 L-대-1 s-박스들에서 이용되 는 모든 부울 함수들은 서로 다르다.
- 영역들(120, 240, 또는 360)에서의 원시 L-대-1 s-박스들에서 이용되는 부울 함수들 중 일부는 키-의존 의사-랜덤 과정을 이용하여 선택된다.
- 영역들(120, 240, 또는 360)에서의 원시 L-대-1 s-박스들에서 이용되는 부울 함수들의 선택은 입력과 출력 비트들 사이의 단일-라운드 또는 다중- 라운드 다항 관계들에 있어서 리던던시를 감소시키기 위하여 휴리스틱하게 정제된다.
- 단지 원래(original)의 입력 변수들(또는 프로세서 레지스터들)만이 이후의 연산들에서 이용된다.
- 적어도 하나 또는 복수의 중간(intermediate) 변수들(또는 프로세서 레지스터들)이 이후의 연산들에서 이용된다.
- 단지 중간 변수들(또는 프로세서 레지스터들)이 이후의 연산들에서 이용된다.
- 또한 s-박스들을 적용하는 방법은 함께 출원중인 특허 출원들에서 개시되는 양방향 블록 체이닝(chining)을 통합하기 위하여 적응된다.
앞에서 언급한 특허 출원들은:
제목이 모두 "A Method of Encoding a signal"로서 2004년 11월 5일
출원된 호주 가출원 2004906364 및 2005년 1월 10일 출원된 호주
가출원 2005900087;
제목이 "Methods of Encoding and Decoding Data"로서 2005년 5월
10일 출원된 국제 특허 출원 PCT/IB2005/001499;
제목이 "Process of and Apparatus ofr Encoding a signal"로서
2005년 5월 10일 출원된 국제 특허 출원 PCT/IB2005/001487; 그리고
제목이 "A method of and apparatus for Encoding a Signal in
a Hashing Primitive"로서 2005년 5월 10일 출원된 국제 특허 출원
PCT/IB2005/001475이 되고,
위의 각 출원의 내용이 본 명세서에 참조로서 합체된다.
만약 본 발명의 바람직한 실시예들에서 이용되는 부울 함수들 및/또는 와이어링 치환들에 대한 선택이 '패밀리'키 라고 불리우는 키 재료에 의존한다면, 이러한 암호의 하드웨어(RFID, ASIC 등) 구현은 고정된 원시 부울 로직을 갖는 고정된 와이어링으로서 구현될 때 효율적이다.
중요하게는, 도 2에서 보여지는 바와 같이 작용하고 입력 비트(252)와 출력 비트(253) 사이의 선형적인 관계와 결합되는 단지 비트(252)의 왼쪽에 위치하는 입력비트들(201)에서만 원시 L-대-1 s-박스들에 대한 입력 비트들을 선택해야 하는 유일한 제한은 내부 와이어링 치환 또는 원시 s-박스(241)에서 부울 함수의 선택에 관계없이 전단사(가역성) 연산을 보장한다.

Claims (96)

  1. 연속적으로 넘버링된(contiguously numbered) a(a는 최소한 4가 됨)개의 입력 비트(I1, I2 내지 Ia)를 수신하고, 연속적으로 넘버링된 b개의 출력 비트(O1, O2 내지 Ob)를 출력하도록 적응된 다중-입력 다중-출력 s-박스(substitution box)에 있어서,
    상기 다중-입력 다중-출력 s-박스는 c개의 원시(primitive) s-박스(sb1, sb2 내지 sbc)를 포함하고,
    상기 원시 s-박스들 각각은 다중 입력들과 단일 출력 사이의 관계를 정의하는 대응하는 다중-입력 단일-출력 부울 함수(f1, f2 내지 fc)를 포함하고, 대응하는 입력 비트들의 세트(s1, s2 내지 sc)를 수신하도록 적응되고,
    상기 각 세트는 상기 다중-입력 다중-출력 s-박스에 대한 상기 a개의 입력 비트로부터 선택되고, sl1, sl2 내지 slc 개 비트를 각각 포함하고,
    sl1, sl2 내지 slc 각각은 3부터 (a-1)까지의 범위 내에 있고, sl1, sl2 내지 slc의 합은 a보다 크고,
    상기 다중-입력 다중-출력 s-박스의 상기 b개의 출력 비트는 상기 c개의 부울 함수의 출력들을 포함하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  2. 제1항에 있어서,
    상기 b개의 출력 비트가 상기 c개의 원시 s-박스의 출력들이 되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  3. 선행 청구항들 중 어느 한 항에 있어서,
    상기 a는 최소한 16이 되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  4. 선행 청구항들 중 어느 한 항에 있어서,
    상기 b는 최소한 16이 되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  5. 선행 청구항들 중 어느 한 항에 있어서,
    상기 c는 12부터 b까지의 범위 내에 있는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  6. 선행 청구항들 중 어느 한 항에 있어서,
    1부터 a까지의 범위 내에 있는 각 i및 j에 대하여, 세트들의 각 쌍(si와 sj) 은 (sli와 slj 중 작은 값-1)보다 많은 비트들을 공통적으로 가질 수 없는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  7. 선행 청구항들 중 어느 한 항에 있어서,
    상기 sl1, sl2 내지 slc의 총합이 a의 1.5배이거나 또는 a의 1.5배보다 큰 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  8. 선행 청구항들 중 어느 한 항에 있어서,
    상기 a, b, c 중에서 적어도 하나가 소수(prime number)인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  9. 선행 청구항들 중 어느 한 항에 있어서,
    상기 a 및 b 모두가 l보다 큰 제수(divisor)를 갖지 않는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  10. 선행 청구항들 중 어느 한 항에 있어서,
    상기 sl1, sl2 내지 slc 중에서 적어도 두 개가 동일한 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  11. 제10항에 있어서,
    상기 숫자 sl1, sl2 내지 slc 모두가 동일한 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  12. 선행 청구항들 중 어느 한 항에 있어서,
    상기 입력 비트들의 각 세트(s1, s2 내지 sc)는 확률(probabilistic) 프로세스를 이용하여 선택되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  13. 선행 청구항들 중 어느 한 항에 있어서,
    상기 입력 비트들의 세트들(s1, s2 내지 sc) 중에서 적어도 하나를 선택하는데 이용되는 상기 프로세스가 키잉(keying)되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  14. 제12항 또는 제13항에 있어서,
    상기 입력 비트들의 세트들(s1, s2 내지 sc)의 선택이 적어도 하나의 표준(criterion)을 만족시키기 위하여 휴리스틱하게(heuristically) 정제(refine)되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  15. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 확률 프로세스를 이용하여 생성되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  16. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나를 생성하는데 이용되는 상기 프로세스가 키잉되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  17. 제15항 또는 제16항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나의 선택이 적어도 하나의 표준을 충족시키기 위하여 휴리스틱하게 정제되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  18. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 평형(balanced) 부울 함수인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  19. 제18항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 각각이 평형 부울 함수인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  20. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 2-대-1(two-to-one) 멀티플렉서 함수를 포함하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  21. 제20항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 각각이 2-대-1 멀티플렉서 함수를 포함하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  22. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 유니크(unique) 부울 함수인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  23. 제22항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 각각이 유니크 부울 함수인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  24. 제22항 또는 제23항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 사이의 차(difference)가 아핀(affine)인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  25. 선행 청구항들 중 어느 한 항에 있어서,
    상기 다중-입력 다중-출력 s-박스가 실행(run-time)시에 재구성(reconfigure)되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  26. 선행 청구항들 중 어느 한 항에 있어서,
    상기 입력 비트들의 세트들(s1, s2 내지 sc) 중에서 적어도 하나가 실행시에 변화되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  27. 선행 청구항들 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 실행시에 재구성되는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  28. 선행 청구항들 중 어느 한 항에 있어서,
    (c-a)부터 a까지의 범위 내에 있는 모든 i에 대하여, 상기 각 원시 s-박스 sbi에 대한 상기 sli개의 입력비트로 이루어진 세트가 상기 입력 비트들(I1 내지 Ii) 로부터 선택되고, 상기 입력 비트 Ii와 상기 출력 비트 사이의 관계가 선형(linear)인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  29. 제28항에 있어서,
    상기 a개 비트들(I1 내지Ia)로 이루어진 세트 중에서 T=(a-c)개 비트로 이루어진 서브 세트(즉, I1 내지 IT까지의 비트들)가 T×T 전단사 사상(bijective mapping)에 대한 입력인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  30. 제1항 내지 제29항 중 어느 한 항에 있어서,
    (W+1)부터 a까지 범위 내의 모든 i에 대하여(W는 상수임), 상기 원시 s-박스 sbi에 대한 상기 sli개의 입력비트의 세트가 상기 입력 비트들( I(i-W) 내지 Ii)로부터 선택되고, 상기 입력 비트 Ii와 상기 s-박스 sbi의 출력 비트 사이의 관계가 선형인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  31. 제30항에 있어서,
    상기 W는 2부터 (a-1)까지의 범위 내에 있는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  32. 제30항 또는 제31항에 있어서,
    상기 W개의 비트들(I1 내지 IW)이 W×W 전단사 사상에 대한 입력인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  33. 제1항 내지 제27항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 각각에 대하여 대응하는 sl1, sl2 내지 slc개 비트를 선택하는 경우에,
    상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트에서 상기 비트 Ia가 상기 비트 I1은 물론 상기 비트 I(a-1)과도 연속적이 되어 상기 입력 비트들(I1, I2 내지 Ia)은 서큘러 집합이 되고, 상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트는 비트들로 이루어진 윈도우들(w1 내지 wd)의 세트를 포함하고(d는 3부터 (c/3)까지의 범위 내에 있음),
    각 윈도우는 앞쪽(leading) 및 뒤쪽(trailing) 윈도우 경계를 가지며 각 경계는 상기 원시 s-박스들 sbi와 sb(i+1) 사이에서 동일한 방향으로 한 비트씩 이동하고,
    상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트에서 상기 비트 Ob가 상기 비트 O1은 물론 상기 비트 O(b-1)과도 연속적이 되어 상기 출력 비트들(O1, O2 내지 Ob)은 서큘러 집합이 되고,
    상기 sb1 내지 sbc로 이루어진 세트에서의 각 원시 s-박스 sbk에 대하여,
    상기 원시 s-박스 sbk로 입력되는 상기 입력 비트들은 윈도우 wk를 제외하고 입력 비트들로 이루어진 적어도 두 개의 윈도우들 각각으로부터 적어도 하나의 비트를 포함하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  34. 제33항에 있어서,
    상기 각 원시 s-박스 sbi에 대하여, 상기 윈도우들(w1 내지 wd) 중에서 적어도 두 개의 윈도우가 상이한 사이즈인 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  35. 제1항 내지 제27항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 각각에 대하여 대응하는 sl1, sl2 내지 slc개 비트를 선택하는 경우에,
    상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트에서 상기 비트 Ia가 상기 비트 I1은 물론 상기 비트 I(a-1)과도 연속적이 되어 상기 입력 비트들(I1, I2 내지 Ia)은 서큘러 집합이 되고, 상기 연속적으로 넘버링된 입력 비 트들(I1, I2 내지 Ia)로 이루어진 세트는 입력 비트들로 이루어진 연속적인 윈도우들(w1 내지 wd)의 세트를 포함하고(d는 2부터 (a/3)까지의 범위 내에 있음),
    그리고 상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트에서 상기 비트 Ob가 상기 비트 O1은 물론 상기 비트 O(b-1)과도 연속적이 되어 상기 출력 비트들(O1, O2 내지 Ob)은 서큘러 집합이 되고,
    상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트는 출력 비트들로 이루어진 연속적인 윈도우들(w1 내지 wd)의 세트를 포함하고,
    상기 sb1 내지 sbc 원시 s-박스들에서 각 원시 s-박스 sbk에 대하여
    상기 출력 비트들로 이루어진 윈도우 wk는 상기 원시 s-박스 sbk의 출력 비트를 포함하고,
    상기 원시 s-박스 sbk로 입력되는 상기 입력 비트들은 윈도우 wk를 제외하고 입력 비트들로 이루어진 적어도 두 개의 윈도우들 각각으로부터 적어도 하나의 비트를 포함하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  36. 선행 청구항들 중 어느 한 항에서 기재된 상기 다중-입력 다중-출력 s-박스를 적어도 2개 이상 포함하고, 상기 다중-입력 다중-출력 s-박스들 중 어떤 쌍(pair)도 입력을 공유하지 않는 것을 특징으로 하는 구성(construction).
  37. 제1항 내지 제41항 중 어느 한 항에서 기재된 상기 다중-입력 다중-출력 s-박스를 적어도 2개 이상 포함하고, 상기 다중-입력 다중-출력 s-박스들 중 적어도 한 쌍이 적어도 하나의 입력을 공유하는 것을 특징으로 하는 구성.
  38. 제36항 또는 제37항에 있어서,
    상기 다중-입력 다중-출력 s-박스들 중에서 적어도 두 개가 파이프라인(pipeline)된 것을 특징으로 하는 구성.
  39. 제36항 내지 제38항 중 어느 한 항에 있어서,
    적어도 하나의 다중-입력 다중-출력 s-박스에 대한 입력이 다른 다중-입력 다중-출력 s-박스의 b개의 출력들과 같거나 또는 작은 서브세트(subset)를 포함하는 것을 특징으로 하는 구성.
  40. 제36항 내지 제39항 중 어느 한 항에 있어서,
    적어도 하나의 다중-입력 다중-출력 s-박스의 b개의 출력들과 같거나 또는 작은 서브세트가 다른 다중-입력 다중-출력 s-박스의 입력으로 이용되기 전에 더 조작(manipulate)되는 것을 특징으로 하는 구성.
  41. 제36항 내지 제40항 중 어느 한 항에 있어서,
    상기 다중-입력 다중-출력 s-박스들 중에서 적어도 두 개의 다중-입력 다중-출력 s-박스에 있어서,
    상기 하나의 s-박스에 대한 입력 비트의 갯수(number)가 상기 다른 하나의 s-박스에 대한 입력 비트의 갯수와 다를 것과,
    상기 하나의 s-박스의 출력 비트의 갯수가 다른 하나의 s-박스의 출력 비트의 갯수와 다를 것 중 적어도 하나를 만족시키는 것을 특징으로 하는 구성.
  42. 제41항에 있어서,
    상기 적어도 두 개의 다중-입력 다중-출력 s-박스들 각각에 대한 입력 비트의 갯수가 공통적으로 1이외의 제수를 갖지 않는 것을 특징으로 하는 구성.
  43. 제41항 또는 제42항에 있어서,
    상기 적어도 두 개의 다중-입력 다중-출력 s-박스들 각각으로부터의 출력 비트의 갯수가 공통적으로 1이외의 제수를 갖지 않은 것을 특징으로 하는 구성.
  44. 제41항 내지 제43항 중 어느 한 항에 있어서,
    상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중에서 하나에 대한 입력 비트의 갯수가 상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중에서 다른 하나의 입력 비트의 갯수 보다 적어도 50%이상 더 많은 것을 특징으로 하는 구성.
  45. 제41항 내지 제43항 중 어느 한 항에 있어서,
    상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중에서 하나의 출력 비트의 갯수가 상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중에서 다른 하나의 출력 비트의 갯수 보다 적어도 50%이상 더 많은 것을 특징으로 하는 구성.
  46. 제36항 내지 45항 중 어느 한 항에 있어서,
    상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중 하나에 대한상기 원시 s-박스들(sb1, sb2 내지 sbc) 중에서 적어도 하나가 상기 적어도 두 개 이상의 다중-입력 다중-출력 s-박스들 중 다른 하나에 대한 상기 원시 s-박스들(sb1, sb2 내지 sbc)들과 다른 것을 특징으로 하는 구성.
  47. 선행 청구항들 중 어느 한 항에 있어서,
    적어도 하나의 다중-입력 다중-출력 s-박스의 b개의 출력과 같거나 또는 작은 서브세트가 다른 프로세스에 대한 입력으로 이용되는 것을 특징으로 하는 발명.
  48. 제47항에 있어서,
    적어도 하나의 다중-입력 다중-출력 s-박스의 b개의 출력들과 같거나 또는 작은 서브세트가 다른 프로세스에 대한 입력으로서 이용되기 전에 더 조작되 는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  49. 제1항 내지 제40항 중 어느 한 항에 있어서,
    상기 c개의 원시 s-박스(sb1 내지 sbc)에 대한 입력 비트들의 세트(s1, s2 내지 sc)가 휴리스틱(heuristic) 프로세스에 의해 선택되는 경우에,
    상기 a개의 비트로부터 추출된 입력 비트들에 대하여 색인 위치(index positions)를 갖는 c 개의 정연한(ordered) 세트들(P1 내지 Pc)이 확률적으로 선택되고, 상기 세트들(P1, P2 내지 Pc)은 각각 sl1, sl2 내지 slc개 멤버들을 포함하고,
    색인 위치를 갖는 상기 c개의 정연한 세트들(P1 내지 Pc) 각각에 대하여, 만약 임의의 두 개의 상기 세트가 동일한 위치에서 동일한 멤버를 포함한다면, 상기 세트들(P1 내지 Pc) 중에서 다른 세트로부터 확률적으로 선택된 색인 위치로 동일한 멤버들 중 하나를 교환하고,
    색인 위치를 갖는 상기 c개의 세트들(P1 내지 Pc) 각각에 대하여 반복적으로,
    상기 각 세트가 색인 위치를 갖는 다른 세트들(P1 내지 Pc) 각각과 공통으로 갖는 멤버들의 갯수를 결정하고,
    색인 위치를 갖는 상기 c개의 세트들(P1 내지 Pc) 중에서 임의의 멤버 갯수 t를 공통적으로 갖는 각 2개 세트(Pi 및 Pk)에 대하여, Pi 의 (t+1)/2 개의 멤버를 재정렬하고,
    상기 c개의 세트들(P1 내지 Pc) 중에서 남아 있는 (c-2)개의 세트를 Pi와 공통적으로 갖고 있는 멤버들의 갯수 순으로 정리하고,
    Pi와 공통으로 갖는 멤버의 갯수가 최소인 세트 Pm을 상기 (c-2)개의 세트에서 선택하고,
    상기 세트들(Pi 및 Pk)에 공통되는 하나의 멤버를 선택하고,
    상기 선택된 멤버를 상기 세트 Pm의 멤버들 중 하나와 교환하는 것을 특징으로 하는 다중-입력 다중-출력 s-박스.
  50. 선행 청구항들 중 어느 한 항에서 기재된 발명을 시뮬레이트(simulate)하는 것을 특징으로 하는 프로세스.
  51. 제51항에 있어서,
    상기 프로세스가 워드-기반 범용(general purpose) 프로세서에서 구현되는 것을 특징으로 하는 프로세스.
  52. 제49항 내지 제51항 중 어느 한 항에 있어서,
    정적 비트 단위(bitwise) 치환 연산들, 키-의존 비트 단위 치환 연산들 및 데이터-의존 비트 단위 치환 연산들 중에서 적어도 하나를 포함하는 비트 단위 치환 연산들을 수행하기 위하여 2진(binary) 마스킹이 이용되는 것을 특징으로 하는 프로세스.
  53. 제52항에 있어서,
    상기 비트 단위 치환 연산들은 상기 세트들(s1, s2 내지 sc)의 멤버들 선택, 및 상기 c개의 부울 함수의 출력들의 치환 중에서 적어도 하나를 달성하는데 이용되고, 상기 2진 마스킹은 상기 정적 비트 단위 치환 연산들, 키-의존 비트 단위 치환 연산들 및 데이터-의존 비트 단위 치환 연산들 중에서 적어도 하나를 수행하는데 이용되는 것을 특징으로 하는 프로세스.
  54. 제53항에 있어서,
    상기 비트 단위 치환 연산들이 하드웨어 지원(assisted) 비트 단위 치환 연산인 것을 특징으로 하는 프로세스.
  55. 제54항에 있어서,
    상기 하드웨어 지원 비트 단위 치환 연산들은 GRP(group operation), 역(inverse) GRP, OMFLIP(omega-flip network), PPERM, CROSS 및 BFLY 연산들을 포함하는 그룹들로부터 선택되는 것을 특징으로 하는 프로세스.
  56. 제50항 내지 제53항 중 어느 한 항에 있어서,
    상기 비트 단위 치환 연산들을 수행하기 위하여 하드웨어 지원 비트 단위 로테이션(rotation) 연산들이 이용되는 것을 특징으로 하는 프로세스.
  57. 제50항 내지 제53항 중 어느 한 항에 있어서,
    상기 비트 단위 치환 연산들을 수행하기 위하여 하드웨어 지원 비트 단위 시프팅(shifting) 연산들을 이용하는 것을 특징으로 하는 프로세스.
  58. 제50항 내지 제53항 중 어느 한 항에 있어서,
    상기 비트 단위 치환 연산들을 수행하기 위하여 하드웨어 지원 바이트 교환(swapping) 연산들을 이용하는 것을 특징으로 하는 프로세스.
  59. 제50항 내지 제58항 중 어느 한 항에 있어서,
    참조표(look-up-table)를 이용하여 대입 및 비트 단위 치환 연산들 중 적어도 하나가 수행되는 것을 특징으로 하는 프로세스.
  60. 제50항 내지 제59항 중 어느 한 항에 있어서,
    적어도 하나의 워드-기반 원시 부울 함수를 이용함으로써 대입 연산이 수행되는 것을 특징으로 하는 프로세스.
  61. 블록 암호, 스트림 암호, 의사 난수 생성기 또는 해쉬 함수의 라운드 함수(round function)를 포함하는 회로에 있어서,
    제1항 내지 제49항 중 어느 한 항에서 기재된 다중-입력 다중-출력 s-박스를 적어도 하나 이상 포함하는 상기 암호 회로가 적어도 하나의 다중-입력 다중-출력 s-박스의 입력과 출력 사이에서 0 내지 6번의 캐리 연산으로 이루어진 온전한 산술 캐리-로직 체인(unbroken arithmetic carry-logic chain)이 포함하는 것을 특징으로 하는 회로.
  62. a개의 연속적으로 넘버링된 입력 비트(I1, I2 내지 Ia)(여기서 a는 최소한 4가 됨)를 수신하고, b개의 연속적으로 넘버링된 출력 비트(O1, O2 내지 Ob)를 출력하는 암호 프로세스에 있어서,
    c개의 원시 s-박스 연산(sb1, sb2 내지 sbc)을 포함하고,
    상기 각 연산은 다중 입력들과 단일 출력 사이의 관계를 정의하는 대응하는 다중-입력 단일-출력 부울 함수(f1, f2 내지 fc)를 포함하고,
    입력 비트들의 세트들(s1, s2 내지 sc)을 각각 수신하고, 상기 각 세트는 상 기 암호 함수에 대한 상기 a개의 입력 비트들부터 선택되고, sl1, sl2 내지 slc 개 비트를 각각 포함하고,
    sl1, sl2 내지 slc 각각은 3부터 (a-1)까지의 범위 내에 있고,
    sl1, sl2 내지 slc의 총합은 a 보다 크고,
    여기서 상기 암호 함수의 상기 b개의 출력 비트들은 상기 c개의 부울 함수들의 출력들을 포함하는 것을 특징으로 하는 암호 프로세스.
  63. 제62항에 있어서,
    상기 s-박스의 상기 b개의 출력 비트는 상기 c개의 원시 s-박스 연산의 출력들인 것을 특징으로 하는 암호 프로세스.
  64. 제62항 또는 제63항에 있어서,
    상기 a가 최소한 16인 것을 특징으로 하는 암호 프로세스.
  65. 제62항 내지 제64항 중 어느 한 항에 있어서,
    상기 b가 최소한 16인 것을 특징으로 하는 암호 프로세스.
  66. 제62항 내지 65항 중 어느 한 항에 있어서,
    상기 c가 12 부터 b까지의 범위 내에 있는 것을 특징으로 하는 암호 프로세 스.
  67. 제62항 내지 제66항 중 어느 한 항에 있어서,
    1부터 a까지의 범위 내에서 각 i와j 대하여, 세트들의 각 쌍(pair)(si와sj)은 (sli와 slj 중 작은 것-1)개 비트보다 더 많은 비트들을 공통적으로 가질 수 없는 것을 특징으로 하는 암호 프로세스.
  68. 제62항 내지 67항 중 어느 한 항에 있어서,
    상기 sl1, sl2 내지 slc의 총합이 a의 1.5배와 같거나 또는 a의 1.5배보다 큰 것을 특징으로 하는 암호 프로세스.
  69. 제62항 내지 68항 중 어느 한 항에 있어서,
    상기 a, b, c 중에서 적어도 하나가 소수인 것을 특징으로 하는 암호 프로세스.
  70. 제62항 내지 69항 중 어느 한 항에 있어서,
    상기 a 및 b가 공통적으로 1보다 큰 제수를 갖지 않는 것을 특징으로 하는 암호 프로세스.
  71. 제62항 내지 70항 중 어느 한 항에 있어서,
    상기 sl1, sl2 내지 slc 중에서 적어도 두 개가 동일한 것을 특징으로 하는 암호 프로세스.
  72. 제71항에 있어서,
    상기 sl1, sl2 내지 slc 모두가 동일한 것을 특징으로 하는 암호 프로세스.
  73. 제62항 내지 72항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 각각이 확률 프로세스를 이용하여 선택되는 것을 특징으로 하는 암호 프로세스.
  74. 제62항 내지 73항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 중에서 적어도 하나를 선택하는데 이용되는 상기 프로세스가 키잉되는 것을 특징으로 하는 암호 프로세스.
  75. 제73항 또는 제74항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc)의 선택이 적어도 하나 의 표준을 충족시키기 위하여 휴리스틱하게 정제되는 것을 특징으로 하는 암호 프로세스.
  76. 제62항 내지 75항 중 어느 한 항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나가 확률 프로세스를 이용하여 생성되는 것을 특징으로 하는 암호 프로세스.
  77. 제62항 내지 제76항 중 어느 한 항에 있어서,
    상기 부울 함수(f1, f2 내지 fc) 중에서 적어도 하나를 생성하는데 이용되는 상기 프로세스가 키잉되는 것을 특징으로 하는 암호 프로세스.
  78. 제76항 또는 제77항에 있어서,
    상기 부울 함수들(f1, f2 내지 fc) 중에서 적어도 하나의 선택이 적어도 하나의 표준을 충족시키기 위하여 휴리스틱하게 정제되는 것을 특징으로 하는 암호 프로세스.
  79. 제62항 내지 제78항 중 어느 한 항에 있어서,
    상기 함수들(f1, f2 내지 fc) 중 적어도 하나가 평형 부울 함수인 것을 특징으로 하는 암호 프로세스.
  80. 제79항에 있어서,
    상기 함수들(f1, f2 내지 fc) 각각이 평형 부울 함수인 것을 특징으로 하는 암호 프로세스.
  81. 제62항 내지 제80항 중 어느 한 항에 있어서,
    상기 함수들(f1, f2 내지 fc) 중 적어도 하나가 2-대-1 멀티플렉서 함수를 포함하는 것을 특징으로 하는 암호 프로세스.
  82. 제81항에 있어서,
    상기 함수들(f1, f2 내지 fc) 각각이 2-대-1 멀티플렉서 함수를 포함하는 것을 특징으로 하는 암호 프로세스.
  83. 제62항 내지 제82항 중 어느 한 항에 있어서,
    상기 함수들(f1, f2 내지 fc) 중 적어도 하나가 유니크 부울 함수인 것을 특징으로 하는 암호 프로세스.
  84. 제83항에 있어서,
    상기 함수들(f1, f2 내지 fc) 각각이 유니크 부울 함수인 것을 특징으로 하는 암호 프로세스.
  85. 제83항 또는 제84항에 있어서,
    상기 함수들(f1, f2 내지 fc) 사이의 차가 아핀인 것을 특징으로 하는 암호 프로세스.
  86. 제62항 내지 제85항 중 어느 한 항에 있어서,
    상기 암호 프로세스가 실행시에 재구성되는 것을 특징으로 하는 암호 프로세스.
  87. 제62항 내지 제86항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1 내지 sc) 중 적어도 하나가 실행시에 변화되는 것을 특징으로 하는 암호 프로세스.
  88. 제62항 내지 제87항 중 어느 한 항에 있어서,
    상기 함수들(f1, f2 내지 fc) 중 적어도 하나가 실행시에 재구성되는 것을 특징으로 하는 암호 프로세스.
  89. 제62항 내지 제88항 중 어느 한 항에 있어서,
    (c-a)부터 a까지의 범위 내에 있는 매(every) i에 대하여,
    각 원시 s-박스 연산 sbi에 대한 sli 개의 입력 비트들의 세트가 상기 입력 비트들(I1 내지 Ii)로부터 선택되고,
    상기 입력 비트 Ii와 상기 출력 비트 사이의 관계가 선형인 것을 특징으로 하는 암호 프로세스.
  90. 제89항에 있어서,
    a개의 비트들(I1 내지 Ia)로 이루어진 세트에서 T=(a-c)개의 비트들로 이루어진 서브-세트(즉, 비트들 I1 내지 IT)가 T×T 전단사 사상에 대한 입력인 것을 특징으로 하는 암호 프로세스.
  91. 제62항 내지 제90항 중 어느 한 항에 있어서,
    (W+1)부터 a까지의 범위 내에 있는 매 i에 대하여(여기서, W는 상수임),
    상기 원시 s-박스 연산 sbi에 대한 sli개의 입력 비트들로 이루어진 세트가 상기 입력 비트들(I(i-W) 내지 Ii)로부터 선택되고,
    상기 입력 비트 Ii와 상기 s-박스 sbi의 출력 비트 사이의 관계가 선형인 것을 특징으로 하는 암호 프로세스.
  92. 제91항에 있어서,
    상기 W는 2부터 (a-1)까지의 범위 내에 있는 것을 특징으로 하는 암호 프로세스.
  93. 제91항 또는 제92항에 있어서,
    상기 W개의 비트들(I1 내지 Iw)이 W×W 전단사 사상에 대한 입력인 것을 특징으로 하는 암호 프로세스.
  94. 제62항 내지 제88항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 각각에 대하여 대응하는 sl1, sl2 내지 slc개 비트를 선택하는 경우에,
    상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트에서 상기 비트 Ia가 상기 비트 I1은 물론 상기 비트 I(a-1)과도 연속적이 되어 상기 입력 비트들(I1, I2 내지 Ia)은 서큘러 집합이 되고, 상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia의)로 이루어진 세트는 비트들로 이루어진 윈도우들(w1 내지 wd)의 세트를 포함하고(d는 3부터 (c/3)까지의 범위 내에 있음),
    각 윈도우는 앞쪽 및 뒤쪽 윈도우 경계를 가지며 각 경계는 원시 s-박스 연 산들 sbi와 sb(i+1) 사이에서 동일한 방향으로 한 비트씩 이동하고,
    상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트에서 상기 비트 Ob가 상기 비트 O1은 물론 상기 비트 O(b-1)과도 연속적이 되어 상기 출력 비트들(O1, O2 내지 Ob)은 서큘러 집합이 되고,
    상기 sb1 내지 sbc로 이루어진 세트에서의 각 원시 s-박스 연산 sbk에 대하여,
    상기 원시 s-박스 연산 sbk로 입력되는 상기 입력 비트들은 윈도우 wk를 제외하고 입력 비트들로 이루어진 적어도 두 개의 윈도우들 각각으로부터 적어도 하나의 비트를 포함하는 것을 특징으로 하는 암호 프로세스.
  95. 제94항에 있어서,
    상기 각 원시 s-박스 연산 sbi에 대하여, 상기 윈도우들(w1 내지 wd) 중 적어도 두 개가 상이한 사이즈인 것을 특징으로 하는 암호 프로세스.
  96. 제62항 내지 제88항 중 어느 한 항에 있어서,
    상기 입력 비트들로 이루어진 세트들(s1, s2 내지 sc) 각각에 대응하는 sl1, sl2 내지 slc개 입력 비트를 선택하는 경우에,
    상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트에서 상기 비트 Ia가 상기 비트 I1은 물론 상기 비트 I(a-1)과도 연속적이 되어 상기 입력 비트들(I1, I2 내지 Ia)은 서큘러 집합이 되고, 상기 연속적으로 넘버링된 입력 비트들(I1, I2 내지 Ia)로 이루어진 세트는 입력 비트들로 이루어진 연속적인 윈도우들(w1 내지 wd)로 이루어진 세트를 포함하고(d는 2부터 (a/3)까지의 범위 내에 있음),
    상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트에서 상기 비트 Ob가 상기 비트 O1은 물론 상기 비트 O(b-1)과도 연속적이 되어 상기 출력 비트들(O1, O2 내지 Ob)은 서큘러 집합이 되고,
    상기 연속적으로 넘버링된 출력 비트들(O1, O2 내지 Ob)로 이루어진 세트는 출력 비트들로 이루어진 연속적인 윈도우들(w1 내지 wd)로 이루어진 세트를 포함하고,
    상기 sb1 내지 sbc 원시 s-박스 연산들의 각 연산 s-박스 sbk에 대하여,
    상기 출력 비트들로 이루어진 윈도우 wk는 상기 원시 s-박스 sbk의 출력 비트를 포함하고,
    상기 원시 s-박스 sbk로 입력되는 상기 입력 비트들은 윈도우 wk를 제외하고 입력 비트들로 이루어진 적어도 두 개의 윈도우들 각각으로부터의 적어도 하나의 비트를 포함하는 것을 특징으로 하는 암호 프로세스.
KR1020077009201A 2004-09-24 2005-09-20 대입 박스들 KR20070093963A (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
AU2004905507 2004-09-24
AU2004905507A AU2004905507A0 (en) 2004-09-24 Substitution boxes
AU2004906543A AU2004906543A0 (en) 2004-11-16 Substitution boxes
AU2004906543 2004-11-16
AU2004907361A AU2004907361A0 (en) 2004-12-30 Substitution boxes
AU2004907361 2004-12-30
AU2004907374 2004-12-31
AU2004907374A AU2004907374A0 (en) 2004-12-31 Substitution boxes
AU2005902136A AU2005902136A0 (en) 2005-04-29 Substitution Boxes
AU2005902136 2005-04-29

Publications (1)

Publication Number Publication Date
KR20070093963A true KR20070093963A (ko) 2007-09-19

Family

ID=36090387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077009201A KR20070093963A (ko) 2004-09-24 2005-09-20 대입 박스들

Country Status (9)

Country Link
US (1) US20090055458A1 (ko)
EP (1) EP1820295B1 (ko)
JP (1) JP2008514975A (ko)
KR (1) KR20070093963A (ko)
AT (1) ATE400936T1 (ko)
DE (1) DE602005008101D1 (ko)
MY (1) MY142397A (ko)
TW (1) TW200637316A (ko)
WO (1) WO2006033013A2 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2897451A1 (fr) * 2006-02-13 2007-08-17 France Telecom Dispositif et procede de cryptographie pour generer des nombres pseudo-aletoires
DE102006011223A1 (de) * 2006-03-10 2007-09-13 Micronas Gmbh Datenverarbeitungsverfahren mit einem Verschlüsselungsalgorithmus
WO2007129197A1 (en) * 2006-05-04 2007-11-15 Synaptic Laboratories Limited Cryptographic apparatus and process
US20090245510A1 (en) * 2008-03-25 2009-10-01 Mathieu Ciet Block cipher with security intrinsic aspects
US8862893B2 (en) * 2008-06-11 2014-10-14 Microsoft Corporation Techniques for performing symmetric cryptography
KR101646705B1 (ko) * 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
US8948376B2 (en) * 2010-05-11 2015-02-03 Ca, Inc. Format-preserving encryption via rotating block encryption
US8495038B2 (en) 2010-08-17 2013-07-23 Fujitsu Limited Validating sensor data represented by characteristic functions
US9002781B2 (en) 2010-08-17 2015-04-07 Fujitsu Limited Annotating environmental data represented by characteristic functions
US8572146B2 (en) 2010-08-17 2013-10-29 Fujitsu Limited Comparing data samples represented by characteristic functions
US8583718B2 (en) 2010-08-17 2013-11-12 Fujitsu Limited Comparing boolean functions representing sensor data
US8645108B2 (en) 2010-08-17 2014-02-04 Fujitsu Limited Annotating binary decision diagrams representing sensor data
US8874607B2 (en) 2010-08-17 2014-10-28 Fujitsu Limited Representing sensor data as binary decision diagrams
US8930394B2 (en) 2010-08-17 2015-01-06 Fujitsu Limited Querying sensor data stored as binary decision diagrams
US9138143B2 (en) 2010-08-17 2015-09-22 Fujitsu Limited Annotating medical data represented by characteristic functions
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
US8909592B2 (en) 2011-09-23 2014-12-09 Fujitsu Limited Combining medical binary decision diagrams to determine data correlations
US8812943B2 (en) 2011-09-23 2014-08-19 Fujitsu Limited Detecting data corruption in medical binary decision diagrams using hashing techniques
US9176819B2 (en) 2011-09-23 2015-11-03 Fujitsu Limited Detecting sensor malfunctions using compression analysis of binary decision diagrams
US9177247B2 (en) 2011-09-23 2015-11-03 Fujitsu Limited Partitioning medical binary decision diagrams for analysis optimization
US8719214B2 (en) 2011-09-23 2014-05-06 Fujitsu Limited Combining medical binary decision diagrams for analysis optimization
US8838523B2 (en) 2011-09-23 2014-09-16 Fujitsu Limited Compression threshold analysis of binary decision diagrams
US9075908B2 (en) 2011-09-23 2015-07-07 Fujitsu Limited Partitioning medical binary decision diagrams for size optimization
US8620854B2 (en) 2011-09-23 2013-12-31 Fujitsu Limited Annotating medical binary decision diagrams with health state information
US8781995B2 (en) 2011-09-23 2014-07-15 Fujitsu Limited Range queries in binary decision diagrams
US9235697B2 (en) 2012-03-05 2016-01-12 Biogy, Inc. One-time passcodes with asymmetric keys
EA021803B1 (ru) * 2012-04-25 2015-09-30 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" (Оао "Инфотекс") Способ шифрования данных для вычислительных платформ с simd-архитектурой
WO2014013680A1 (ja) * 2012-07-18 2014-01-23 日本電気株式会社 ユニバーサルハッシュ関数演算装置、方法およびプログラム
RU2666281C2 (ru) * 2013-05-01 2018-09-06 Конинклейке Филипс Н.В. Электронное устройство блочного шифрования, подходящее для обфускации
US10403173B2 (en) * 2013-08-13 2019-09-03 Fiske Software, Llc NADO cryptography using one-way functions
JP6354172B2 (ja) 2014-01-20 2018-07-11 富士通株式会社 半導体集積回路及び認証システム
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
JP7296609B2 (ja) * 2017-11-14 2023-06-23 地方独立行政法人東京都立産業技術研究センター デジタル処理装置、デジタル処理装置の製造方法及びプログラム
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
JP3389210B2 (ja) * 1999-08-31 2003-03-24 松下電器産業株式会社 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
KR100377175B1 (ko) * 2000-06-08 2003-03-26 주식회사 하이닉스반도체 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
KR100889465B1 (ko) * 2000-07-04 2009-03-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호들을 위한 치환-박스

Also Published As

Publication number Publication date
JP2008514975A (ja) 2008-05-08
WO2006033013A3 (en) 2006-06-15
EP1820295A2 (en) 2007-08-22
US20090055458A1 (en) 2009-02-26
EP1820295B1 (en) 2008-07-09
MY142397A (en) 2010-11-30
TW200637316A (en) 2006-10-16
ATE400936T1 (de) 2008-07-15
DE602005008101D1 (de) 2008-08-21
WO2006033013A2 (en) 2006-03-30

Similar Documents

Publication Publication Date Title
KR20070093963A (ko) 대입 박스들
Gaj et al. FPGA and ASIC implementations of AES
Standaert et al. Efficient implementation of Rijndael encryption in reconfigurable hardware: Improvements and design tradeoffs
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
Tillich et al. High-speed hardware implementations of blake, blue midnight wish, cubehash, echo, fugue, grøstl, hamsi, jh, keccak, luffa, shabal, shavite-3, simd, and skein
Standaert et al. A methodology to implement block ciphers in reconfigurable hardware and its application to fast and compact AES RIJNDAEL
Klimov Applications of T-functions in Cryptography
TW201918926A (zh) 用於自位元混合器建構安全雜湊函數之方法
JPWO2009122464A1 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Aragona et al. The group generated by the round functions of a GOST-like cipher
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Saha et al. Symmetric random function generator (SRFG): A novel cryptographic primitive for designing fast and robust algorithms
Järvinen Sharing resources between AES and the SHA-3 second round candidates Fugue and Grøstl
Minier et al. Solving a symmetric key cryptographic problem with constraint programming
Gammel et al. The Achterbahn stream cipher
Aragona et al. On weak differential uniformity of vectorial Boolean functions as a cryptographic criterion
Bulygin et al. Study of the invariant coset attack on printcipher: more weak keys with practical key recovery
Abdulwahed Chaos-Based Advanced Encryption Standard
Matsumoto et al. CryptMT3 stream cipher
Noura et al. DKEMA: GPU-based and dynamic key-dependent efficient message authentication algorithm
AU2007100156A4 (en) Substitution Boxes
Deb et al. Study of NLFSR and reasonable security improvement on trivium cipher
Polese STRENGTH EVALUATION OF CRYPTOGRAPHIC PRIMITIVES TO LINEAR, DIFFERENTIAL AND ALGEBRAIC ATTACKS.
Freyre et al. Generation of cryptographically strong key-dependent 8-bit S-boxes
Premananda et al. MEC S-box based PRESENT lightweight cipher for enhanced security and throughput

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid