EITC/IS/ACC Advanced Classical Cryptography เป็นโปรแกรม European IT Certification ที่ยกระดับความเชี่ยวชาญในการเข้ารหัสแบบคลาสสิก โดยเน้นที่การเข้ารหัสคีย์สาธารณะเป็นหลัก โดยมีการแนะนำการเข้ารหัสคีย์สาธารณะที่ใช้งานได้จริง ตลอดจนลายเซ็นดิจิทัล โครงสร้างพื้นฐานของคีย์สาธารณะและ ใบรับรองความปลอดภัยที่ใช้กันอย่างแพร่หลายในอินเทอร์เน็ต
หลักสูตรของ EITC/IS/ACC Advanced Classical Cryptography มุ่งเน้นไปที่การเข้ารหัสคีย์สาธารณะ (ไม่สมมาตร) เริ่มต้นด้วยการแนะนำ Diffie-Hellman Key Exchange และปัญหาการบันทึกที่ไม่ต่อเนื่อง (รวมถึงลักษณะทั่วไปของการเข้ารหัส) จากนั้นดำเนินการเข้ารหัส ด้วยปัญหาการบันทึกที่ไม่ต่อเนื่อง ครอบคลุม Elgamal Encryption Scheme, elliptic curve และ Elliptic Curve Cryptography (ECC), ลายเซ็นดิจิทัล (รวมถึงบริการรักษาความปลอดภัยและ Elgamal Digital Signature) ฟังก์ชันแฮช (รวมถึง SHA-1 ที่มีฟังก์ชัน), Message Authentication Codes (รวมถึง MAC และ HMAC) การสร้างคีย์ (รวมถึง Symmetric Key Establishment SKE และ Kerberos) เพื่อสิ้นสุดด้วยการพิจารณาคลาสการโจมตีแบบ man-in-the-middle พร้อมกับใบรับรองการเข้ารหัสและโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) ภายในโครงสร้างต่อไปนี้ ครอบคลุมเนื้อหาการสอนแบบวิดีโอที่ครอบคลุมเพื่อใช้เป็นข้อมูลอ้างอิงสำหรับการรับรอง 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/ACC อ้างอิงเนื้อหาการสอนแบบเปิดในรูปแบบวิดีโอ กระบวนการเรียนรู้แบ่งออกเป็นโครงสร้างทีละขั้นตอน (โปรแกรม -> บทเรียน -> หัวข้อ) ครอบคลุมส่วนต่างๆ ของหลักสูตรที่เกี่ยวข้อง นอกจากนี้ยังมีการให้คำปรึกษาอย่างไม่จำกัดกับผู้เชี่ยวชาญด้านโดเมนอีกด้วย
สำหรับรายละเอียดการตรวจสอบขั้นตอนการรับรอง มันทำงานอย่างไร.
บันทึกการบรรยายหลัก
ทำความเข้าใจ 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
https://notendur.hi.is/pgg/Handbook%20of%20Applied%20Cryptography.pdf
ดาวน์โหลดเอกสารเตรียมการเรียนรู้ด้วยตนเองแบบออฟไลน์ฉบับสมบูรณ์สำหรับโปรแกรม EITC/IS/ACC Advanced Classical Cryptography ในรูปแบบไฟล์ PDF