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

อย่างที่เราทราบกันดีว่า การเข้ารหัสเป็นพื้นฐานของสกุลเงินดิจิทัล ทำให้มั่นใจในความปลอดภัยของทรัพย์สินของเรา และยังเป็นกฎพื้นฐานของการขุด อย่างไรก็ตาม ส่วนใหญ่รู้เรื่องการเข้ารหัสเพียงเล็กน้อย ดังนั้น จึงเป็นเรื่องยากที่จะเข้าใจวิธีการเข้ารหัสของโครงการบล็อกเชน หากไม่เข้าใจ พวกเขาไม่สามารถพูดถึงความเชื่อในโครงการได้และทำได้เพียงติดตามแนวโน้มเพื่อ เก็งกำไรในเหรียญ
เพื่อแก้ปัญหาความสับสนของทุกคน 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"
![ต้นกำเนิดของการเข้ารหัส——จาก [การเข้ารหัสซีซาร์] ถึง [แผ่นเวลาเดียว] ต้นกำเนิดของการเข้ารหัส——จาก [การเข้ารหัสซีซาร์] ถึง [แผ่นเวลาเดียว]](https://img.chaindd.com/uploads/images/2018/12/26/20181226180308711.png)
ด้วยวิธีนี้ เมื่อข้อความรหัสถูกส่งไปยังพันธมิตร พันธมิตรสามารถถอดรหัสข้อมูลโดยการลบการแทนที่ที่สอดคล้องกันตามคำลับที่ตกลงกันไว้ล่วงหน้า
หากข้อความไซเฟอร์ดักฟังได้ ผู้ดักฟังจะพบการกระจายที่ประจบประแจงโดยการนับความถี่ของตัวอักษรที่ใช้
แล้วเขาจะแตกมันได้อย่างไร?
ในความเป็นจริงมันง่ายมาก โปรดจำไว้ว่าแคร็กเกอร์กำลังมองหาการรั่วไหลของข้อมูล นั่นคือการมองหาลายนิ้วมือบางส่วน ตราบเท่าที่มีความแตกต่างของความถี่ของตัวอักษร ก็จะพบการรั่วไหลของข้อมูล ความแตกต่างนี้เกิดจาก โดยการทำซ้ำในไซเฟอร์เท็กซ์
ในตัวอย่างนี้ รหัสผ่านของผู้เผยแพร่ใช้คำซ้ำ เพื่อที่จะทำลายการเข้ารหัส ก่อนอื่นผู้ขโมยต้องกำหนดความยาวของคำที่เลื่อนที่ใช้ ไม่ใช่คำนั้น เขาจำเป็นต้องสร้างสถิติเกี่ยวกับข้อมูลทั้งหมดและตรวจสอบ ความถี่ของช่วงเวลาต่างๆ การกระจาย และเมื่อเขาตรวจสอบการกระจายความถี่ด้วยระยะเวลา 5 ตัวอักษร ลายนิ้วมือก็แสดงให้เห็น
ดังนั้น วิธีการเข้ารหัสนี้ที่ใช้การแทนที่หลายรายการเมื่อเทียบกับวิธีการเข้ารหัสแบบแทนที่เดียวที่ใช้โดย Caesar จึงมีประสิทธิภาพมากกว่าในเวลาที่ใช้ในการกำหนดความยาวของ displacement word ดังนั้น ยิ่ง displacement word ยาวเท่าใด ข้อมูลก็ยิ่งปลอดภัยมากขึ้นเท่านั้น
แม้ว่ารหัสหลายตารางจะปลอดภัยกว่ารหัสซีซาร์มาก แต่ในทางทฤษฎีแล้ว มันสามารถถอดรหัสได้ตราบเท่าที่ต้องใช้เวลา
แผ่นครั้งเดียว
มีวิธีการเข้ารหัสใด ๆ เพื่อรับประกันความปลอดภัยของข้อมูลหรือไม่? คำตอบคือการเข้ารหัสแบบสุ่ม
ลองนึกภาพว่าถ้าตัวเข้ารหัสโยนลูกเต๋า 26 ด้านเพื่อสร้างลำดับที่ยาวของตัวเลขที่เลื่อนแบบสุ่ม แล้วแชร์กับตัวถอดรหัสเพื่อแทนที่คำที่เลื่อน และใช้ลำดับตัวอักษรแบบสุ่มนี้เพื่อเลื่อน ความยาวของลำดับคือ เช่นเดียวกับข้อมูลที่มีความยาวสม่ำเสมอ ซึ่งเป็นสิ่งสำคัญมากในการหลีกเลี่ยงการทำซ้ำ จากนั้นเขาก็ส่งข้อความไซเฟอร์เท็กซ์ไปยังผู้รับ และผู้รับจะใช้คอลัมน์ของตัวเลขแทนที่แบบสุ่มที่เธอมอบให้เพื่อถอดรหัสข้อความ
หากใช้วิธีนี้ ผู้แอบฟังของบุคคลที่สามจะแก้ไขได้ยากมาก ประการแรก การกระจัดจะไม่ตกอยู่ในรูปแบบซ้ำๆ ประการที่สอง ไซเฟอร์เท็กซ์จะมีการแจกแจงความถี่ที่สม่ำเสมอ เนื่องจากไม่มีความแตกต่างของความถี่ ดังนั้น ไม่มีการรั่วไหลของข้อมูล ดังนั้นการถอดรหัสการเข้ารหัสโดยทั่วไปจึงเป็นไปไม่ได้
นี่เป็นวิธีการเข้ารหัสที่แข็งแกร่งที่สุด ซึ่งปรากฏในปลายศตวรรษที่ 19 และปัจจุบันเรียกว่าแพดแบบใช้ครั้งเดียว
ฉันจะเปิดเผยให้คุณทราบเกี่ยวกับวิธีสร้างแผ่นครั้งเดียวในบทความถัดไป โปรดติดตาม



