바이클리크 공격
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:다음과 같은 것을 알 수 있습니다.
이것을 위의 조합된 차분 트레일로 치환하면, 그 결과는 다음과 같습니다.
위의 정의와 동일한 것은 앞서 언급한 바이클라이프입니다.
따라서 첫 번째 키 세트의 모든 키(\d})와 두 번째 키 세트의 키(\ 2})를 조합할 수 있기 때문에 크기 2})의 바이클라이크를 작성할 수 있습니다.즉 의 바이클라이프를 작성할 수 있는 것은 의 차분 }) 및 _의 입니다. _ j > { i + > ) all all 、 키 [ , j](i, j> \ K [ i, ])도 바이클릭으로 바뀝니다.
이렇게 해서 AES에 대한 선두적인 바이클릭 공격에서 바이클릭이 구축됩니다.이 기술로 바이리크를 구성하는 데는 몇 가지 실질적인 제한이 있습니다.바이클라이프가 길수록 차등 트레일이 더 많은 라운드를 커버해야 합니다.암호의 확산 특성은 따라서 바이클라이크 구성의 효율성에 중요한 역할을 합니다.
바이클라이프를 구성하는 다른 방법
Bogdanov, Khovratovich 및 Rechberger는 또한 "Biclique Cryptanalysis of the Full[1] AES"라는 기사에서 'Interleaving Related-Key Differential Trails'라고 불리는 바이클리크를 구성하는 또 다른 방법을 설명합니다.
바이클리크 암호 분석 절차
순서 1:공격자는 한 모든 키를 의키 서브셋으로 그룹화합니다.여기서 그룹 내의 키는 d × 의 매트릭스 2d의 K [2 2로 인덱싱됩니다.공격자는 일반 MITM 공격과 마찬가지로 를f\와 g g g \ E \ g )의 2개의 서브 암호로 분할합니다.각 서브사이퍼의 키 세트는 2로 K및 K라고 .서브사이퍼의 조합 키는 전술한 K[로 표현됩니다.
순서 2:공격자는 의 2 의 각 그룹에 대해 바이클라이프를 작성합니다.의 2를 사용하여 의}개의 내부 상태 j를의2d개의 암호 에 때문에의 dimension-d입니다."쌍곡선 작성 방법" 절에서는 "독립 관련 키 차이"를 사용하여 쌍곡선을 작성하는 방법을 제안합니다.이 경우 바이클릭은 서브사이퍼에 속하는 키K [ , 0] { [ i , 0] 및 [ , K [ 0 , j displaystyle K [ 0 , }의 차분을 사용하여 작성됩니다.
순서 3:공격자는 의암호문(을 취득하여 복호화 오라클에 하는\displaystyle P_을 하도록 요구합니다.
순서 4:공격자는 내부 상태 와 대응하는 Pi(\i를 선택하고 내부 상태 및 플레인텍스트에서 공격함으로써 f f g(\ g에 대해 통상적인 MITM 공격을 수행합니다.
순서 5: j{\j} {\P_ 에 하는 키 후보가 발견되면 해당 키는 다른 플레인/암호 텍스트 쌍으로 테스트됩니다.키가 다른 쪽 쌍으로 확인되면 키가 올바른 키일 가능성이 높습니다.
공격 예시
다음 예시는 문서 "Biclique Cryptanalysis of the Full[1] AES"의 AES에 대한 이중 공격에 기초하고 있습니다.
이 예의 설명에서는 공격 작성자가 사용한 것과 같은 용어(변수명 등)를 사용하고 있습니다.
간단하게 하기 위해서, 다음에 설명하는 것은 AES128 배리언트에 대한 공격입니다.
공격은 7라운드의 MITM 공격과 마지막 3라운드를 커버하는 바이클리크로 구성됩니다.
키 파티셔닝
키 공간은 의 112 2 키 그룹으로 되며 각 그룹은 의 16 2 키로 됩니다.
의 2 그룹 각각에 대해서, 베이스 계산용의 일의의 베이스 K K가 선택됩니다.
base-key에는 다음 표에 나타나듯이2개의 특정 바이트가0으로 설정되어 있습니다(이것은 AES128의 4x4 매트릭스에서 AES와 같은 방법으로 키를 나타냅니다).
그 후 키의 나머지 14바이트(112비트)가 열거됩니다.이를 통해 각 키 그룹에1개씩 2개의 2개의 고유한 기본 키가 됩니다.
그룹의 일반적인 의 16 2 키는 기본 키에 따라 선택됩니다.기본 키와 거의 동일하도록 선택됩니다.다음 4바이트 중 2바이트(i또는 j만 다릅니다.
이로써 2 및 2가 됩니다.에 의해, 의 16 2의 다른 키 가 됩니다기본 키
바이클리시공
112 2 바이클릭은 "쌍곡선 구성 방법" 섹션에 설명된 대로 "독립 관련 키 차등" 기술을 사용하여 구성됩니다.
이 기법을 사용하기 위한 요건은 결합해야 하는 전진 및 후진 미분 궤적이 활성 비선형 요소를 공유하지 않는다는 것이었다.이것이 사실이라는 것을 어떻게 알 수 있을까요?
스텝 1의 키가 기본 키에 대해 선택되는 방법 때문에[ ,0](\style[ , 0 ]) 를 사용하는 차등트레일은 박스(AES에서 컴포넌트)를 공유하지 않습니다 \ \ _ { i }키 [ 0 , ] { K [ 0 ,]}을 (를) 사용하여 차분 트레일을 XOR하고 바이클라이프를 생성할 수 있습니다
MITM 공격
바이클리크가 생성되면 MITM 공격이 거의 시작될 수 있습니다.MITM 공격을 실행하기 전에 플레인텍스트로부터의 2
화살표
암호문으로부터의 2 :
j
단, 대응하는 중간 상태와 K[ i, K [ i , 0 [ 0, K [ , j ]{ displaystyle K [ , j는 사전에 계산되어 저장됩니다.
이것으로 MITM 공격을 실행할 수 있게 되었습니다.K [ , { [ i , j] vi \ } { \ x [} { } { } ,,, , in in in in in in in of of of of of of of of of of of of of of of of of of of → [ K [i , , 0→ K [ ][ i ][ i , 0 ][ i ] p p p p [ i ]로 변화하고 있습니다.i}}{}} j]→ {\i}{\j]}}{\}}}}}{\x}}}}{\xrightarrow[i의 후방 디스플레이.S}}.표시.J.J.S.평판이 나다})에서 로의 전송 연산의 경우, 3(재계산의 필요량에 대한 자세한 설명은 이 예에서 인용한 "Biclique Crypt Analysis of full[1] AES"에서 확인할 수 있습니다).
중간값이 일치하면 와 }) 의 키 Kj가 검출됩니다.다음으로 키와 후보는 다른 플레인/암호문 쌍으로 테스트됩니다.
결과.
이 공격은 AES128의 계산 복잡성을 2126. 2로 낮춥니다.이는 브루트포스 접근법보다 3~5배 빠른 속도입니다.공격의 데이터 복잡도는 2 메모리 복잡도는 2입니다 .
레퍼런스
- ^ a b c d e f Bogdanov, Andrey; Khovratovich, Dmitry; Rechberger, Christian. "Biclique Cryptanalysis of the Full AES" (PDF). Archived from the original (PDF) on 2012-06-14.
- ^ "Narrow-Bicliques: Cryptanalysis of Full IDEA". 2012: 392–410. CiteSeerX 10.1.1.352.9346.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ 프리이미지용 바이클릭:Skin-512 및 SHA-2 패밀리에 대한 공격
- ^ Diffie, Whitfield; Hellman, Martin E. "Exhaustive Cryptanalysis of the NBS Data Encryption Standard" (PDF).
- ^ Khovratovich, Dmitry; Rechberger, Christian; Savelieva, Alexandra. "Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 family" (PDF).