보간 공격

Interpolation attack

암호학에서 보간 공격은 블록 암호에 대한 암호 분석 공격의 일종입니다.

블록 암호에 대해 차분 암호 분석과 선형 암호 분석이라는 두 가지 공격이 있은 후, 몇 가지 새로운 블록 암호가 도입되어 차분 및 선형 공격에 대해 안전한 것으로 입증되었습니다.이 중에는 KN-Cipher 및 SHARK 암호와 같은 반복 블록 암호도 있었습니다.하지만, 토마스 야콥슨과 라스 크누센은 1990년대 후반에 보간 공격이라고 불리는 새로운 공격을 도입함으로써 이 암호들이 깨지기 쉽다는 것을 보여주었다.

공격에서는 S박스를 나타내기 위해 대수함수가 사용된다.이것은 단순한 2차 함수일 수도 있고, 갈로아 필드에 대한 다항식 또는 유리 함수일 수도 있습니다.그 계수는 알려진 평문을 데이터 포인트로 사용하는 표준 라그랑주 보간 기법에 의해 결정될 수 있다.또는 선택한 평문을 사용하여 방정식을 단순화하고 공격을 최적화할 수 있습니다.

가장 간단한 버전에서 보간 공격은 암호문을 평문의 다항식으로 표현합니다.다항식이 상대적으로 낮은 수의 미지 계수를 가지면 평문/암호문(p/c) 쌍 집합을 사용하여 다항식을 재구성할 수 있습니다.다항식이 재구성되면 공격자는 암호키를 정확하게 알지 못한 채 암호화를 나타냅니다.

보간 공격은 비밀키를 회복하기 위해서도 사용할 수 있습니다.

예를 들어 그 방법을 설명하는 것이 가장 쉽다.

반복된 암호는 다음과 같이 지정한다.

