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

อัลกอริทึมการเข้ารหัส Blowfish คืออะไร?


อัลกอริธึมการเข้ารหัส Blowfish เป็นรหัสบล็อกสมมาตรที่ออกแบบมาเพื่อบรรลุในอัลกอริธึม DES ที่ช้าและไม่แน่นอน ปักเป้าเป็นรหัสบล็อกเข้ารหัสแบบสมมาตรที่มีคีย์ซึ่งคิดค้นโดย Bruce Schneier ในปี 1993 และอยู่ในโดเมนสาธารณะ

การเข้ารหัสแบบสมมาตรใช้คีย์การเข้ารหัสส่วนบุคคลเพื่อเข้ารหัสและถอดรหัสข้อมูล ข้อมูลที่ละเอียดอ่อนและคีย์การเข้ารหัสแบบสมมาตรจะใช้ภายในอัลกอริธึมการเข้ารหัสเพื่อเปลี่ยนข้อมูลที่ละเอียดอ่อนเป็นข้อความเข้ารหัส ปักเป้ามีอยู่ในชุดรหัสและผลิตภัณฑ์เข้ารหัสจำนวนมาก เช่น SplashID

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

ปักเป้ายังเป็นหนึ่งในรหัสบล็อกที่เร็วที่สุดในการใช้งานสาธารณะ เหมาะอย่างยิ่งสำหรับผลิตภัณฑ์เช่น SplashID ที่ทำงานบนโปรเซสเซอร์ที่หลากหลายที่พบในโทรศัพท์มือถือและในคอมพิวเตอร์โน้ตบุ๊กและเดสก์ท็อป

ปักเป้ามีขนาดบล็อก 64 บิตและความยาวของคีย์อยู่ที่ใดก็ได้ตั้งแต่ 32 บิตถึง 448 บิต มันเป็นรหัส Feistel 16 รอบและต้องการกล่อง S ที่ขึ้นกับคีย์ขนาดใหญ่ เหมือนกับในโครงสร้างของ CAST-128 ซึ่งต้องมี S-box แบบตายตัว

อัลกอริธึม Blowfish เป็นหนึ่งในอัลกอริธึมที่ได้รับความนิยมมากที่สุด แต่จำเป็นต้องมีพลังในการคำนวณที่จำเป็นพร้อมองค์ประกอบบางอย่างที่ทำให้พวกเขาตกเป็นเหยื่อผู้โจมตีจำนวนมากเกินไป สามารถลดขนาดของ "s-box" ลงได้ ดังนั้นการออกแบบและใช้งานบนโครงข่ายประสาทเทียม (NN)

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

ปักเป้าใช้รูปแบบเฉพาะของการสร้างคีย์ องค์ประกอบที่สองของรูทีน Blowfish คือการขยายคีย์ที่แปลงคีย์เดียวได้ถึง 448 บิตเป็นตารางคีย์ย่อยที่มีขนาด 4168 ไบต์ การสร้างคีย์ย่อยช่วยเพิ่มความปลอดภัย เนื่องจากแฮ็กเกอร์จะต้องถอดรหัสมากกว่าคีย์ดั้งเดิมเท่านั้น

ความทนทานของอัลกอริธึมปักเป้าขึ้นอยู่กับการสร้างคีย์ย่อยและการออกแบบความสับสนและการแพร่กระจายพื้นฐาน ปักเป้าเป็นระบบรหัสหลักสมมาตรขึ้นอยู่กับเครือข่าย Feistel

Bruce Schneider แนะนำอัลกอริทึม เป็นรหัสขนาดบล็อก 64 บิต และเวอร์ชันสมบูรณ์ต้องใช้เวลา 16 รอบในการกรอกรหัสบล็อกและใช้คีย์ย่อยจำนวนมาก คีย์ความยาวผันแปรได้ตั้งแต่ 32 บิตถึง 448 บิต