바이클리크 공격
Biclique attack바이클리크 공격은 암호 분석의 MITM(Meet-in-the-Middle) 방식의 변형입니다.MITM 공격에 의해 공격될 가능성이 있는 라운드의 수를 늘리기 위해 바이클릭 구조를 사용합니다.바이클리크 암호 분석은 MITM 공격을 기반으로 하기 때문에 블록 암호와 (반복) 해시 함수 모두에 적용할 수 있습니다.바이클리크 공격은 완전한[1] AES와 완전한 [2]IDEA를 모두 파괴한 것으로 알려져 있지만, 무차별적인 공격보다 약간 우위에 있을 뿐입니다.또한 Skin-512 및 SHA-2 해시 [3]함수의 KASUMI 암호 및 프리이미지 저항에도 적용되고 있습니다.
이 양면 공격은 여전히(2019년 4월[update] 현재) AES에 대한 가장 널리 알려진 단일 키 공격이다.공격의 계산 복잡도는 1 21 7 2}) 2입니다. AES128, AES192 및 AES256의 경우 각각이것은 AES에 대해 공식적으로 알려진 유일한 단일 키 공격이며 전체 [1]라운드를 공격합니다.이전 공격에서는 축소된 원형 변형(일반적으로 7 또는 8 라운드로 감소)을 공격했습니다.
공격의 계산 복잡도는 2 1({ 21이므로 이론적인 공격이며, 이는 AES의 보안이 깨지지 않았으며 AES의 사용은 비교적 안전한 상태를 유지하고 있음을 의미합니다.그럼에도 불구하고 바이클리 공격은 흥미로운 공격이며 블록 암호에 대한 암호 해독을 수행하기 위한 새로운 접근 방식을 제안합니다.이 공격은 또한 AES에 대한 더 많은 정보를 제공했는데, AES에 사용된 라운드의 안전성에 의문을 제기했기 때문이다.
역사
최초의 MITM 공격은 1977년 Diffie와 Hellman이 [4]DES의 암호학적 특성에 대해 논의했을 때 처음 제안되었습니다.키 사이즈가 너무 작아서 다른 키를 사용하여 DES를 여러 번 재적용하는 것이 키 사이즈의 해결책이 될 수 있다고 주장했습니다.다만, MITM 공격(MITM 공격을 더블 DES에 적용하여 보안을 )에서 할 수 있기 때문에, 적어도 더블 DES를 사용하지 말아 주세요). 2에서 2 56 2으로 변경합니다.플레인 텍스트와 암호 텍스트가 있는 경우 첫 번째 및 두 번째 DES 암호화를 독립적으로 브루트 포스할 수 있기 때문입니다.
Diffie 및 Hellman이 MITM 공격을 제안한 이후 기본적인 MITM 공격을 적용할 수 없는 상황에서 유용한 다양한 종류가 등장했습니다.바이클리 공격 변종은 Dmitry Khovratovich, Rechberger 및 Savelieva가 해시 함수 암호 해독에 [5]사용하기 위해 처음 제안했습니다.그러나 Bogdanov, Khovratovich, Rechberger는 AES에 대한 공격을 발표하면서 블록 암호 해독을 포함한 비밀키 설정에 바이클릭 개념을 적용하는 방법을 보여주었다.그 이전에는 AES와 다른 많은 블록 암호에 대한 MITM 공격은 거의 주목을 받지 못했습니다.이는 주로 AES와 같은 많은 최신 키 일정으로는 달성하기 어려운 사항인 MITM 공격을 용이하게 하기 위해 두 개의 'MITM 서브 암호' 사이에 독립된 키 비트가 필요했기 때문입니다.
양각선
양면 구조의 일반적인 설명은 양면 구조의 문서를 참조하십시오.
MITM 공격에서는 첫 번째 서브암호 및 두 번째 서브암호기에 속하는 K_과 는 독립적이어야 합니다.즉, 서로 독립적이어야 합니다.그렇지 않으면 플레인 텍스트와 암호 텍스트의 일치 중간값을 MITM 공격에서 독립적으로 계산할 수 없습니다.(MITM 공격에는 다양한 종류가 있습니다.여기서 블록은 공유 키비트를 가질 수 있습니다.3 서브셋의 MITM 공격을 참조해 주세요).공격받은 암호의 확산으로 인해 이 속성은 많은 라운드에 걸쳐 이용하기 어렵습니다.
간단히 말하면:더 많은 라운드를 공격할수록, 더 큰 서브사이퍼를 갖게 될 것이다.서브시퍼가 클수록 서브시퍼 간의 독립된 키비트는 적어집니다.물론 각 서브시퍼의 실제 독립 키 비트 수는 키 스케줄의 확산 특성에 따라 달라집니다.
바이클리크는 예를 들어 MITM 공격을 사용하여 AES의 7라운드를 공격할 수 있도록 한 후 길이 3의 바이클리 구조(즉, 암호의 3라운드를 커버)를 이용하여 7라운드의 시작부터 마지막 라운드의 종료까지의 중간 상태를 매핑할 수 있습니다(예: 10(AES THU128).는 기본 MITM 공격으로는 그 정도의 라운드를 공격할 수 없는 경우에도 암호의 전체 라운드를 공격합니다.
따라서 바이클라이프의 의미는 MITM 공격 종료 시 중간값을 마지막 암호문에 매핑할 수 있는 구조를 효율적으로 구축하는 것입니다.중간 상태가 마지막에 매핑되는 암호문은 물론 암호화에 사용되는 키에 따라 달라집니다.상태를 바이클리크로 암호문에 매핑하기 위해 사용하는 키는 MITM 공격의 첫 번째 서브사이퍼와 두 번째 서브사이퍼로 강제된 키비트를 기반으로 합니다.
따라서 바이클리크 공격의 본질은 MITM 공격 외에도 K_ 에 따라 특정 중간 상태를 대응하는 암호 텍스트에 매핑할 수 있는 바이클리크 구조를 효과적으로 구축할 수 있는 것입니다.
바이클라이프 작성 방법
브루트포스
상태2개와 를 가져와서 그 사이에 매핑되는 키를 계산합니다각 중간 상태를 모든 암호 텍스트에 링크해야 하므로 여기에는 의 복구(\distermediate 2개 합니다.
(이 방법은 Bogdanov, Khovratovich 및 Rechberger의 논문: Biclique Cryptanalysis of the Full[1] AES에서 제안되었습니다.)
예비:
바이클라이프의 기능은 과 같이 키K [ K에 따라 중간값 S를 암호문 C(\ C에 매핑하는 것입니다.
순서:
순서 1: 0 K [ ,] \ S{ 0 }、 C 、 \ S _ 0 _ { 0} 、 ( , ) {\ an an an an {\ {\ {\ {\ ( 0 , 0 , 0)o 서f는 지정된 키를 사용하여 중간 상태를 암호문에 매핑하는 함수입니다이를 기본 계산으로 나타냅니다.
순서 2: 2 2의 관련 키 세트가 2개 선택됩니다.키는 다음과 같이 선택됩니다.
- 첫 번째 키 세트는 기본 계산과 관련하여f {\ f에 대한 다음 차분 요건을 충족하는 키입니다. K i { \ 0 { \ x [ { } { \ _ { } { i } } \ _ { }
- 두 번째 키 세트는 기본 계산과 하여 f f \ _}{\에 다음 차분 조건을 충족하는 키입니다
- 키는 i \ _ { {\ {\ {\ {\ j \ \ { j } differentialsialsialsialsialsialsials의 트레일이 독립적이 되도록 선택됩니다.즉, 액티브한 비선형 컴포넌트를 공유하지 않습니다.
즉, 다음과 같습니다.
An input difference of 0 should map to an output difference of under a key difference of . All differences are in respect to the base computation.
입력차이j \ \ _ { j} an diffe diffe under under under under under under under JK \ style \ { }^{ K a a under under under under under under under under under under under0에 매핑됩니다.모든 차이는 기본연산에 관한 것입니다.
순서 3:트레일은 비선형 구성요소(예: S박스)를 공유하지 않으므로 트레일을 결합하여 다음을 얻을 수 있습니다.
i i j f j K j f i K ⊕ j K ⊕ j j j Kj j 、 \ 0 { \ \ { 、 \ { i { i }
이는 2단계에서 나온 두 차이의 정의를 모두 준수합니다.
기본 계산의 태플 0 0 [ ){style (}, 0])도 기본 계산과 관련하여 정의상 양쪽 차분에 적합함을 알 수 있습니다. }, K K를 두 정의 중 하나로 치환하면 00)0이 됩니다. _ 입니다.
즉, 기본 계산의 태플은 결합된 추적에도 XOR할 수 있습니다. 0 K [ , ]⊕ i K J C 0δ 、 i\ S _ \ plus {
순서 4:다음과 같은 것을 알 수 있습니다.
이것을 위의 조합된 차분 트레일로 치환하면, 그 결과는 다음과 같습니다.