서 c 0 보통 텍스트, })는 출력, i 비밀키({displaystyleith에서 키입니다.r-round 반복 의 경우 c\r}이 암호 텍스트입니다.

2라운드 암호를 검토합니다. x 메시지를 c c 암호문을 나타냅니다.

그러면 1라운드의 출력은

2라운드의 출력은

암호문을 평문 산출량의 다항식으로 표현합니다.

서 i는 주요 의존 상수입니다.

p () { p의 알 수 없는 계수 수만큼 평문/암호 쌍을 사용하여 다항식을 구성할 수 있습니다.예를 들어, 이는 라그랑주 보간법을 통해 수행될 수 있습니다(라그랑주 다항식 참조).알 수 없는 계수가 결정되면 K K를 인식하지 않고 암호화 p { p 나타냅니다.

존재.

m 비트블록 암호를 고려하면 2 플레인텍스트가 , 2 개별 p p 쌍이 있습니다.p { n { p 알 수 없는 계수가 있다고 가정합니다.다항식의 알 수 없는 계수 만큼 p p 쌍이 필요하기 때문에 보간 공격은 n { n 2인 경우에만 존재합니다.

시간의 복잡성

pp쌍을 하여 p 작성하는 시간은 필요한 평문을 암호화하는 시간과 비교하여 짧다고 가정합니다.p( ) { p )} { p( x )}에 알 수 없는 계수가 있다고 가정합니다.이 공격의 시간 n{ n개의 알려진 p p/쌍이 합니다.

Meet-In-The-Middle에 의한 보간 공격

대부분의 경우 이 방법이 더 효율적입니다.방법은 다음과 같습니다.

블록 길이 m{m\displaystyle}과 암호의 s로{s\displaystyle}그 다음 z{z\displaystyle} 출력<>r{\displaystyle s<, r}자. r{r\displaystyle}라운드이고 거기에 GGQ암호화를 감안할 때 우리는 선택 평문인데의 다항식으로 z{z\displaystyle}의 값을 표현할 것이다 {\dis x c c의 다항식으로서 (g )[ \ g x ) \ GF ( 2^ { ) [ x{ xz\ 입니다 z z c c 경유로 설정합니다. g {g 라운드까지 암호의 반복식을 사용하여 앞으로 계산하고, 다항식 h { h r { r부터 시작하여 암호의 반복식을 사용하여 역계산하여 구한다.s + { s

그래서 이게 버틸 수 있어야지

gg와 h 모두 가 낮은 다항식이라면 미지의 계수에 대한 방정식을 풀 수 있다.

시간의 복잡성

g { g p{ p, { hq {q}계수로 할 수 가정합니다.그런 다음 방정식으로 방정식을 설정하여 방정식을 해결하려면 p+q \p\ pdisplaystyle p/c\displaystyle p/c가 필요합니다.그러나 이 행렬 방정식은 곱셈과 덧셈까지 풀 수 있다.따라서 0이 아닌 고유한 솔루션을 얻기 위해 최고도에 해당하는 계수를 1로 설정하고 상수항을 0으로 설정합니다. p+ - p 기존 p쌍이 필요합니다.따라서 이 공격의 시간 복잡도는 p+ -({p입니다 +- 2({})의 기존 p합니다.

중간값 맞추기 접근법에서는 일반적으로 정규 방법을 사용하는 것보다 계수의 총 수가 더 작습니다. 필요한 p쌍이 때문에 방법이 더욱 효율적입니다.

키 리커버리

또한 보간 공격을 사용하여 비밀키 K를 복구할 수도 있습니다.

r-round 반복 암호의 마지막 라운드를 삭제하면 암호 출력은y ~ - }= 이 됩니다.이 암호는 축소 암호라고 부릅니다.마지막 라운드 을 추측하여 한 라운드를 복호화하여 축소 암호의 y 얻는 것이 목적입니다.그런 다음 일반 방식 또는 Meet-In-The-Middle 방식으로 축소 암호에 대한 보간 공격을 사용합니다.방법은 다음과 같습니다.

통상적인 방법으로는 축소 암호의 y{ 의 다항식으로 나타냅니다.p ( ) G ( m)[ \ p ( )\ GF ( ^ { )[ ] . p( )를 호출합니다.n 계수를 사용한 다음 pn개 {\ p 사용하여 다항식을 구성할 수 있습니다.마지막 라운드 키의 추측을 확인하려면 p표시 p 페어가 값을 유지하고 있는지 확인합니다.

그렇다면 마지막 라운드 키의 추측이 맞았을 가능성이 높습니다.그렇지 않은 경우 키를 다시 추측합니다.

그 Meet-In-The-Middle 방법으로 우리 한판 s의 r도){\displaystyle)}의 다항식과 축소한 암호화 출력 y일{\displaystyle{\tilde{y}의 다항식}로}.()){g\displaystyle은 다항식 g전화해 출력 z{z\displaystyle}{\displaystyle s<, r}표현한다.())} hy ~)({ h는 각각 p p q(\ q 계수로 합니다. 다음q + - q + 되는p쌍으로 계수를 구할 수 있습니다.마지막 라운드 키의 추측을 확인하려면 p표시 p 페어가 값을 유지하고 있는지 확인합니다.

그렇다면 마지막 라운드 키의 추측이 맞았을 가능성이 높습니다.그렇지 않은 경우 키를 다시 추측합니다.

올바른 마지막 라운드 키를 찾으면 나머지 라운드 키에서도 동일한 방식으로 계속할 수 있습니다.

시간의 복잡성

m m 길이의 비밀 라운드 키를 하면 2m(\ 2의 다른 키가 있습니다.랜덤으로 선택한 경우 각각 1/ 1입니다.따라서 우리는 평균적으로 1/ m 1/ 2 추측을 정확한 키를 찾을 수 있습니다.

따라서 일반 방법에는 + 1 1)의 시간 가 평균 1)이므로n + 1 기존 c /(\ c 쌍이 하며 Meet-In-The-Middle 방법은 평균 시간 +q - 1 )입니다 +q - \ p + -1 \ c/ \ displaystyle c / } 이미 알려져 있습니다.

실제 응용 프로그램

Met-in-the-middle 공격은 M\style - bit 에서는 S: ( ) - 1= x m - { \ S : f ( x )= x^ { - 1 m - } F - } with with with with with with with with with with with with with,,,,,,,,,,, 、 S : f ( x : f ( x : f ( x : f ( x : f ( x : f ( x : f ( x 1 ) ( x 1 ) x thex in

블록 암호 SHARK는 S :( ) -1 { x)= x^{- 의 SP 네트워크를 사용합니다.이 암호는 소수의 라운드 후에 차분 및 선형 암호해석에 대해 내성이 있습니다.그러나 1996년 토마스 야콥센과 라스 크누센이 보간 공격을 통해 이를 깼다.SHARK(, ,)는 블록크기가m인 SHARK ( n , m )버전을 나타냅니다 SHARK ( n , r )는 r \ r 에서n \m \ msS박스를 합니다.Jakobsen과 Knudsen은 약 평문을 하여SHARK () (64비트 블록 암호)에 대한 보간 공격과약 61비트 (에 대한 보간 공격이 있음을 발견했다.(\ 2 일반 텍스트 선택

또한 토마스 야콥센은 리드-솔로몬 코드의 디코딩을 개선하기 위해 마두 수단의 알고리즘을 이용한 보간 공격의 확률론적 버전을 도입했다.이 공격은 일반 텍스트와 암호 텍스트 간의 대수적 관계가 값의 극히 일부에 불과할 때에도 작동할 수 있습니다.

  • Thomas Jakobsen, Lars Knudsen (January 1997). The Interpolation Attack on Block Ciphers (PDF/PostScript). 4th International Workshop on Fast Software Encryption (FSE '97), LNCS 1267. Haifa: Springer-Verlag. pp. 28–40. Retrieved 2007-07-03.
  • Thomas Jakobsen (August 25, 1998). Cryptanalysis of Block Ciphers with Probabilistic Non-linear Relations of Low Degree (PDF/PostScript). Advances in Cryptology — CRYPTO '98. Santa Barbara, California: Springer-Verlag. pp. 212–222. Retrieved 2007-07-06. (Google 비디오 프레젠테이션 비디오—플래시 사용)
  • Shiho Moriai; Takeshi Shimoyama; Toshinobu Kaneko (March 1999). Interpolation Attacks of the Block Cipher: SNAKE (PDF). FSE '99. Rome: Springer-Verlag. pp. 275–289. Retrieved 2007-09-16.[영구 데드링크]
  • Amr M. Youssef; Guang Gong (April 2000). On the Interpolation Attacks on Block Ciphers (PDF). FSE 2000. New York City: Springer-Verlag. pp. 109–120. Retrieved 2007-07-06.
  • Kaoru Kurosawa; Tetsu Iwata; Viet Duong Quang (August 2000). Root Finding Interpolation Attack (PDF/PostScript). Proceedings of the 7th Annual International Workshop on Selected Areas in Cryptography (SAC 2000). Waterloo, Ontario: Springer-Verlag. pp. 303–314. Retrieved 2007-07-06.