Computer >> Máy Tính >  >> Lập trình >> Lập trình

Làm thế nào mà một Hill Cipher lại dễ bị tấn công bởi một cuộc tấn công đã chọn?

Hill Cipher là một mật mã đa pha đa bản tin được phát minh bởi Lester S. Mật mã Hill là một hệ thống mã hóa bằng cách kết hợp khái niệm ma trận với cách tiếp cận của đồng dư tuyến tính trong giai đoạn mã hóa một bản rõ thành một bản mã và giải mã một bản mã thành một bản rõ.

Hill Cipher không khôi phục từng bảng chữ cái giống nhau trong bản rõ với cùng một bảng chữ cái trong bản mã vì nó giúp nhân ma trận bằng cách mã hóa và giải mã. Hill Cipher là mật mã đa pha có thể được phân loại là mật mã khối vì văn bản được xử lý sẽ được chia thành các khối có kích thước cụ thể.

Mỗi ký tự trong một khối sẽ ảnh hưởng đến các ký tự khác trong quy trình mã hóa và giải mã để ký tự tương tự không được ánh xạ với ký tự tương tự.

Hill Cipher được chứa trong các thuật toán mật mã cổ điển mà các nhà phân tích mật mã rất phức tạp để giải quyết nếu hoàn thành chỉ bằng cách hiểu tệp bản mã. Tuy nhiên, cách tiếp cận này có thể được giải quyết khá đơn giản nếu người phá mã có tệp bản mã và một phần tử của tệp bản rõ. Kỹ thuật phân tích mật mã này được gọi là một cuộc tấn công bản rõ đã biết.

Cơ sở của Mật mã Hill cần các kỹ thuật nhân ma trận và kỹ thuật nghịch đảo cho ma trận. Điều cần thiết đối với Hill Cipher là ma trận n x n với n là kích thước khối.

Ma trận K trở thành khóa này phải là ma trận khả nghịch, có K-1 khả nghịch, do đó khóa phải có nghịch đảo vì ma trận K-1 là khóa được sử dụng để giải mã.

Các giai đoạn của Hill Cipher như sau -

  • Trong mật mã đồi, bản rõ được chia thành các khối có cùng kích thước.

  • Các khối được mã hóa lần lượt sao cho mỗi ký tự trong khối cung cấp khả năng mã hóa các ký tự mới trong khối.

  • Trong mật mã đồi, khóa là một ma trận vuông có kích thước m x ​​m trong đó m xác định kích thước của khối nếu nó có thể gọi là ma trận khóa K, được mô tả là -

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

  • Nếu có m ký tự trong các khối văn bản rõ thì đó là P 1 , P 2 … Pm, các ký tự tương ứng trong các khối bản mã là C 1 , C 2 … C m sẽ được xác định bởi các phương trình sau -

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

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

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

  • Các phương trình này có thể được xác định theo ma trận cột -

    $$ \ 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} $$

  • Trong mật mã đồi tổng quát, các phương trình có thể được định nghĩa là -

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

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

  • Hill Cipher có thể bị phá hủy đơn giản bằng một cuộc tấn công bằng bản rõ đã biết. Giả sử rằng nó có thể có m cặp mã hóa bản rõ có độ dài m sao cho

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

  • Ma trận khóa không xác định K có thể được tính là -

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

    Và một khi khóa được tính toán, nó có thể dễ dàng bị phá vỡ.