파이스텔 암호

Feistel cipher

암호학에서 Feistel 암호(Luby-Rackoff 블록 암호라고도 함)는 블록 암호 구축에 사용되는 대칭 구조이며, 독일 태생의 물리학자이자 암호학자인 Horst Feistel의 이름을 따서 명명되었으며, 일반적으로 Feistel 네트워크라고도 합니다.US Data Encryption Standard, 소련/러시아 GOST 및 최신 BlowfishTwofish 암호 등 많은 블록 암호들이 이 방식을 사용합니다.Feistel 암호에서 암호화와 복호화는 매우 유사한 동작으로, 둘 다 "라운드 함수"라고 불리는 함수를 일정 횟수 반복 실행하는 것으로 구성됩니다.

역사

현대의 많은 대칭 블록 암호는 Feistel 네트워크를 기반으로 합니다.Feistel 네트워크는 1973년 Horst Feistel과 Don Coppersmith가 설계한 IBM의 Lucifer 암호에서 처음 상용화되었습니다.Feistel 네트워크는 1976년 미국 연방정부가 DES(루시퍼에 기반한 암호로 NSA에 의해 변경된 것)를 채택했을 때 명성을 얻었다.DES의 다른 컴포넌트와 마찬가지로 Feistel 구조의 반복적인 특성으로 인해 하드웨어(특히 DES 설계 당시 사용 가능한 하드웨어)에서의 암호 시스템 구현이 쉬워집니다.

설계.

Feistel 네트워크는 둥근 함수를 사용합니다. 함수는 데이터 블록과 서브키라는 두 가지 입력을 받아 데이터 [1]블록과 동일한 크기의 출력을 반환합니다.각 라운드마다 암호화해야 할 데이터의 절반에 대해 라운드 함수를 실행하고, 그 출력은 나머지 절반의 데이터와 XOR화한다.이것은 일정 횟수 반복되며 최종 출력은 암호화된 데이터입니다.대체-변환 네트워크 등의 다른 암호 설계에 비해 Feistel 네트워크의 중요한 장점은 라운드 함수 자체가 반전되지 않더라도 동작 전체가 반전(암호화된 데이터를 복호화할 수 있음)이 보장된다는 것입니다.반올림 함수는 [2]: 465 반전할 수 있도록 설계할 필요가 없기 때문에 임의로 복잡하게 만들 수 있습니다.[3]: 347 게다가 암호화 조작과 복호화 조작은 매우 유사하며, 경우에 따라서는 동일하기 때문에, 스케줄을 되돌리기만 하면 됩니다.따라서 이러한 암호를 구현하기 위해 필요한 코드 또는 회로의 크기가 거의 절반으로 줄어듭니다.

이론적인 작업

Feistel 암호의 구조와 특성은 암호학자들에 의해 광범위하게 분석되어 왔다.

마이클 Luby와 찰스 Rackoff고 라운드 함수는 암호로 안전한 의사 난수의 기능과 기성용은 종자로 사용하면 4라운드는" 강한"의사 난수의 순열을 만들기에 충분한 그러고 나면 3라운드나 블록 암호화는 의사 난수의 순열을 만들기에 충분이 판명된 Feistel 암호화 건설 분석했다. (즉,[4] 역순열에 대한 오라클 액세스 권한을 가진 상대에게도 의사 난수가 유지됩니다.)Luby와 Rackoff의 매우 중요한 결과 때문에 Feistel 암호는 Luby-Rackoff 블록 암호로 불리기도 합니다.

추가적인 이론적 작업은 구조를 어느 정도 일반화하고 보안을 [5][6]위한 보다 정확한 한계를 부여했습니다.

시공내역

Feistel cipher diagram en.svg

라운드 함수, K_ \ 각각 라운드 ,(\ 0의 서브 키로 합니다.

다음으로 기본 조작은 다음과 같습니다.

텍스트블록을 ( L \ L _ { } 、 0 \ _ { } )의 2개의 동일한 조각으로 분할합니다.

i , , , \ i , 1 , } , compute

여기서 XOR을 의미합니다.다음으로 암호문은 (n +, n + (},1})입니다

암호문 n +, n + 복호화는 i - i의 연산에 의해 이루어집니다.

