BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

ต้นกำเนิดของการเข้ารหัส——จาก [การเข้ารหัสซีซาร์] ถึง [แผ่นเวลาเดียว]

猎豹区块链安全
特邀专栏作者
2018-12-27 13:49
บทความนี้มีประมาณ 1806 คำ การอ่านทั้งหมดใช้เวลาประมาณ 3 นาที
"คุณต้องรู้กฎของเกมจึงจะเล่นได้ดีกว่าใคร - อัลเบิร์ต ไอน์สไตน์"
สรุปโดย AI
ขยาย
"คุณต้องรู้กฎของเกมจึงจะเล่นได้ดีกว่าใคร - อัลเบิร์ต ไอน์สไตน์"


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

เพื่อแก้ปัญหาความสับสนของทุกคน Cheetah Blockchain จะจัดทำชุดบทความการเข้ารหัส โดยเริ่มจากวิธีการเข้ารหัสที่เก่าแก่ที่สุด และลงลึกเพื่อช่วยให้คุณเข้าใจแนวคิดมากมายเกี่ยวกับการเข้ารหัสและตัดสินความปลอดภัยของโครงการบล็อคเชน

การเข้ารหัสซีซาร์

ตัวเลขที่รู้จักกันดีตัวแรกคือ Caesar cipher ถูกใช้โดย Julius Caesar เมื่อประมาณ 58 ปีก่อนคริสตกาล ในคำสั่งทางทหารของเขา Caesar เปลี่ยนตัวอักษรทุกตัวเพื่อป้องกันไม่ให้ศัตรูของเขาสกัดกั้นคำสั่งทางทหารของ Caesar และได้รับข้อมูลที่แท้จริงของเขาโดยตรง

การเข้ารหัสแบบ Caesar เป็นวิธีการเข้ารหัสที่ง่ายที่สุด ทั้งสองด้านของการเข้ารหัสต้องได้ข้อสรุปร่วมกันเกี่ยวกับหมายเลขแทนที่ของจดหมาย ตัวอย่างเช่น หมายเลขแทนที่เข้ารหัสที่เราตกลงกันคือ 3 จากนั้น จดหมายทุกฉบับที่ฉันส่งจะต้องผ่านการแทนที่ 3 ครั้ง . (A กลายเป็น D, B กลายเป็น E, C กลายเป็น F...)

สมมติว่าข้อความธรรมดาของฉันคือ "โจมตี" หลังจากเข้ารหัสซีซาร์ด้วยการแทนที่ 3 มันจะกลายเป็น "dwwtfn"

จากนั้นส่งข้อความที่เข้ารหัสไปยังอีกฝ่ายผ่านทาง Messenger ด้วยวิธีนี้ แม้ว่าศัตรูจะจับตัว Messenger ได้ พวกเขาจะได้รับข้อความที่เข้าใจยากจำนวนมาก ได้โดยการลบ 3 ออกจากตัวอักษรแต่ละตัว และกระบวนการนี้เรียกว่าการถอดรหัส

การเข้ารหัสแบบ Caesar เป็นวิธีการเข้ารหัสที่เก่าแก่ที่สุดและถูกใช้โดยนายพลทหารตะวันตกมาเป็นเวลาหลายร้อยปี ในที่สุด หลังจาก 800 ปี นักคณิตศาสตร์ชาวอาหรับชื่อ AI-Kindi ได้ถอดรหัสรหัสซีซาร์:

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

ดังนั้น ตราบใดที่เราพบตัวอักษรที่ใช้บ่อยที่สุดในข้อความเข้ารหัสและเปรียบเทียบกับตัวอักษร e เราจะพบการแทนที่ที่เข้ารหัสของการเข้ารหัสซีซาร์ ตัวอย่างเช่น ในข้อความเข้ารหัส ตัวอักษรที่ใช้บ่อยที่สุดคือ h ดังนั้น เราสามารถสรุปได้ว่าการกระจัดที่เข้ารหัสคือ 3 ด้วยการกระจัดที่เข้ารหัส ข้อความธรรมดาทั้งหมดสามารถอนุมานได้

วิธีนี้เรียกว่าการวิเคราะห์ความถี่ และลักษณะที่ปรากฏนั้นส่งผลกระทบต่อความปลอดภัยของรหัสซีซาร์เป็นอย่างมาก

อย่างไรก็ตาม รหัสผ่านที่รัดกุมสามารถปกปิดลายนิ้วมือนี้ได้ และวิธีปกปิดลายนิ้วมือคือการกระจายความถี่ของการใช้ตัวอักษรให้เท่ากัน

รหัสผ่านหลายตาราง

ประมาณศตวรรษที่ 15 มีคนเสนอการเข้ารหัสแบบหลายตารางเพื่อให้บรรลุวัตถุประสงค์นี้ ข้อแตกต่าง ระหว่างการเข้ารหัสแบบหลายตารางและการเข้ารหัสแบบซีซาร์คือไม่ใช้ตัวเลขเดียวในการเข้ารหัส displacement แต่หมายถึง displacement word

ขั้นตอนแรกในวิธีการเข้ารหัสนี้คือการกำหนดคำแทนที่ โดยสมมติว่าเป็น "โลก" จากนั้นแปลงคำเป็นตัวเลขตามตำแหน่งของคำในตัวอักษร "โลก" → "21, 15, 18 , 12, 4" จากนั้น ลำดับของตัวเลขนี้จะถูกทำซ้ำในกระบวนการเข้ารหัสข้อมูล และข้อมูลข้อความธรรมดาจะถูกเลื่อนไปตามลำดับของตัวเลขนี้

สมมติว่าข้อความธรรมดาคือ "abcde fghij" และข้อความเข้ารหัสที่เข้ารหัสคือ "vrvqj bwavo"

ต้นกำเนิดของการเข้ารหัส——จาก [การเข้ารหัสซีซาร์] ถึง [แผ่นเวลาเดียว]

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

หากข้อความไซเฟอร์ดักฟังได้ ผู้ดักฟังจะพบการกระจายที่ประจบประแจงโดยการนับความถี่ของตัวอักษรที่ใช้

แล้วเขาจะแตกมันได้อย่างไร?

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

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

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

แม้ว่ารหัสหลายตารางจะปลอดภัยกว่ารหัสซีซาร์มาก แต่ในทางทฤษฎีแล้ว มันสามารถถอดรหัสได้ตราบเท่าที่ต้องใช้เวลา

แผ่นครั้งเดียว

มีวิธีการเข้ารหัสใด ๆ เพื่อรับประกันความปลอดภัยของข้อมูลหรือไม่? คำตอบคือการเข้ารหัสแบบสุ่ม

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

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

นี่เป็นวิธีการเข้ารหัสที่แข็งแกร่งที่สุด ซึ่งปรากฏในปลายศตวรรษที่ 19 และปัจจุบันเรียกว่าแพดแบบใช้ครั้งเดียว

ฉันจะเปิดเผยให้คุณทราบเกี่ยวกับวิธีสร้างแผ่นครั้งเดียวในบทความถัดไป โปรดติดตาม

ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
空头猎人
คลังบทความของผู้เขียน
猎豹区块链安全
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android