EITC/IS/CCF Classical Cryptography Fundamentals เป็นโปรแกรม European IT Certification ในด้านทฤษฎีและการปฏิบัติของการเข้ารหัสแบบคลาสสิก ซึ่งรวมถึงการเข้ารหัสแบบไพรเวตคีย์และพับลิกคีย์ โดยมีการแนะนำการเข้ารหัสแบบใช้งานจริงที่ใช้กันอย่างแพร่หลายในอินเทอร์เน็ต เช่น อาร์เอส
หลักสูตรของ EITC/IS/CCF Classical Cryptography Fundamentals ครอบคลุมบทนำเกี่ยวกับการเข้ารหัสคีย์ส่วนตัว เลขคณิตแบบแยกส่วนและการเข้ารหัสทางประวัติศาสตร์ การเข้ารหัสสตรีม ตัวเลขสุ่ม One-Time Pad (OTP) การเข้ารหัสที่ปลอดภัยโดยไม่มีเงื่อนไข (ภายใต้สมมติฐานของการจัดหาโซลูชัน ให้กับปัญหาการกระจายคีย์ เช่น กำหนดโดย Quantum Key Distribution, QKD), linear feedback shift register, Data Encryption Standard (DES cipher รวมถึงการเข้ารหัส, กำหนดการคีย์และถอดรหัส), Advanced Encryption Standard (AES, การแนะนำฟิลด์ Galois การเข้ารหัสพื้นฐาน) การประยุกต์ใช้บล็อกไซเฟอร์ (รวมถึงโหมดการทำงาน) การพิจารณาการเข้ารหัสหลายรายการและการโจมตีแบบเดรัจฉาน การแนะนำการเข้ารหัสคีย์สาธารณะที่ครอบคลุมทฤษฎีตัวเลข อัลกอริธึมแบบยุคลิด ฟังก์ชันพีของออยเลอร์ และทฤษฎีบทออยเลอร์ ตลอดจน การแนะนำระบบการเข้ารหัส RSA และการยกกำลังอย่างมีประสิทธิภาพ ภายในโครงสร้างต่อไปนี้ ครอบคลุมวิดีโอการสอนแบบครอบคลุม เป็นข้อมูลอ้างอิงสำหรับการรับรอง EITC นี้
การเข้ารหัสหมายถึงวิธีการสื่อสารที่ปลอดภัยต่อหน้าศัตรู การเข้ารหัสในแง่ที่กว้างกว่าคือกระบวนการสร้างและวิเคราะห์โปรโตคอลที่ป้องกันไม่ให้บุคคลที่สามหรือบุคคลทั่วไปเข้าถึงข้อความส่วนตัว (เข้ารหัส) การเข้ารหัสลับแบบคลาสสิกสมัยใหม่ใช้คุณสมบัติหลักหลายประการของการรักษาความปลอดภัยข้อมูล เช่น การรักษาความลับของข้อมูล ความสมบูรณ์ของข้อมูล การรับรองความถูกต้อง และการไม่ปฏิเสธ ตรงกันข้ามกับการเข้ารหัสด้วยควอนตัมซึ่งอยู่บนพื้นฐานของกฎฟิสิกส์ควอนตัมที่แตกต่างกันอย่างสิ้นเชิงซึ่งกำหนดลักษณะธรรมชาติ การเข้ารหัสแบบคลาสสิกหมายถึงการเข้ารหัสที่อิงตามกฎฟิสิกส์คลาสสิก สาขาวิชาคณิตศาสตร์ วิทยาการคอมพิวเตอร์ วิศวกรรมไฟฟ้า วิทยาการสื่อสาร และฟิสิกส์ ล้วนมาบรรจบกันในการเข้ารหัสแบบคลาสสิก การค้าทางอิเล็กทรอนิกส์ บัตรชำระเงินแบบชิป สกุลเงินดิจิทัล รหัสผ่านคอมพิวเตอร์ และการสื่อสารทางทหาร ล้วนเป็นตัวอย่างของแอปพลิเคชันการเข้ารหัส
ก่อนยุคปัจจุบัน การเข้ารหัสเกือบจะมีความหมายเหมือนกันกับการเข้ารหัส โดยเปลี่ยนข้อมูลจากการอ่านไปสู่เรื่องไร้สาระที่ไม่สามารถเข้าใจได้ เพื่อป้องกันไม่ให้ผู้โจมตีเข้าถึงข้อความที่เข้ารหัส ผู้ส่งจะแชร์เฉพาะกระบวนการถอดรหัสกับผู้รับที่ต้องการเท่านั้น ชื่อ Alice (“A”) สำหรับผู้ส่ง Bob (“B”) สำหรับผู้รับที่ต้องการ และ Eve (“ผู้ดักฟัง”) สำหรับปฏิปักษ์มักใช้ในเอกสารเกี่ยวกับการเข้ารหัส
วิธีการเข้ารหัสมีความซับซ้อนมากขึ้น และการใช้งานก็มีความหลากหลายมากขึ้น นับตั้งแต่การพัฒนาเครื่องเข้ารหัสโรเตอร์ในสงครามโลกครั้งที่ XNUMX และการนำคอมพิวเตอร์มาใช้ในสงครามโลกครั้งที่สอง
การเข้ารหัสสมัยใหม่อาศัยทฤษฎีทางคณิตศาสตร์และวิทยาการคอมพิวเตอร์เป็นอย่างมาก วิธีการเข้ารหัสสร้างขึ้นจากสมมติฐานความแข็งในการคำนวณ ทำให้ยากสำหรับคู่ต่อสู้ที่จะฝ่าฝืนในทางปฏิบัติ แม้ว่าการบุกเข้าไปในระบบที่ออกแบบมาอย่างดีนั้นเป็นไปได้ในทางทฤษฎี แต่ในทางปฏิบัตินั้นเป็นไปไม่ได้ แบบแผนดังกล่าวจะเรียกว่า "ปลอดภัยในการคำนวณ" หากสร้างอย่างเพียงพอ อย่างไรก็ตาม ความก้าวหน้าทางทฤษฎี (เช่น การปรับปรุงวิธีการแยกตัวประกอบจำนวนเต็ม) และเทคโนโลยีการคำนวณที่เร็วขึ้น จำเป็นต้องมีการประเมินค่าใหม่อย่างต่อเนื่อง และหากจำเป็น ให้ปรับการออกแบบเหล่านี้ มีระบบความปลอดภัยทางข้อมูลตามหลักวิชา เช่น แผ่นข้อมูลแบบใช้ครั้งเดียว ที่สามารถพิสูจน์ได้ว่าไม่แตกหักแม้จะใช้พลังประมวลผลที่ไม่จำกัด แต่ระบบเหล่านี้ในทางปฏิบัติยากกว่าระบบที่แตกหักได้ในทางทฤษฎีที่ดีที่สุดแต่มีความปลอดภัยทางคอมพิวเตอร์
ในยุคข้อมูลข่าวสาร ความก้าวหน้าของเทคโนโลยีการเข้ารหัสทำให้เกิดความท้าทายทางกฎหมายมากมาย หลายประเทศได้จัดประเภทการเข้ารหัสเป็นอาวุธ โดยจำกัดหรือห้ามการใช้และส่งออกเนื่องจากอาจมีการจารกรรมและยุยงปลุกปั่น ผู้ตรวจสอบสามารถบังคับให้มอบกุญแจเข้ารหัสสำหรับเอกสารที่เกี่ยวข้องกับการสอบสวนในสถานที่บางแห่งที่การเข้ารหัสถูกกฎหมาย ในกรณีของสื่อดิจิทัล การเข้ารหัสยังมีบทบาทสำคัญในการจัดการสิทธิ์ดิจิทัลและความขัดแย้งด้านการละเมิดลิขสิทธิ์
คำว่า "cryptograph" (ตรงข้ามกับ "cryptogram") ถูกใช้ครั้งแรกในศตวรรษที่ XNUMX ในเรื่องสั้นของ Edgar Allan Poe เรื่อง "The Gold-Bug"
จนกระทั่งเมื่อเร็วๆ นี้ การเข้ารหัสเกือบเรียกว่า "การเข้ารหัส" เพียงอย่างเดียว ซึ่งเป็นการเปลี่ยนข้อมูลธรรมดา (เรียกว่าข้อความธรรมดา) ให้อยู่ในรูปแบบที่อ่านไม่ได้ (เรียกว่าข้อความเข้ารหัส) การถอดรหัสเป็นสิ่งที่ตรงกันข้ามกับการเข้ารหัส กล่าวคือ การเปลี่ยนจากข้อความเข้ารหัสที่ไม่สามารถเข้าใจได้เป็นข้อความธรรมดา รหัสลับ (หรือรหัสลับ) คือชุดของเทคนิคที่ทำการเข้ารหัสและถอดรหัสในลำดับที่กลับกัน อัลกอริธึมและ "คีย์" ในแต่ละกรณีจะรับผิดชอบการดำเนินการโดยละเอียดของการเข้ารหัส กุญแจเป็นความลับ (ควรทราบโดยผู้สื่อสารเท่านั้น) ที่ใช้ในการถอดรหัสข้อความเข้ารหัส โดยทั่วไปจะเป็นชุดอักขระ (ควรสั้นเพื่อให้ผู้ใช้จดจำได้) “cryptosystem” คือการรวบรวมองค์ประกอบของข้อความธรรมดา ไซเฟอร์เท็กซ์ คีย์ และขั้นตอนการเข้ารหัสและถอดรหัสที่สอดคล้องกับแต่ละคีย์ในเงื่อนไขทางคณิตศาสตร์ที่เป็นทางการ คีย์มีความสำคัญทั้งในทางการและในทางปฏิบัติ เนื่องจากรหัสที่มีคีย์คงที่สามารถแตกได้ง่ายโดยใช้ข้อมูลของรหัสเท่านั้น ทำให้ไม่มีประโยชน์ (หรือแม้แต่ต่อต้านการผลิต) สำหรับวัตถุประสงค์ส่วนใหญ่
ในอดีต การเข้ารหัสมักถูกใช้โดยไม่มีขั้นตอนเพิ่มเติมใดๆ เช่น การตรวจสอบความถูกต้องหรือการตรวจสอบความสมบูรณ์สำหรับการเข้ารหัสหรือถอดรหัส Cryptosystems แบ่งออกเป็นสองประเภท: สมมาตรและไม่สมมาตร คีย์เดียวกัน (คีย์ลับ) ใช้เพื่อเข้ารหัสและถอดรหัสข้อความในระบบสมมาตร ซึ่งเป็นคีย์เดียวที่รู้จักจนถึงปี 1970 เนื่องจากระบบสมมาตรใช้ความยาวของคีย์ที่สั้นกว่า การจัดการข้อมูลในระบบสมมาตรจึงเร็วกว่าในระบบที่ไม่สมมาตร ระบบอสมมาตรเข้ารหัสการสื่อสารด้วย "คีย์สาธารณะ" และถอดรหัสโดยใช้ "คีย์ส่วนตัว" ที่คล้ายคลึงกัน การใช้ระบบอสมมาตรช่วยเพิ่มความปลอดภัยในการสื่อสาร เนื่องจากยากในการกำหนดความสัมพันธ์ระหว่างคีย์ทั้งสอง RSA (Rivest–Shamir–Adleman) และ ECC เป็นสองตัวอย่างของระบบอสมมาตร (การเข้ารหัสแบบ Elliptic Curve) AES (Advanced Encryption Standard) ที่ใช้กันอย่างแพร่หลาย ซึ่งแทนที่ DES รุ่นก่อนหน้า เป็นตัวอย่างของอัลกอริธึมสมมาตรคุณภาพสูง (Data Encryption Standard) เทคนิคการพันกันของภาษาของเด็กต่างๆ เช่น Pig Latin หรือ cant อื่นๆ และที่จริงแล้ว แผนการเข้ารหัสทั้งหมดไม่ว่าจะมีเจตนาอย่างจริงจังจากแหล่งใด ๆ ก็ตามก่อนที่จะมีการแนะนำแพดแบบใช้ครั้งเดียวในช่วงต้นศตวรรษที่ XNUMX เป็นตัวอย่างของคุณภาพต่ำ อัลกอริธึมสมมาตร
คำว่า "รหัส" มักใช้เรียกขานเพื่ออ้างถึงเทคนิคการเข้ารหัสหรือการปกปิดข้อความใดๆ อย่างไรก็ตาม ในวิทยาการเข้ารหัสลับ รหัสหมายถึงการแทนที่คำรหัสสำหรับหน่วยข้อความธรรมดา (เช่น คำหรือวลีที่มีความหมาย) (เช่น “วอลลาบี” แทนที่ “การโจมตีในยามรุ่งสาง”) ในทางตรงกันข้าม ไซเฟอร์เท็กซ์ถูกสร้างขึ้นโดยการปรับเปลี่ยนหรือแทนที่องค์ประกอบที่ต่ำกว่าระดับดังกล่าว (เช่น ตัวอักษร พยางค์ หรือตัวอักษรคู่) เพื่อสร้างไซเฟอร์เท็กซ์
การเข้ารหัสลับคือการศึกษาวิธีการถอดรหัสข้อมูลที่เข้ารหัสโดยไม่ต้องเข้าถึงคีย์ที่จำเป็นในการทำเช่นนั้น กล่าวอีกนัยหนึ่งก็คือการศึกษาวิธี "ทำลาย" รูปแบบการเข้ารหัสหรือการนำไปใช้งาน
ในภาษาอังกฤษ บางคนใช้คำว่า "cryptography" และ "cryptology" แทนกันได้ ในขณะที่คนอื่น ๆ (รวมถึงการฝึกทหารของสหรัฐฯโดยทั่วไป) ใช้ "cryptography" เพื่ออ้างถึงการใช้และการฝึกเทคนิคการเข้ารหัสและ "cryptology" เพื่ออ้างถึงการรวมกัน การศึกษาการเข้ารหัสและการเข้ารหัสลับ ภาษาอังกฤษสามารถปรับเปลี่ยนได้ดีกว่าภาษาอื่นๆ โดยที่ "วิทยาการเข้ารหัสลับ" (ตามที่นักวิทยาการเข้ารหัสลับใช้) มักใช้ในความหมายที่สอง Steganography บางครั้งรวมอยู่ในการเข้ารหัสตาม RFC 2828
Cryptolinguistics คือการศึกษาคุณสมบัติของภาษาที่มีความเกี่ยวข้องในการเข้ารหัสหรือวิทยาการเข้ารหัส (เช่น สถิติความถี่ การรวมตัวอักษร รูปแบบสากล และอื่นๆ)
การเข้ารหัสและการเข้ารหัสมีประวัติอันยาวนาน
ประวัติของการเข้ารหัสเป็นบทความหลัก
ก่อนยุคสมัยใหม่ การเข้ารหัสมักเกี่ยวข้องกับการรักษาความลับของข้อความ (เช่น การเข้ารหัส)—การแปลงข้อความจากรูปแบบที่เข้าใจได้ให้อยู่ในรูปแบบที่เข้าใจยาก และอีกครั้ง ทำให้ไม่สามารถอ่านได้โดยผู้สกัดกั้นหรือผู้ดักฟังโดยปราศจากความรู้ที่เป็นความลับ (กล่าวคือ กุญแจที่จำเป็นสำหรับการถอดรหัสลับ ของข้อความนั้น) การเข้ารหัสได้รับการออกแบบมาเพื่อรักษาการสนทนาของสายลับ ผู้นำทางทหาร และนักการทูตไว้เป็นความลับ ในทศวรรษที่ผ่านมา วินัยได้เติบโตขึ้นเพื่อรวมเอาเทคนิคต่างๆ เช่น การตรวจสอบความสมบูรณ์ของข้อความ การตรวจสอบตัวตนของผู้ส่ง/ผู้รับ ลายเซ็นดิจิทัล การพิสูจน์เชิงโต้ตอบ และการคำนวณที่ปลอดภัย เหนือสิ่งอื่นใด
การเข้ารหัสแบบคลาสสิกที่พบบ่อยที่สุดสองประเภทคือ รหัสการเคลื่อนย้าย ซึ่งแทนที่ตัวอักษรหรือกลุ่มของตัวอักษรอย่างเป็นระบบด้วยตัวอักษรหรือกลุ่มตัวอักษรอื่น (เช่น 'hello world' กลายเป็น 'ehlol owrdl' ในรูปแบบการจัดเรียงใหม่ที่เรียบง่ายเล็กน้อย) และการแทนที่ ciphers ซึ่งแทนที่ตัวอักษรหรือกลุ่มของตัวอักษรอย่างเป็นระบบด้วยตัวอักษรหรือกลุ่มตัวอักษรอื่น ๆ (เช่น 'fly in one' กลายเป็น 'gmz bu' เวอร์ชันง่าย ๆ ของทั้งสองไม่เคยให้ความเป็นส่วนตัวมากนักจากศัตรูที่ฉลาดแกมโกง ซีซาร์ cipher เป็นรหัสทดแทนในยุคแรกซึ่ง แต่ละตัวอักษรในข้อความธรรมดาถูกแทนที่ด้วยตัวอักษรจำนวนหนึ่งตามตัวอักษร ตาม Suetonius จูเลียสซีซาร์ใช้มันกับกะสามคนเพื่อสื่อสารกับนายพลของเขา Atbash เป็นตัวอย่างรหัสภาษาฮิบรูยุคแรก การใช้การเข้ารหัสที่รู้จักกันที่เก่าแก่ที่สุดคือข้อความเข้ารหัสที่แกะสลักบนหินในอียิปต์ (ประมาณ 1900 ก่อนคริสตศักราช) อย่างไรก็ตาม เป็นไปได้ว่าสิ่งนี้ทำเพื่อความบันเทิงของผู้ชมที่รู้หนังสือมากกว่า เพื่อปกปิดข้อมูล
มีรายงานว่าห้องใต้ดินเป็นที่รู้กันในหมู่ชาวกรีกคลาสสิก Steganography (การฝึกปกปิดแม้กระทั่งการปรากฏตัวของการสื่อสารเพื่อให้เป็นส่วนตัว) ก็ถูกคิดค้นขึ้นในสมัยโบราณเช่นกัน วลีที่มีรอยสักบนศีรษะที่โกนหนวดของทาสและซ่อนอยู่ใต้ผมที่ขึ้นใหม่ตามคำกล่าวของ Herodotus การใช้หมึกที่มองไม่เห็น ไมโครดอท และลายน้ำดิจิทัลเพื่อปกปิดข้อมูลเป็นกรณีตัวอย่างที่เป็นปัจจุบันมากขึ้นของ Steganography
Kautiliyam และ Mulavediya เป็นรหัสสองประเภทที่กล่าวถึงใน Kamasutra of Vtsyyana อายุ 2000 ปีของอินเดีย การแทนที่อักษรตัวเลขใน Kautiliyam นั้นอิงจากความสัมพันธ์ทางสัทศาสตร์ เช่น สระที่กลายเป็นพยัญชนะ ตัวอักษรรหัสใน Mulavediya ประกอบด้วยตัวอักษรที่ตรงกันและใช้ตัวอักษรซึ่งกันและกัน
ตามที่นักวิชาการมุสลิม Ibn al-Nadim Sassanid Persia มีสคริปต์ลับสองแบบ: h-dabrya (ตัวอักษร "สคริปต์ของกษัตริย์") ซึ่งใช้สำหรับการติดต่ออย่างเป็นทางการและ rz-saharya ซึ่งใช้เพื่อแลกเปลี่ยนข้อความลับกับผู้อื่น ประเทศ.
ในหนังสือของเขา The Codebreakers David Kahn เขียนว่าการเข้ารหัสร่วมสมัยเริ่มต้นด้วยชาวอาหรับ ซึ่งเป็นคนแรกที่จัดทำเอกสารขั้นตอนการเข้ารหัสลับอย่างรอบคอบ หนังสือข้อความเข้ารหัสลับเขียนโดย Al-Khalil (717–786) และมีการใช้การเรียงสับเปลี่ยนและการผสมแบบเร็วที่สุดเพื่อแสดงรายการคำภาษาอาหรับที่เป็นไปได้ทั้งหมดที่มีและไม่มีสระ
ข้อความเข้ารหัสที่สร้างขึ้นโดยรหัสลับแบบคลาสสิก (เช่นเดียวกับรหัสลับสมัยใหม่บางตัว) จะเปิดเผยข้อมูลทางสถิติเกี่ยวกับข้อความธรรมดา ซึ่งสามารถนำไปใช้เพื่อทำลายรหัสลับได้ ผู้โจมตีที่ชาญฉลาดสามารถทำลายรหัสดังกล่าวเกือบทั้งหมดได้หลังจากค้นพบการวิเคราะห์ความถี่ อาจเป็นไปได้โดยนักคณิตศาสตร์ชาวอาหรับและพหูสูต Al-Kindi (หรือที่รู้จักในชื่อ Alkindus) ในศตวรรษที่ 9 รหัสลับแบบคลาสสิกยังคงได้รับความนิยมในปัจจุบัน แม้ว่าส่วนใหญ่จะเป็นปริศนา (ดูการเข้ารหัส) Risalah fi Istikhraj al-Mu'amma (ต้นฉบับสำหรับการถอดรหัสข้อความเข้ารหัสลับ) เขียนโดย Al-Kindi และบันทึกการใช้เทคนิคการเข้ารหัสการวิเคราะห์ความถี่ครั้งแรกที่รู้จัก
วิธีเข้ารหัสประวัติแบบขยายบางวิธี เช่น รหัสแบบโฮโมโฟนิก ซึ่งมีแนวโน้มว่าจะทำให้การกระจายความถี่ราบเรียบ อาจไม่ได้รับประโยชน์จากความถี่ของตัวอักษรภาษา ความถี่กลุ่มตัวอักษรภาษา (หรือ n-gram) อาจโจมตีการเข้ารหัสเหล่านั้น
จนกระทั่งมีการค้นพบรหัสตัวเลขแบบหลายตัวอักษร โดย Leon Battista Alberti ที่สะดุดตาที่สุดเมื่อราวปี 1467 นั้น การเข้ารหัสเกือบทั้งหมดสามารถเข้าถึงการเข้ารหัสโดยใช้วิธีการวิเคราะห์ความถี่ แม้ว่าจะมีหลักฐานบางอย่างที่แสดงว่า Al-Kindi ทราบอยู่แล้ว Alberti เกิดแนวคิดในการใช้รหัสลับแยก (หรือตัวอักษรทดแทน) สำหรับส่วนต่างๆ ของการสื่อสาร นอกจากนี้ เขายังได้สร้างสิ่งที่คิดว่าเป็นอุปกรณ์เข้ารหัสอัตโนมัติเครื่องแรก ซึ่งเป็นวงล้อที่ใช้ส่วนหนึ่งของการออกแบบของเขา การเข้ารหัสในรหัส Vigenère ซึ่งเป็นรหัสตัวเลขหลายตัวอักษร ถูกควบคุมโดยคำสำคัญที่ควบคุมการแทนที่ตัวอักษรตามตัวอักษรของคำหลักที่ใช้ Charles Babbage แสดงให้เห็นว่ารหัส Vigenère มีความเสี่ยงต่อการวิเคราะห์ของ Kasiski ในช่วงกลางศตวรรษที่สิบเก้า แต่ Friedrich Kasiski ได้ตีพิมพ์ผลการวิจัยของเขาในอีกสิบปีต่อมา
แม้ว่าการวิเคราะห์ความถี่จะเป็นเทคนิคที่มีประสิทธิภาพและกว้างสำหรับการเข้ารหัสหลายตัว การเข้ารหัสยังคงมีประสิทธิภาพในทางปฏิบัติ เนื่องจากผู้เข้ารหัสลับหลายคนมักไม่รู้ถึงเทคนิคนี้ การทำลายข้อความโดยไม่ใช้การวิเคราะห์ความถี่จำเป็นต้องมีความรู้เกี่ยวกับรหัสลับที่ใช้และอาจเป็นกุญแจที่เกี่ยวข้อง ทำให้การจารกรรม การติดสินบน การลักทรัพย์ การละเลย และกลวิธีอื่นๆ ที่ไม่ได้รับข้อมูลเชิงเข้ารหัสนั้นน่าสนใจยิ่งขึ้น ความลับของอัลกอริธึมของการเข้ารหัสได้รับการยอมรับในที่สุดในศตวรรษที่ 19 ว่าเป็นการรับรองความปลอดภัยของข้อความทั้งที่สมเหตุสมผลและเป็นไปไม่ได้ อันที่จริง รูปแบบการเข้ารหัสที่เหมาะสมใด ๆ (รวมถึงรหัสลับ) ควรยังคงปลอดภัยแม้ว่าคู่ต่อสู้จะเข้าใจอัลกอริธึมการเข้ารหัสด้วยตัวมันเองอย่างถ่องแท้ ความปลอดภัยของคีย์ควรเพียงพอสำหรับการเข้ารหัสที่ดีเพื่อรักษาความลับเมื่อเผชิญกับการโจมตี ออกุสต์ เคิร์กฮอฟฟ์สกล่าวถึงหลักการพื้นฐานนี้ครั้งแรกในปี พ.ศ. 1883 และเป็นที่รู้จักในชื่อหลักการของเคอร์คคอฟฟ์ หรือพูดตรงๆ กว่านั้น คลอดด์ แชนนอน ผู้ประดิษฐ์ทฤษฎีสารสนเทศและพื้นฐานของการเข้ารหัสเชิงทฤษฎี ได้กล่าวถึงแม็กซิมของแชนนอนว่า 'ศัตรูรู้ระบบ'
เพื่อช่วยในการเข้ารหัส อุปกรณ์ทางกายภาพจำนวนมากและความช่วยเหลือได้ถูกนำมาใช้ เคียวของกรีกโบราณซึ่งเป็นไม้เรียวที่ถูกกล่าวหาว่าใช้โดย Spartans เป็นเครื่องมือเข้ารหัสการเคลื่อนย้ายอาจเป็นหนึ่งในคนแรก อุปกรณ์ช่วยอื่นๆ ถูกคิดค้นขึ้นในยุคกลาง เช่น กระจังหน้าตัวเลข ซึ่งใช้สำหรับการลบล้างข้อมูลด้วย ด้วยการพัฒนาตัวเข้ารหัสแบบโพลีอัลฟาเบติก อุปกรณ์ช่วยที่มีความซับซ้อนมากขึ้น เช่น แผ่นเข้ารหัสของ Alberti, โครงร่าง tabula recta ของ Johannes Trithemius และรหัสล้อของ Thomas Jefferson เริ่มวางจำหน่าย ระบบเข้ารหัส/ถอดรหัสทางกลจำนวนมากถูกคิดค้นและจดสิทธิบัตรในช่วงต้นศตวรรษที่ 1900 รวมถึงเครื่องโรเตอร์ ซึ่งรัฐบาลเยอรมันและกองทัพใช้กันอย่างมีชื่อเสียงตั้งแต่ช่วงปลายทศวรรษที่ 1920 ถึงสงครามโลกครั้งที่สอง หลังสงครามโลกครั้งที่ XNUMX การเข้ารหัสที่นำมาใช้โดยอินสแตนซ์คุณภาพสูงของการออกแบบเครื่องเหล่านี้ส่งผลให้ความยากลำบากในการเข้ารหัสลับเพิ่มขึ้นอย่างมาก
การเข้ารหัสเกี่ยวข้องกับรูปแบบภาษาศาสตร์และศัพท์เฉพาะก่อนต้นศตวรรษที่ยี่สิบ ตั้งแต่นั้นมา จุดเน้นก็มีวิวัฒนาการ และตอนนี้การเข้ารหัสได้รวมเอาแง่มุมต่างๆ ของทฤษฎีข้อมูล ความซับซ้อนในการคำนวณ สถิติ วิทยาการเชิงผสม พีชคณิตนามธรรม ทฤษฎีจำนวน และคณิตศาสตร์ที่มีขอบเขตโดยทั่วไป การเข้ารหัสเป็นวิศวกรรมประเภทหนึ่ง แต่มีความพิเศษตรงที่มันเกี่ยวข้องกับการต่อต้านเชิงรุก ชาญฉลาด และไม่เป็นมิตร ในขณะที่วิศวกรรมประเภทอื่นๆ (เช่น วิศวกรรมโยธาหรือวิศวกรรมเคมี) เพียงแค่ต้องจัดการกับแรงธรรมชาติที่เป็นกลาง การเชื่อมโยงระหว่างความยากลำบากในการเข้ารหัสและฟิสิกส์ควอนตัมก็กำลังถูกตรวจสอบเช่นกัน
การพัฒนาคอมพิวเตอร์ดิจิทัลและอุปกรณ์อิเล็กทรอนิกส์ช่วยในการวิเคราะห์การเข้ารหัสโดยอนุญาตให้สร้างไซเฟอร์ที่มีความซับซ้อนมากขึ้น ยิ่งกว่านั้น คอมพิวเตอร์อนุญาตให้เข้ารหัสข้อมูลทุกประเภทที่สามารถแสดงในรูปแบบไบนารี ต่างจากรหัสลับแบบเดิมซึ่งเข้ารหัสเฉพาะข้อความภาษาเขียนโดยเฉพาะ นี่เป็นเรื่องใหม่และสำคัญ ในการออกแบบการเข้ารหัสและการเข้ารหัส คอมพิวเตอร์ได้แทนที่การเข้ารหัสภาษา ต่างจากวิธีการแบบคลาสสิกและแบบกลไก ซึ่งส่วนใหญ่จัดการกับอักขระดั้งเดิม (เช่น ตัวอักษรและตัวเลข) โดยตรง การเข้ารหัสคอมพิวเตอร์จำนวนมากทำงานบนลำดับบิตไบนารี (บางครั้งในกลุ่มหรือบล็อก) ในทางกลับกัน คอมพิวเตอร์ได้ช่วยเข้ารหัสลับ ซึ่งชดเชยความซับซ้อนของการเข้ารหัสบางส่วนได้บางส่วน อย่างไรก็ตามเรื่องนี้ การเข้ารหัสสมัยใหม่ที่ดียังคงนำหน้าการเข้ารหัสลับ บ่อยครั้งการใช้ตัวเลขที่ดีจะมีประสิทธิภาพมาก (เช่น รวดเร็วและต้องการทรัพยากรเพียงเล็กน้อย เช่น หน่วยความจำหรือความสามารถของ CPU) ในขณะที่การทำลายมันต้องใช้ความพยายามอย่างมาก และมากกว่าที่จำเป็นสำหรับสิ่งใดๆ การเข้ารหัสแบบคลาสสิกทำให้ไม่สามารถแสดงการเข้ารหัสได้อย่างมีประสิทธิภาพ
การเข้ารหัสสมัยใหม่เปิดตัวแล้ว
การเข้ารหัสลับของอุปกรณ์กลไกใหม่ได้รับการพิสูจน์แล้วว่ามีความท้าทายและใช้เวลานาน ในช่วงสงครามโลกครั้งที่สอง กิจกรรมการเข้ารหัสลับที่ Bletchley Park ในสหราชอาณาจักรได้ส่งเสริมการประดิษฐ์วิธีการที่มีประสิทธิภาพมากขึ้นสำหรับการทำงานซ้ำๆ Colossus ซึ่งเป็นคอมพิวเตอร์อิเล็กทรอนิกส์แบบตั้งโปรแกรมได้ตัวแรกของโลก ได้รับการพัฒนาขึ้นเพื่อช่วยในการถอดรหัสตัวเลขที่สร้างโดยเครื่อง Lorenz SZ40/42 ของกองทัพเยอรมัน
วิทยาการเข้ารหัสลับเป็นสาขาใหม่ของการวิจัยเชิงวิชาการแบบเปิด โดยเริ่มตั้งแต่กลางทศวรรษ 1970 เท่านั้น พนักงานของ IBM ได้คิดค้นอัลกอริทึมที่กลายมาเป็นมาตรฐานการเข้ารหัสข้อมูลของรัฐบาลกลาง (เช่น สหรัฐอเมริกา) Whitfield Diffie และ Martin Hellman เผยแพร่อัลกอริธึมข้อตกลงหลักของพวกเขา และคอลัมน์ Scientific American ของ Martin Gardner เผยแพร่อัลกอริทึม RSA การเข้ารหัสได้รับความนิยมเพิ่มมากขึ้นในฐานะเทคนิคในการสื่อสาร เครือข่ายคอมพิวเตอร์ และความปลอดภัยของคอมพิวเตอร์โดยทั่วไป
มีความผูกพันอย่างลึกซึ้งกับคณิตศาสตร์เชิงนามธรรมเนื่องจากวิธีการเข้ารหัสสมัยใหม่หลายวิธีสามารถเก็บกุญแจไว้เป็นความลับได้ก็ต่อเมื่อปัญหาทางคณิตศาสตร์บางอย่างไม่สามารถรักษาได้ เช่น การแยกตัวประกอบจำนวนเต็มหรือปัญหาลอการิทึมที่ไม่ต่อเนื่อง มีเพียงไม่กี่ระบบเข้ารหัสลับที่ได้รับการพิสูจน์แล้วว่าปลอดภัย 100% คลอดด์ แชนนอน พิสูจน์ว่าแผ่นที่ใช้ครั้งเดียวเป็นหนึ่งในนั้น มีอัลกอริธึมสำคัญบางตัวที่แสดงว่าปลอดภัยภายใต้เงื่อนไขบางประการ ตัวอย่างเช่น การไม่สามารถแยกตัวประกอบจำนวนเต็มที่ใหญ่มากได้ เป็นพื้นฐานสำหรับการเชื่อว่า RSA และระบบอื่นๆ มีความปลอดภัย แต่การพิสูจน์การแตกหักนั้นไม่สามารถบรรลุได้เนื่องจากปัญหาทางคณิตศาสตร์ที่แฝงอยู่ยังไม่ได้รับการแก้ไข ในทางปฏิบัติ สิ่งเหล่านี้ถูกใช้อย่างกว้างขวาง และผู้สังเกตการณ์ที่มีความสามารถส่วนใหญ่เชื่อว่าพวกเขาจะไม่มีทางแตกหักในทางปฏิบัติ มีระบบที่คล้ายกับ RSA เช่นระบบที่พัฒนาโดย Michael O. Rabin ที่ปลอดภัยหากแฟคตอริ่ง n = pq เป็นไปไม่ได้ อย่างไรก็ตามมันไร้ประโยชน์ในทางปฏิบัติ ปัญหาลอการิทึมที่ไม่ต่อเนื่องเป็นรากฐานสำหรับการเชื่อว่าระบบเข้ารหัสลับอื่น ๆ บางระบบมีความปลอดภัย และมีระบบที่คล้ายกันและใช้งานได้จริงน้อยกว่าซึ่งมีความปลอดภัยที่พิสูจน์ได้ในแง่ของความสามารถในการแก้ปัญหาหรือการแก้ไม่ตกของปัญหาลอการิทึมแบบไม่ต่อเนื่อง
อัลกอริธึมการเข้ารหัสและผู้ออกแบบระบบจะต้องพิจารณาถึงความก้าวหน้าในอนาคตที่เป็นไปได้เมื่อทำงานกับแนวคิดของตน นอกเหนือจากการรู้เท่าทันประวัติศาสตร์การเข้ารหัส ตัวอย่างเช่น เมื่อพลังการประมวลผลของคอมพิวเตอร์ดีขึ้น ความกว้างของการโจมตีแบบเดรัจฉานก็เพิ่มขึ้น ดังนั้นความยาวของคีย์ที่ต้องการก็เพิ่มขึ้นเช่นกัน นักออกแบบระบบเข้ารหัสลับบางคนที่สำรวจการเข้ารหัสหลังควอนตัมกำลังพิจารณาถึงผลที่ตามมาของการคำนวณควอนตัมอยู่แล้ว การประกาศที่ใกล้จะเกิดขึ้นของการใช้งานเครื่องเหล่านี้อย่างพอประมาณอาจทำให้ความจำเป็นในการป้องกันไว้ก่อนเป็นมากกว่าแค่การเก็งกำไร
การเข้ารหัสลับแบบคลาสสิกในยุคปัจจุบัน
การเข้ารหัสแบบสมมาตร (หรือคีย์ส่วนตัว) เป็นประเภทของการเข้ารหัสที่ผู้ส่งและผู้รับใช้คีย์เดียวกัน (หรือโดยทั่วไปน้อยกว่า ซึ่งคีย์จะแตกต่างกัน แต่เกี่ยวข้องกันในวิธีที่คำนวณได้ง่าย และถูกเก็บเป็นความลับและเป็นส่วนตัว ). จนถึงเดือนมิถุนายน พ.ศ. 1976 นี่เป็นการเข้ารหัสประเภทเดียวที่เปิดเผยต่อสาธารณะ
การเข้ารหัสแบบบล็อกและการเข้ารหัสแบบสตรีมต่างก็ใช้ในการปรับใช้รหัสเข้ารหัสแบบสมมาตร รหัสบล็อกเข้ารหัสอินพุตในบล็อกของข้อความธรรมดาแทนที่จะเป็นอักขระแต่ละตัว เช่นเดียวกับรหัสสตรีม
รัฐบาลสหรัฐฯ ได้กำหนดให้ Data Encryption Standard (DES) และ Advanced Encryption Standard (AES) เป็นมาตรฐานการเข้ารหัส (แม้ว่าการรับรองของ DES จะถูกยกเลิกในที่สุดเมื่อมีการจัดตั้ง AES) DES (โดยเฉพาะอย่างยิ่งรูปแบบ Triple-DES ที่ได้รับการอนุมัติและปลอดภัยกว่าอย่างมีนัยสำคัญ) ยังคงได้รับความนิยมแม้ว่าจะเลิกใช้มาตรฐานอย่างเป็นทางการแล้วก็ตาม มันถูกใช้ในแอพพลิเคชั่นหลากหลายตั้งแต่การเข้ารหัส ATM ไปจนถึงความเป็นส่วนตัวของอีเมลและการเข้าถึงระยะไกลที่ปลอดภัย มีการคิดค้นและเผยแพร่บล็อกไซเฟอร์ที่แตกต่างกันจำนวนหนึ่ง โดยมีระดับความสำเร็จที่แตกต่างกันไป หลายคนรวมถึงบางคนที่ออกแบบโดยผู้ปฏิบัติงานที่มีคุณสมบัติเช่น FEAL ถูกทำลายอย่างกว้างขวาง
การเข้ารหัสสตรีมไม่เหมือนกับการเข้ารหัสแบบบล็อก โดยสร้างสตรีมวัสดุหลักที่มีความยาวไม่จำกัดซึ่งประกอบกับข้อความธรรมดาแบบทีละบิตหรือทีละอักขระ คล้ายกับแพดแบบใช้ครั้งเดียว สตรีมเอาต์พุตของรหัสสตรีมถูกสร้างขึ้นจากสถานะภายในที่ซ่อนอยู่ซึ่งเปลี่ยนแปลงไปตามฟังก์ชันการเข้ารหัส ข้อมูลรหัสลับใช้เพื่อตั้งค่าสถานะภายในนั้นในตอนแรก ใช้รหัสสตรีม RC4 อย่างกว้างขวาง โดยการสร้างบล็อคของคีย์สตรีม (แทนที่จะเป็นตัวสร้างตัวเลขสุ่มเทียม) และใช้การดำเนินการ XOR กับแต่ละบิตของข้อความธรรมดาด้วยแต่ละบิตของคีย์สตรีม สามารถใช้บล็อกไซเฟอร์เป็นรหัสสตรีมได้
รหัสการตรวจสอบความถูกต้องของข้อความ (MAC) คล้ายกับฟังก์ชันแฮชที่เข้ารหัส ยกเว้นว่าสามารถใช้คีย์ลับเพื่อตรวจสอบค่าแฮชเมื่อได้รับ ความสลับซับซ้อนพิเศษนี้ป้องกันการโจมตีอัลกอริธึมการไดเจสต์เปล่า และถือว่าคุ้มค่า เทคนิคการเข้ารหัสประเภทที่สามคือฟังก์ชันแฮชเข้ารหัส พวกเขารับข้อความที่มีความยาวเท่าใดก็ได้เป็นอินพุตและเอาต์พุตแฮชขนาดเล็กที่มีความยาวคงที่ซึ่งสามารถใช้ในลายเซ็นดิจิทัลได้ เป็นต้น ผู้โจมตีไม่สามารถค้นหาข้อความสองข้อความที่สร้างแฮชเดียวกันได้โดยใช้อัลกอริธึมแฮชที่ดี MD4 เป็นฟังก์ชันแฮชที่ใช้กันอย่างแพร่หลาย แต่ตอนนี้เกิดข้อผิดพลาด MD5 ซึ่งเป็นรูปแบบที่ปรับปรุงใหม่ของ MD4 ก็มีการใช้กันอย่างแพร่หลายเช่นกัน แต่ในทางปฏิบัติแล้วใช้งานไม่ได้ ชุด Secure Hash Algorithm ของอัลกอริทึมแฮชที่คล้ายกับ MD5 ได้รับการพัฒนาโดย US National Security Agency: หน่วยงานด้านมาตรฐานของสหรัฐฯ ตัดสินใจว่า "รอบคอบ" จากมุมมองด้านความปลอดภัยเพื่อพัฒนามาตรฐานใหม่เพื่อ "ปรับปรุงความแข็งแกร่งของอัลกอริธึมแฮชโดยรวมของ NIST อย่างมีนัยสำคัญ ชุดเครื่องมือ” SHA-1 ถูกใช้อย่างแพร่หลายและมีความปลอดภัยมากกว่า MD5 แต่ผู้เข้ารหัสลับได้ระบุการโจมตีของมัน ตระกูล SHA-2 พัฒนาขึ้นใน SHA-1 แต่เสี่ยงต่อการปะทะกันในปี 2011 และตระกูล SHA-2 พัฒนาขึ้นใน SHA-1 แต่มีความเสี่ยงที่จะเกิดการปะทะกัน ด้วยเหตุนี้ ภายในปี 2012 จึงมีการแข่งขันการออกแบบฟังก์ชันแฮชขึ้นเพื่อเลือกมาตรฐานระดับชาติใหม่ของสหรัฐฯ หรือที่เรียกว่า SHA-3 การแข่งขันได้ข้อสรุปเมื่อวันที่ 2 ตุลาคม 2012 เมื่อสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) ประกาศว่า Keccak เป็นอัลกอริทึมแฮช SHA-3 ใหม่ ฟังก์ชันแฮชเข้ารหัส ซึ่งแตกต่างจากบล็อกแบบย้อนกลับและการเข้ารหัสสตรีม ให้เอาต์พุตที่แฮชซึ่งไม่สามารถใช้กู้คืนข้อมูลอินพุตดั้งเดิมได้ ฟังก์ชันแฮชเข้ารหัสจะใช้เพื่อตรวจสอบความถูกต้องของข้อมูลที่ได้รับจากแหล่งที่ไม่น่าไว้วางใจหรือเพื่อเพิ่มระดับการป้องกันเพิ่มเติม
แม้ว่าข้อความหรือชุดข้อความอาจมีคีย์ที่แตกต่างจากคีย์อื่น แต่ระบบเข้ารหัสคีย์สมมาตรก็ใช้คีย์เดียวกันสำหรับการเข้ารหัสและถอดรหัส การจัดการคีย์ที่จำเป็นต่อการใช้ยันต์แบบสมมาตรอย่างปลอดภัยถือเป็นข้อเสียเปรียบอย่างมาก คู่สนทนาแต่ละคู่ควรแบ่งปันคีย์ที่แตกต่างกัน และอาจใช้รหัสลับที่แตกต่างกันสำหรับข้อความเข้ารหัสแต่ละรายการที่ส่ง จำนวนคีย์ที่ต้องการเพิ่มขึ้นในสัดส่วนโดยตรงกับจำนวนผู้เข้าร่วมเครือข่าย ทำให้ต้องใช้เทคนิคการจัดการคีย์ที่ซับซ้อนเพื่อให้คีย์ทั้งหมดมีความสม่ำเสมอและเป็นความลับ
Whitfield Diffie และ Martin Hellman ได้คิดค้นแนวคิดของการเข้ารหัสแบบพับลิกคีย์ (หรือเรียกอีกอย่างว่าคีย์อสมมาตร) ในงานชิ้นสำคัญในปี 1976 ซึ่งมีการใช้คีย์ที่แตกต่างกันสองคีย์แต่มีความเกี่ยวข้องทางคณิตศาสตร์ ได้แก่ คีย์สาธารณะและคีย์ส่วนตัว แม้ว่าจะมีการเชื่อมโยงกันอย่างแยกไม่ออก แต่ระบบกุญแจสาธารณะถูกสร้างขึ้นในลักษณะที่การคำนวณหนึ่งคีย์ ('คีย์ส่วนตัว') จากอีกอันหนึ่ง ('คีย์สาธารณะ') เป็นไปไม่ได้ในการคำนวณ ในทางกลับกัน กุญแจทั้งสองถูกผลิตขึ้นอย่างลับๆ เป็นคู่ที่เชื่อมโยงกัน นักประวัติศาสตร์ David Kahn กล่าวว่าการเข้ารหัสแบบพับลิกคีย์เป็น "แนวคิดใหม่ที่ปฏิวัติวงการมากที่สุด นับตั้งแต่การแทนที่ polyalphabetic เกิดขึ้นในยุคฟื้นฟูศิลปวิทยา"
คีย์สาธารณะในระบบเข้ารหัสคีย์สาธารณะสามารถส่งได้อย่างอิสระ แต่ต้องซ่อนคีย์ส่วนตัวที่จับคู่ไว้ คีย์สาธารณะใช้สำหรับการเข้ารหัส ในขณะที่คีย์ส่วนตัวหรือคีย์ลับใช้สำหรับถอดรหัสในรูปแบบการเข้ารหัสคีย์สาธารณะ แม้ว่า Diffie และ Hellman ไม่สามารถสร้างระบบดังกล่าวได้ พวกเขาแสดงให้เห็นว่าการเข้ารหัสคีย์สาธารณะเป็นไปได้โดยการจัดหาโปรโตคอลการแลกเปลี่ยนคีย์ Diffie–Hellman ซึ่งเป็นโซลูชันที่ช่วยให้คนสองคนยอมรับคีย์การเข้ารหัสที่ใช้ร่วมกันอย่างลับๆ รูปแบบที่ใช้กันอย่างแพร่หลายมากที่สุดสำหรับใบรับรองคีย์สาธารณะถูกกำหนดโดยมาตรฐาน X.509
การตีพิมพ์ของ Diffie และ Hellman ได้จุดประกายความสนใจทางวิชาการอย่างกว้างขวางในการพัฒนาระบบเข้ารหัสคีย์สาธารณะที่ใช้งานได้จริง Ronald Rivest, Adi Shamir และ Len Adleman ชนะการประกวดในปี 1978 และคำตอบของพวกเขากลายเป็นที่รู้จักในชื่ออัลกอริทึม RSA
นอกจากจะเป็นตัวอย่างแรกที่เปิดเผยต่อสาธารณะของอัลกอริธึมคีย์สาธารณะคุณภาพสูงแล้ว อัลกอริธึม Diffie–Hellman และ RSA ยังเป็นหนึ่งในวิธีที่ใช้กันมากที่สุดอีกด้วย Cramer–Shoup cryptosystem, การเข้ารหัส ElGamal และวิธีเส้นโค้งวงรีจำนวนมากเป็นตัวอย่างของอัลกอริธึมคีย์แบบอสมมาตร
นักเข้ารหัสของ GCHQ เล็งเห็นถึงความก้าวหน้าทางวิชาการหลายประการ ตามเอกสารที่ออกในปี 1997 โดยสำนักงานใหญ่ด้านการสื่อสารของรัฐบาล (GCHQ) ซึ่งเป็นองค์กรข่าวกรองของอังกฤษ ตามตำนานกล่าวว่าการเข้ารหัสคีย์แบบอสมมาตรถูกคิดค้นโดย James H. Ellis ในปี 1970 Clifford Cocks ได้คิดค้นโซลูชันในปี 1973 ที่คล้ายกับ RSA อย่างมากในแง่ของการออกแบบ Malcolm J. Williamson ได้รับการยกย่องว่าเป็นผู้ประดิษฐ์การแลกเปลี่ยนกุญแจ Diffie–Hellman ในปี 1974
ระบบลายเซ็นดิจิทัลยังใช้การเข้ารหัสคีย์สาธารณะด้วย ลายเซ็นดิจิทัลนั้นคล้ายกับลายเซ็นดั้งเดิมเนื่องจากผู้ใช้สร้างได้ง่าย แต่ผู้อื่นปลอมแปลงได้ยาก ลายเซ็นดิจิทัลยังสามารถเชื่อมโยงอย่างถาวรกับเนื้อหาของการสื่อสารที่กำลังลงนาม ซึ่งหมายความว่าไม่สามารถ 'ย้าย' จากเอกสารหนึ่งไปยังอีกเอกสารหนึ่งได้โดยไม่ถูกตรวจจับ มีสองอัลกอริธึมในรูปแบบลายเซ็นดิจิทัล: หนึ่งสำหรับการเซ็นชื่อซึ่งใช้รหัสลับในการประมวลผลข้อความ (หรือแฮชของข้อความหรือทั้งสองอย่าง) และอีกอันสำหรับการตรวจสอบซึ่งใช้กุญแจสาธารณะที่ตรงกับข้อความเพื่อตรวจสอบ ความถูกต้องของลายเซ็น วิธีการลงลายเซ็นดิจิทัลที่ใช้กันมากที่สุด XNUMX วิธีคือ RSA และ DSA โครงสร้างพื้นฐานของกุญแจสาธารณะและระบบรักษาความปลอดภัยเครือข่ายจำนวนมาก (เช่น SSL/TLS, VPN จำนวนมาก) อาศัยลายเซ็นดิจิทัลในการทำงาน
ความซับซ้อนในการคำนวณของปัญหา "ยาก" เช่น ปัญหาที่เกิดจากทฤษฎีจำนวน มักถูกนำมาใช้ในการพัฒนาวิธีพับลิกคีย์ ปัญหาการแยกตัวประกอบจำนวนเต็มเกี่ยวข้องกับความแข็งของ RSA ในขณะที่ปัญหาลอการิทึมที่ไม่ต่อเนื่องเกี่ยวข้องกับ Diffie–Hellman และ DSA ความปลอดภัยของการเข้ารหัสเส้นโค้งวงรีขึ้นอยู่กับปัญหาทฤษฎีจำนวนโค้งวงรี อัลกอริธึมคีย์สาธารณะส่วนใหญ่รวมถึงการดำเนินการต่างๆ เช่น การคูณแบบแยกส่วนและการยกกำลัง ซึ่งมีราคาแพงในการคำนวณมากกว่าเทคนิคที่ใช้ในบล็อกไซเฟอร์ส่วนใหญ่ โดยเฉพาะอย่างยิ่งกับขนาดคีย์ปกติ เนื่องจากความยากลำบากของปัญหาพื้นฐาน ด้วยเหตุนี้ ระบบเข้ารหัสคีย์สาธารณะจึงมักเป็นระบบเข้ารหัสแบบไฮบริด ซึ่งข้อความจะถูกเข้ารหัสด้วยอัลกอริธึมคีย์สมมาตรคุณภาพสูงที่รวดเร็วและรวดเร็ว ในขณะที่คีย์สมมาตรที่เกี่ยวข้องจะถูกส่งไปพร้อมกับข้อความ แต่เข้ารหัสด้วยอัลกอริธึมคีย์สาธารณะ โครงร่างลายเซ็นแบบไฮบริด ซึ่งใช้ฟังก์ชันแฮชเข้ารหัสและมีเพียงแฮชที่เป็นผลลัพธ์เท่านั้นที่มีการเซ็นชื่อแบบดิจิทัล
ฟังก์ชันแฮชในการเข้ารหัส
ฟังก์ชันแฮชเข้ารหัสเป็นอัลกอริธึมการเข้ารหัสที่สร้างและใช้คีย์เฉพาะเพื่อเข้ารหัสข้อมูลสำหรับการเข้ารหัสแบบสมมาตรหรือไม่สมมาตร และถือได้ว่าเป็นคีย์ พวกเขารับข้อความที่มีความยาวเท่าใดก็ได้เป็นอินพุตและเอาต์พุตแฮชขนาดเล็กที่มีความยาวคงที่ซึ่งสามารถใช้ในลายเซ็นดิจิทัลได้ เป็นต้น ผู้โจมตีไม่สามารถค้นหาข้อความสองข้อความที่สร้างแฮชเดียวกันได้โดยใช้อัลกอริธึมแฮชที่ดี MD4 เป็นฟังก์ชันแฮชที่ใช้กันอย่างแพร่หลาย แต่ตอนนี้เกิดข้อผิดพลาด MD5 ซึ่งเป็นรูปแบบที่ปรับปรุงใหม่ของ MD4 ก็มีการใช้กันอย่างแพร่หลายเช่นกัน แต่ในทางปฏิบัติแล้วใช้งานไม่ได้ ชุด Secure Hash Algorithm ของอัลกอริทึมแฮชที่คล้ายกับ MD5 ได้รับการพัฒนาโดย US National Security Agency: หน่วยงานด้านมาตรฐานของสหรัฐฯ ตัดสินใจว่า "รอบคอบ" จากมุมมองด้านความปลอดภัยเพื่อพัฒนามาตรฐานใหม่เพื่อ "ปรับปรุงความแข็งแกร่งของอัลกอริธึมแฮชโดยรวมของ NIST อย่างมีนัยสำคัญ ชุดเครื่องมือ” SHA-1 ถูกใช้อย่างแพร่หลายและมีความปลอดภัยมากกว่า MD5 แต่ผู้เข้ารหัสลับได้ระบุการโจมตีของมัน ตระกูล SHA-2 พัฒนาขึ้นใน SHA-1 แต่เสี่ยงต่อการปะทะกันในปี 2011 และตระกูล SHA-2 พัฒนาขึ้นใน SHA-1 แต่มีความเสี่ยงที่จะเกิดการปะทะกัน ด้วยเหตุนี้ ภายในปี 2012 จึงมีการแข่งขันการออกแบบฟังก์ชันแฮชขึ้นเพื่อเลือกมาตรฐานระดับชาติใหม่ของสหรัฐฯ หรือที่เรียกว่า SHA-3 การแข่งขันได้ข้อสรุปเมื่อวันที่ 2 ตุลาคม 2012 เมื่อสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) ประกาศว่า Keccak เป็นอัลกอริทึมแฮช SHA-3 ใหม่ ฟังก์ชันแฮชเข้ารหัส ซึ่งแตกต่างจากบล็อกแบบย้อนกลับและการเข้ารหัสสตรีม ให้เอาต์พุตที่แฮชซึ่งไม่สามารถใช้กู้คืนข้อมูลอินพุตดั้งเดิมได้ ฟังก์ชันแฮชเข้ารหัสจะใช้เพื่อตรวจสอบความถูกต้องของข้อมูลที่ได้รับจากแหล่งที่ไม่น่าไว้วางใจหรือเพื่อเพิ่มระดับการป้องกันเพิ่มเติม
พื้นฐานการเข้ารหัสและการเข้ารหัสลับระบบ
งานเชิงทฤษฎีของการเข้ารหัสส่วนใหญ่มุ่งเน้นไปที่การเข้ารหัสขั้นต้น—อัลกอริทึมที่มีคุณสมบัติการเข้ารหัสพื้นฐาน—และความเกี่ยวข้องกับความท้าทายในการเข้ารหัสอื่น ๆ อย่างไร พื้นฐานพื้นฐานเหล่านี้จะใช้เพื่อสร้างเครื่องมือเข้ารหัสที่ซับซ้อนมากขึ้น พื้นฐานเหล่านี้มีคุณสมบัติพื้นฐานที่ใช้ในการสร้างเครื่องมือที่ซับซ้อนมากขึ้นที่เรียกว่าระบบเข้ารหัสลับหรือโปรโตคอลการเข้ารหัสที่รับรองคุณสมบัติความปลอดภัยระดับสูงอย่างน้อยหนึ่งรายการ ในทางกลับกัน ขอบเขตระหว่างการเข้ารหัสดั้งเดิมกับระบบเข้ารหัสนั้นเป็นสิ่งที่ไม่แน่นอน ตัวอย่างเช่น อัลกอริธึม RSA บางครั้งถือว่าเป็นระบบเข้ารหัสลับและบางครั้งก็เป็นแบบพื้นฐาน ฟังก์ชันสุ่มเทียม ฟังก์ชันทางเดียว และฟังก์ชันพื้นฐานการเข้ารหัสอื่นๆ เป็นตัวอย่างทั่วไป
ระบบเข้ารหัสลับหรือระบบเข้ารหัสถูกสร้างขึ้นโดยการรวมการเข้ารหัสดั้งเดิมตั้งแต่หนึ่งรายการขึ้นไปเพื่อสร้างอัลกอริธึมที่ซับซ้อนยิ่งขึ้น Cryptosystems (เช่น การเข้ารหัส El-Gamal) มีไว้เพื่อให้การทำงานเฉพาะ (เช่น การเข้ารหัสคีย์สาธารณะ) ในขณะที่รับรองคุณภาพความปลอดภัยบางอย่าง (เช่น การรักษาความปลอดภัย CPA การโจมตีแบบธรรมดาของ Oracle รุ่นที่เลือก) เพื่อสนับสนุนคุณภาพความปลอดภัยของระบบ ระบบเข้ารหัสจะใช้คุณสมบัติของการเข้ารหัสลับพื้นฐาน ระบบเข้ารหัสลับที่ซับซ้อนสามารถสร้างได้จากการรวมกันของระบบเข้ารหัสลับพื้นฐานจำนวนมาก เนื่องจากความแตกต่างระหว่างระบบดั้งเดิมและสกุลเงินดิจิตอลนั้นค่อนข้างจะเป็นไปตามอำเภอใจ ในหลายกรณี โครงสร้างของระบบการเข้ารหัสลับประกอบด้วยการสื่อสารไปมาระหว่างสองฝ่ายขึ้นไปในอวกาศ (เช่น ระหว่างผู้ส่งและผู้รับข้อความที่ปลอดภัย) หรือข้ามเวลา (เช่น ระหว่างผู้ส่งและผู้รับข้อความที่ปลอดภัย) (เช่น ข้อมูลสำรองที่มีการป้องกันด้วยการเข้ารหัสลับ)
หากต้องการทราบรายละเอียดเกี่ยวกับหลักสูตรการรับรอง คุณสามารถขยายและวิเคราะห์ตารางด้านล่างได้
EITC/IS/CCF Classical Cryptography Fundamentals Certification Curriculum อ้างอิงเนื้อหาการสอนแบบเปิดในรูปแบบวิดีโอ กระบวนการเรียนรู้แบ่งออกเป็นโครงสร้างทีละขั้นตอน (โปรแกรม -> บทเรียน -> หัวข้อ) ครอบคลุมส่วนต่างๆ ของหลักสูตรที่เกี่ยวข้อง นอกจากนี้ยังมีการให้คำปรึกษาอย่างไม่จำกัดกับผู้เชี่ยวชาญด้านโดเมนอีกด้วย
สำหรับรายละเอียดการตรวจสอบขั้นตอนการรับรอง มันทำงานอย่างไร.
บันทึกการบรรยายหลัก
ทำความเข้าใจ Cryptography โดย Christof Paar และ Jan Pelzl หลักสูตรออนไลน์ในรูปแบบ PDF Slides
https://www.crypto-textbook.com/slides.php
ทำความเข้าใจการเข้ารหัสโดย Christof Paar และ Jan Pelzl หลักสูตรออนไลน์ในรูปแบบของวิดีโอ
https://www.crypto-textbook.com/movies.php
การอ้างอิงหนังสือการเข้ารหัสคลาสสิกหลัก
ทำความเข้าใจกับการเข้ารหัสโดย Christof Paar และ Jan Pezl
https://www.crypto-textbook.com/index.php
การอ้างอิงหนังสือการเข้ารหัสคลาสสิกที่ใช้เพิ่มเติม
คู่มือการเข้ารหัสประยุกต์โดย A. Menezes, P. van Oorschot และ S. Vanstone:
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
ดาวน์โหลดเอกสารเตรียมการเรียนรู้ด้วยตนเองแบบออฟไลน์ฉบับสมบูรณ์สำหรับโปรแกรม EITC/IS/CCF Classical Cryptography Fundamentals ในรูปแบบไฟล์ PDF