หลักการเข้ารหัสลับสมัยใหม่
การเข้ารหัสมีบทบาทสำคัญมากในเทคโนโลยีบล็อกเชน แต่จริงๆ แล้ว เทคโนโลยีการเข้ารหัสจำนวนมากยังถูกนำมาใช้ในอินเทอร์เน็ต บทความนี้จะแนะนำวิธีการเข้ารหัสในยุคแรกๆ ในการเข้ารหัสสมัยใหม่ ซึ่งจะช่วยให้เราเข้าใจอัลกอริทึมที่ซับซ้อนในบล็อกเชน
หลังสงครามโลกครั้งที่ 2 อินเทอร์เน็ตซึ่งพัฒนามาจากการทหารได้เข้าสู่บ้านของคนทั่วไปอย่างช้า ๆ เราสามารถประมวลผลทุกอย่างด้วยระบบอิเล็กทรอนิกส์และธุรกรรมก็ไม่มีข้อยกเว้น ธนาคารอิเล็กทรอนิกส์จึงปรากฏขึ้น และธุรกรรมทั้งหมดสามารถดำเนินการผ่านเครือข่ายที่ดำเนินการได้ . ด้วยจำนวนผู้ใช้อินเทอร์เน็ตที่เพิ่มขึ้น ปัญหาใหม่ ๆ ก็เกิดขึ้น การเข้ารหัสต้องการให้ทั้งสองฝ่ายแบ่งปันหมายเลขสุ่มลับซึ่งเป็นรหัสลับ อย่างไรก็ตาม คนสองคนที่ไม่เคยพบหน้ากันจะตกลงเกี่ยวกับรหัสที่ใช้ร่วมกันนี้ได้อย่างไร รู้เกี่ยวกับการตรวจสอบบุคคลที่สามหรือไม่ นี่จะเป็นเป้าหมายของการเข้ารหัสสมัยใหม่
ในปี 1976 Whitfield และ Martin Hermann คิดวิธีแก้ปัญหาที่แยบยล เราจะใช้อุปลักษณ์ของสีเพื่ออธิบายว่าเคล็ดลับนี้บรรลุผลสำเร็จได้อย่างไร:
ก่อนอื่น เพื่อชี้แจงเป้าหมายของเรา ผู้ส่งและผู้รับตกลงเกี่ยวกับสีที่เป็นความลับโดยไม่แจ้งให้ผู้ดักฟังทราบ ดังนั้นจึงจำเป็นต้องนำเทคนิคมาใช้ ซึ่งขึ้นอยู่กับสองประเด็น:
1. ง่ายต่อการผสมสองสีเพื่อให้ได้สีที่สาม
ประการที่สอง หลังจากได้สีผสมนี้แล้ว มันเป็นเรื่องยากมากที่จะทราบสีดั้งเดิมบนพื้นฐานนี้นี่คือวิธีการทำงานของล็อค
ไปทางเดียวว่าง่าย ไปอีกทางยาก ซึ่งเรียกว่าฟังก์ชันทางเดียว วิธีแก้ไขคือ ขั้นแรกให้พวกเขายอมรับสีบางสีอย่างเปิดเผย สมมติว่าเป็นสีเหลือง จากนั้นผู้ส่งและผู้รับสุ่มเลือกสีส่วนตัวของตน ผสมให้เป็นสีเหลืองสาธารณะ จึงปิดบังสีส่วนตัว และผสมสีจะถูกส่งไปยังผู้รับ , ผู้รับรู้สีส่วนตัวของตัวเอง , และส่งสีผสมไปยังผู้ส่ง ,
แล้วมีกุญแจไขคือคนส่งและคนรับใส่สีส่วนตัวของตัวเองลงในสีที่คนอื่นผสมแล้วจะได้สีลับที่ใช้ร่วมกัน ณ เวลานี้ผู้ดักฟังไม่สามารถระบุสีนี้ได้ เธอต้องมี private สี กำหนดสีได้ เคล็ดลับเป็นแบบนี้ในโลกของวิทยาการเข้ารหัสลับชื่อระดับแรก
ปัญหาการทำงานไม่ต่อเนื่อง
เราต้องการกระบวนการทางตัวเลขที่ง่ายในทิศทางเดียวและยากในทิศทางตรงกันข้าม ดังนั้นนักเข้ารหัสจึงพบเลขคณิตแบบโมดูโล นั่นคือ ฟังก์ชันของการนำเศษเหลือ (เช่น เศษที่เหลือของ 46 หารด้วย 12 ได้ 10)
สมมติว่าเราพิจารณาใช้จำนวนเฉพาะเป็นแบบจำลอง เช่น 17 เราจะพบรากดั้งเดิมของ 17 ในที่นี้คือ 3 ซึ่งมีคุณสมบัติสำคัญดังต่อไปนี้ เมื่อนำกำลังต่างกัน ผลลัพธ์จะกระจายเท่าๆ กันบนนาฬิกา 3 เป็นตัวสร้าง นำ 3 ยกกำลัง X ผลลัพธ์จะปรากฏเท่าๆ กันบนจำนวนเต็มใดๆ ระหว่าง 0 ถึง 17
แต่กระบวนการตรงข้ามทำได้ยาก เช่น ให้ 12 ต้องใช้กำลังของ 3 เท่าไหร่ นี่เรียกว่าโจทย์ลอการิทึมไม่ต่อเนื่อง วิธีนี้ เรามีฟังก์ชันทางเดียว คำนวณง่าย ๆ ในทิศทางเดียว แต่ มันง่ายที่จะคำนวณในทิศทางตรงกันข้าม มันยากมาก เนื่องจากรู้ว่ามี 12 เราจึงทำได้เพียงลองผิดลองถูกเพื่อหาจำนวนเฉพาะที่ตรงกัน

