Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

Hill Cipher는 선택된 평문 공격에 어떻게 취약합니까?

<시간/>

Hill Cipher는 Lester S가 발명한 다중 문자 다중 알파벳 암호입니다. Hill 암호는 평문을 암호문으로 암호화하고 암호문을 평문으로 복호화하는 단계에서 선형 합동 접근 방식과 행렬의 개념을 결합한 코딩 시스템입니다.

Hill Cipher는 암호화 및 복호화에 의한 행렬 곱셈을 돕기 때문에 암호문의 동일한 알파벳으로 평문의 동일한 알파벳 각각을 복원하지 않습니다. 다중알파벳 암호인 Hill Cipher는 처리할 텍스트를 특정 크기의 블록으로 분할하기 때문에 블록 암호로 분류할 수 있습니다.

한 블록의 각 문자는 암호화 및 암호 해독 절차의 다른 문자에 영향을 미치므로 유사한 문자가 유사한 문자에 매핑되지 않습니다.

Hill Cipher는 암호문 파일만 이해함으로써 완료되면 암호 분석가가 해결하기가 매우 복잡한 고전적인 암호 알고리즘에 포함되어 있습니다. 그러나 이 접근 방식은 암호 분석가가 암호문 파일과 평문 파일의 요소를 가지고 있으면 아주 간단하게 해결할 수 있습니다. 이 암호 분석 기술을 알려진 일반 텍스트 공격이라고 합니다.

Hill Cipher의 기초는 행렬 곱셈 기술과 행렬에 대한 역 기술이 필요합니다. Hill Cipher에 필수적인 것은 n이 블록 크기인 행렬 n x n입니다.

이 키가 되는 K 행렬은 역 K-1을 갖는 역행렬이어야 하므로 K-1 행렬이 해독에 사용되는 키이기 때문에 키에는 역행렬이 있어야 합니다.

Hill Cipher의 단계는 다음과 같습니다 -

  • 언덕 암호에서 평문은 같은 크기의 블록으로 나뉩니다.

  • 블록은 블록의 각 문자가 블록의 새 문자 암호화에 제공되도록 한 번에 하나씩 암호화됩니다.

  • 언덕 암호에서 키는 m x m 크기의 정방 행렬이며, 여기서 m은 −

    로 설명되는 키 행렬 K를 호출할 수 있는 경우 블록의 크기를 정의합니다.

    $$\mathrm{K=\begin{bmatrix} K_{11} &K_{12} &K_{1m} \\ K_{21}&K_{22}&K_{2m}\\ K_{31} &K_ {32}&K_{3m}\\ \end{bmatrix}}$$

  • 일반 텍스트 블록에 m개의 문자가 있으면 P1입니다. ,P2 ... Pm, 암호문 블록의 해당 문자는 C1 ,C2 ... Cm 다음 방정식으로 정의됩니다 -

    $$\mathrm{C_{1}=P_{1}\, K_{11}+P_{2}\, K_{12}+P_{3}\, K_{13}\:모드\:26}$ $

    $$\mathrm{C_{2}=P_{1}\, K_{21}+P_{2}\, K_{22}+P_{3}\, K_{23}\:모드\:26}$ $

    $$\mathrm{C_{3}=P_{1}\, K_{31}+P_{2}\, K_{32}+P_{3}\, K_{33}\:모드\:26}$ $

  • 이러한 방정식은 열 행렬의 관점에서 정의할 수 있습니다. -

    $$\mathrm{\begin{pmatrix} C_{1} \\ C_{2} \\ C_{3} \end{pmatrix}=\begin{pmatrix} K_{11} &K_{12} &K_{13} \\ K_{21} &K_{22} &K_{23} \\ K_{31} &K_{32} &K_{33} \\ \end{pmatrix} \begin{pmatrix} P_{1} \\ P_{2} \\ P_{3} \end{pmatrix} \:mod\:26}$$

  • 일반적인 언덕 암호에서 방정식은 다음과 같이 정의할 수 있습니다. -

    $$\mathrm{C\:=\:K\, P\:모드\:26}$$

    $$\mathrm{P\:=\:K^{-1}\, C\:모드\:26}$$

  • Hill Cipher는 알려진 평문 공격으로 간단히 파괴할 수 있습니다. 다음과 같이 길이가 m인 m개의 평문 암호문 쌍을 가질 수 있다고 가정합니다.

    $$\mathrm{C_{i}\, =\, K\, P_{i}\:for\:1\leq i\leq m}$$

  • 알 수 없는 키 행렬 K는 다음과 같이 계산할 수 있습니다. -

    $$\mathrm{K=C_{i}\:P_{i}^{-1}}$$

    그리고 키가 계산되면 쉽게 깨질 수 있습니다.