Hill Cipher คือรหัสตัวเลขหลายตัวอักษรที่คิดค้นโดย Lester S. Hill cipher เป็นระบบการเข้ารหัสโดยการรวมแนวคิดของเมทริกซ์เข้ากับแนวทางของความสอดคล้องเชิงเส้นในระยะของการเข้ารหัสข้อความธรรมดาเป็นข้อความเข้ารหัสและถอดรหัสข้อความลับให้เป็นข้อความธรรมดา
Hill Cipher ไม่ได้กู้คืนตัวอักษรเดียวกันแต่ละตัวในข้อความธรรมดาด้วยตัวอักษรเดียวกันในข้อความเข้ารหัส เนื่องจากช่วยการคูณเมทริกซ์ด้วยการเข้ารหัสและถอดรหัส Hill Cipher ซึ่งเป็นรหัสลับแบบหลายตัวอักษรสามารถจัดประเภทเป็นรหัสบล็อกได้ เนื่องจากข้อความที่จะจัดการจะถูกแบ่งออกเป็นบล็อกที่มีขนาดเฉพาะ
อักขระแต่ละตัวในบล็อกเดียวจะส่งผลต่ออักขระอื่นๆ ในขั้นตอนการเข้ารหัสและถอดรหัส เพื่อไม่ให้อักขระที่คล้ายคลึงกันถูกแมปกับอักขระที่คล้ายคลึงกัน
Hill Cipher มีอยู่ในอัลกอริธึมการเข้ารหัสแบบคลาสสิกซึ่ง cryptanalysts นั้นซับซ้อนมากในการแก้ปัญหาหากเสร็จสิ้นโดยการทำความเข้าใจไฟล์ ciphertext เท่านั้น อย่างไรก็ตาม วิธีการนี้สามารถแก้ไขได้ค่อนข้างง่าย หากโปรแกรมเข้ารหัสลับมีไฟล์ข้อความเข้ารหัสและองค์ประกอบของไฟล์ข้อความธรรมดา เทคนิคการเข้ารหัสนี้เรียกว่าการโจมตีแบบข้อความธรรมดาที่ทราบ
พื้นฐานของ Hill Cipher ต้องการเทคนิคการคูณเมทริกซ์และเทคนิคผกผันสำหรับเมทริกซ์ สิ่งสำคัญสำหรับ Hill Cipher คือเมทริกซ์ n x n โดย n คือขนาดบล็อก
เมทริกซ์ K ที่กลายเป็นคีย์นี้ควรเป็นเมทริกซ์แบบกลับด้าน ซึ่งมี K-1 ผกผัน ดังนั้นคีย์ควรมีอินเวอร์สเนื่องจากเมทริกซ์ K-1 เป็นคีย์ที่ใช้ในการถอดรหัส
ขั้นตอนของ Hill Cipher มีดังนี้ -
-
ในรูปแบบ Hill Cipher ข้อความธรรมดาจะแบ่งออกเป็นบล็อคที่มีขนาดเท่ากัน
-
บล็อกจะถูกเข้ารหัสทีละตัวเพื่อให้อักขระแต่ละตัวในบล็อกมีการเข้ารหัสอักขระใหม่ในบล็อก
-
ในการเข้ารหัสแบบ 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 … น อักขระที่เกี่ยวข้องในบล็อกข้อความเข้ารหัสคือ C1 ,C2 … Cm จะถูกกำหนดโดยสมการต่อไปนี้ -
$$\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}$ $
-
สมการเหล่านี้สามารถกำหนดได้ในรูปของเมทริกซ์คอลัมน์ -
$$\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\:mod\:26}$$
$$\mathrm{P\:=\:K^{-1}\, C\:mod\:26}$$
-
Hill Cipher สามารถถูกทำลายได้ง่ายๆ ด้วยการโจมตีแบบข้อความธรรมดาที่เป็นที่รู้จัก สมมติว่ามันสามารถมีข้อความธรรมดา ciphertext คู่แต่ละความยาว m เช่นนั้น
$$\mathrm{C_{i}\, =\, K\, P_{i}\:for\:1\leq i\leq m}$$
-
เมทริกซ์คีย์ที่ไม่รู้จัก K สามารถคำนวณได้เป็น −
$$\mathrm{K=C_{i}\:P_{i}^{-1}}$$
และเมื่อคำนวณคีย์แล้ว ก็หักได้ง่าย