Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Polyalphabetic Substitution Cipher ในการรักษาความปลอดภัยข้อมูลคืออะไร?


เลขฐานสิบสองตัวอักษรคือตัวเลขใดๆ ที่อิงจากการแทนที่ โดยใช้ตัวอักษรแทนที่หลายตัว ในรหัสการแทนที่ polyalphabetic ตัวอักษรข้อความธรรมดาจะถูกเข้ารหัสต่างกันไปตามการติดตั้งในข้อความ แทนที่จะเป็นจดหมายโต้ตอบแบบตัวต่อตัว มีความสัมพันธ์แบบหนึ่งต่อกลุ่มระหว่างจดหมายแต่ละฉบับกับการแทนที่ด้วย

ตัวอย่างเช่น 'a' สามารถเข้ารหัสเป็น 'd' ที่จุดเริ่มต้นของข้อความ แต่เป็น 'n' ที่ตรงกลาง การเข้ารหัสแบบหลายตัวอักษรมีประโยชน์ในการซ่อนความถี่ตัวอักษรของภาษาพื้นฐาน ดังนั้นผู้โจมตีจึงไม่สามารถใช้ความถี่ตัวอักษรแต่ละตัวแบบคงที่เพื่อแบ่งข้อความเข้ารหัสได้

รหัส Polyalphabetic ตัวแรกคือรหัส Alberti ซึ่งเปิดตัวโดย Leon Battista Alberti ในปี ค.ศ. 1467 ใช้ตัวอักษรสุ่มเพื่อเข้ารหัสข้อความธรรมดา แต่ที่จุดต่าง ๆ และสามารถเปลี่ยนเป็นตัวอักษรผสมต่าง ๆ แสดงถึงการเปลี่ยนแปลงด้วยตัวพิมพ์ใหญ่ ตัวอักษรในข้อความรหัส

สามารถใช้รหัสลับนี้ได้ Alberti ใช้แผ่นรหัสเพื่อแสดงว่าตัวอักษรธรรมดาเชื่อมโยงกับตัวอักษรข้อความรหัสอย่างไร ในรหัสนี้ อักขระข้อความเข้ารหัสแต่ละตัวจะขึ้นอยู่กับทั้งอักขระข้อความธรรมดาที่สอดคล้องกันและตำแหน่งของอักขระข้อความธรรมดาในข้อความ

ตามชื่อ polyalphabetic แนะนำสิ่งนี้ทำได้โดยใช้หลายปุ่มแทนที่จะเป็นเพียงปุ่มเดียว ซึ่งหมายความว่าคีย์ควรเป็นสตรีมของคีย์ย่อย ซึ่งแต่ละคีย์ย่อยจะขึ้นอยู่กับตำแหน่งของอักขระข้อความธรรมดาที่ต้องการคีย์ย่อยสำหรับการเข้ารหัส

กล่าวอีกนัยหนึ่ง จำเป็นต้องมี s คีย์สตรีม k =(K1 , K2 , K3 ...) ซึ่ง Ki ใช้เพื่อเข้ารหัสอักขระ ith ในข้อความธรรมดาเพื่อให้ i th อักขระในข้อความเข้ารหัส อัลกอริธึมดังกล่าวเป็นที่รู้จักกันดีที่สุดและเรียบง่ายที่สุดถูกกำหนดให้เป็นรหัส Vigenere

รหัส Vigenere เป็นหนึ่งในอัลกอริธึมที่ง่ายและเป็นที่นิยมในการเข้ารหัสแบบหลายตัวอักษร ในแนวทางนี้ ข้อความที่เป็นตัวอักษรจะถูกเข้ารหัสโดยใช้ลำดับของรหัสซีซาร์หลายตัวตามตัวอักษรของคำหลัก

รหัสของซีซาร์คืนค่าตัวอักษรแต่ละตัวในข้อความธรรมดาโดยให้ตัวอักษรยืนอยู่ในตำแหน่งคงที่ทางด้านขวาของตัวอักษร กะนี้ใช้โมดูโล 26 ตัวอย่างเช่น ในรหัสซีซาร์ของกะ 3, A สามารถกลายเป็น D, B สามารถกลายเป็น E เป็นต้น

รหัส Vigenère ประกอบด้วยรหัสตัวเลขการแทนที่อย่างง่ายหลายตัวตามลำดับโดยมีค่ากะหลายค่า ในรหัสนี้ คีย์เวิร์ดจะถูกทำซ้ำก่อนที่จะเชื่อมต่อกับระยะเวลาของข้อความธรรมดา

การเข้ารหัสจะดำเนินการโดยไปที่แถวในตารางที่สัมพันธ์กับคีย์ และค้นหาส่วนหัวของคอลัมน์ที่มีตัวอักษรที่เกี่ยวข้องกันของอักขระข้อความธรรมดา ตัวอักษรที่จุดตัดของแถวและคอลัมน์ที่สอดคล้องกันของ Vigenere Square จะสร้างอักขระไซเฟอร์เท็กซ์ ข้อความธรรมดาที่เหลือจะถูกเข้ารหัสด้วยวิธีที่คล้ายกัน