ชื่อระดับแรก
การแลกเปลี่ยนคีย์ Diffie Hellman
วิธีแก้ไขคือ ขั้นแรก ผู้ส่งและผู้รับเปิดเผยโมดูลัสเฉพาะและตัวกำเนิด ซึ่งในกรณีนี้คือ 17 และ 3 จากนั้นผู้ส่งเลือกหมายเลขสุ่มส่วนตัว เช่น 15 และคำนวณ 315 mod 17 (ผลลัพธ์คือ 6 ) แล้วส่งผลลัพธ์นี้ต่อสาธารณะให้ผู้รับ จากนั้นผู้รับเลือกหมายเลขสุ่มส่วนตัวของเขาเอง เช่น 13 คำนวณ 313mod 17 (ผลลัพธ์คือ 12) จากนั้นจึงส่งผลนี้ให้อีกฝ่ายทราบแบบสาธารณะ
คีย์คือการนำผลลัพธ์สาธารณะของผู้รับไปใช้อำนาจของหมายเลขส่วนตัวของเธอเพื่อรับคีย์ที่ใช้ร่วมกัน ในที่นี้คือ 10 และผู้รับนำผลลัพธ์สาธารณะของผู้ส่งไปใช้พลังของหมายเลขส่วนตัวของเธอเพื่อรับคีย์ที่ใช้ร่วมกันเดียวกัน คีย์อาจ ไม่ใช่ทุกคนที่เข้าใจดี แต่จริงๆแล้วพวกเขาดำเนินการเหมือนกัน
พิจารณาผู้ส่ง เธอได้รับ 12 จากผู้รับ จาก 313 mod 17 ดังนั้นการคำนวณของเธอคือ 3∧13∧15 mod 17 และผู้รับ เขาได้รับ 6 จากผู้ส่ง จาก 315 mod 17 ดังนั้นการคำนวณของเขาจึงเป็นจริง 3∧15∧13mod17 ผลลัพธ์ของการคำนวณทั้งสองเหมือนกัน แต่ลำดับของเลขยกกำลังต่างกัน ถ้าลำดับของเลขชี้กำลังถูกเปลี่ยน ผลลัพธ์จะไม่เปลี่ยนแปลง ผลลัพธ์ของทั้งสองคือ 3 จะถูกนำไปที่ พลังของหมายเลขส่วนตัวของคนสองคน หากไม่มีหมายเลขส่วนตัวเหล่านี้ 15 หรือ 13 บุคคลที่สามจะไม่สามารถคิดผลลัพธ์ได้
บุคคลที่สามจะติดอยู่ในปัญหาลอการิทึมที่ไม่ต่อเนื่องและในทางปฏิบัติเมื่อตัวเลขมีมากพอในทางปฏิบัติแทบจะเป็นไปไม่ได้เลยที่เธอจะทำลายมันภายในระยะเวลาที่เหมาะสม วิธีนี้ช่วยแก้ปัญหาการแลกเปลี่ยนคีย์ซึ่งสามารถเปรียบเทียบได้ ด้วยเครื่องสร้างตัวเลขสุ่มเทียม ใช้ร่วมกับการสื่อสารที่เข้ารหัสสำหรับคนที่พวกเขาไม่เคยพบมาก่อน
ปัจจุบันอัลกอริธึมที่ใช้กันทั่วไปในบล็อกเชน เช่น sha256 สืบทอดแนวคิดการออกแบบของฟังก์ชันแบบทางเดียว คำนวณได้ง่ายในทิศทางเดียว และแทบจะเป็นไปไม่ได้เลยที่จะถอดรหัสในอีกทิศทางหนึ่ง เพื่อความปลอดภัย