으로( , 0) { ( _ { 0 , R _ { } )는 다시 보통 텍스트가 됩니다.

이 그림은 암호화와 복호화 모두를 나타내고 있습니다.복호화 서브키 순서의 역순서에 주의해 주세요.암호화와 복호화의 차이는 이것뿐입니다.

언밸런스 페이스텔 암호

언밸런스 페이스텔 암호는 L 0 길이가 [7]같지 않은 된 구조를 사용합니다.Skipjack 암호는 이러한 암호의 예입니다.Texas Instruments 디지털시그니처 트랜스폰더는 독자적인 언밸런스 Feistel 암호를 사용하여 챌린지-응답 인증을 수행합니다.[8]

Thorp shuffle은 한쪽이 단일 비트인 불균형한 Feistel 암호의 극단적인 경우입니다.이는 균형 잡힌 Feistel 암호보다 입증 가능한 보안이 뛰어나지만 더 많은 [9]라운드가 필요합니다.

기타 용도

Feistel 구조는 블록 암호 이외의 암호화 알고리즘에도 사용됩니다.예를 들어 Optimal Asymmetric Encryption Padding(OAEP) 방식에서는 단순한 Feistel 네트워크를 사용하여 특정 비대칭암호화 방식에서 암호문을 랜덤화합니다.

일반화된 Feistel 알고리즘을 사용하여 2의 거듭제곱이 아닌 작은 도메인에서 강력한 순열을 생성할 수 있습니다(형식 유지 암호화 [9]참조).

설계 컴포넌트로서의 Feistel 네트워크

암호 전체가 Feistel 암호인지 여부에 관계없이 Feistel 유사 네트워크는 암호 설계의 구성요소로 사용할 수 있습니다.예를 들어 MISTY1은 라운드 함수에서 3라운드 Feistel 네트워크를 사용하는 Feistel 암호, Skipjack은 G 치환에서 Feistel 네트워크를 사용하는 수정 Feistel 암호, Threefish(Skin의 일부)는 Feistel 유사 혼합 함수를 사용하는 비 Feistel 블록 암호입니다.

파이스텔 암호 목록

Feistel 또는 수정된 Feistel:

일반 Feistel:

「 」를 참조해 주세요.

레퍼런스

  1. ^ Menezes, Alfred J.; Oorschot, Paul C. van; Vanstone, Scott A. (2001). Handbook of Applied Cryptography (Fifth ed.). p. 251. ISBN 978-0849385230.
  2. ^ Schneier, Bruce (1996). Applied Cryptography. New York: John Wiley & Sons. ISBN 0-471-12845-7.
  3. ^ Stinson, Douglas R. (1995). Cryptography: Theory and Practice. Boca Raton: CRC Press. ISBN 0-8493-8521-0.
  4. ^ 를 클릭합니다Luby, Michael; Rackoff, Charles (April 1988), "How to Construct Pseudorandom Permutations from Pseudorandom Functions", SIAM Journal on Computing, 17 (2): 373–386, doi:10.1137/0217022, ISSN 0097-5397.
  5. ^ Patarin, Jacques (October 2003), Boneh, Dan (ed.), "Luby–Rackoff: 7 Rounds Are Enough for 2n(1−ε) Security" (PDF), Advances in Cryptology—CRYPTO 2003, Lecture Notes in Computer Science, 2729: 513–529, doi:10.1007/b11817, ISBN 978-3-540-40674-7, S2CID 20273458, retrieved 2009-07-27
  6. ^ Zheng, Yuliang; Matsumoto, Tsutomu; Imai, Hideki (1989-08-20). On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. Advances in Cryptology — CRYPTO' 89 Proceedings. Lecture Notes in Computer Science. Vol. 435. pp. 461–480. doi:10.1007/0-387-34805-0_42. ISBN 978-0-387-97317-3.
  7. ^ Schneier, Bruce; Kelsey, John (1996-02-21). Unbalanced Feistel networks and block cipher design. Fast Software Encryption. Lecture Notes in Computer Science. Vol. 1039. pp. 121–144. doi:10.1007/3-540-60865-6_49. ISBN 978-3-540-60865-3. Retrieved 2017-11-21.
  8. ^ Bono, Stephen; Green, Matthew; Stubblefield, Adam; Juels, Ari; Rubin, Aviel; Szydlo, Michael (2005-08-05). "Security Analysis of a Cryptographically-Enabled RFID Device" (PDF). Proceedings of the USENIX Security Symposium. Retrieved 2017-11-21.
  9. ^ a b Morris, Ben; Rogaway, Phillip; Stegers, Till (2009). How to Encipher Messages on a Small Domain (PDF). Advances in Cryptology – CRYPTO 2009. Lecture Notes in Computer Science. Vol. 5677. pp. 286–302. doi:10.1007/978-3-642-03356-8_17. ISBN 978-3-642-03355-1. Retrieved 2017-11-21.