Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

หลักการของระบบเข้ารหัสคีย์สาธารณะในความปลอดภัยข้อมูล

การเข้ารหัสคีย์สาธารณะกลายเป็นวิธีสำคัญในการให้ความลับ โดยเฉพาะผ่านการแจกจ่ายคีย์ (Key Distribution) ที่ผู้ใช้ต้องการการสื่อสารส่วนตัวแลกเปลี่ยนคีย์เข้ารหัส รวมถึงลายเซ็นดิจิทัลที่ให้ผู้ใช้ลงนามคีย์เพื่อยืนยันตัวตน

แนวคิดการเข้ารหัสคีย์สาธารณะเกิดจากการพยายามแก้ปัญหาสองประการที่ยากที่สุดของการเข้ารหัสแบบสมมาตร:

  1. ปัญหาการแจกจ่ายคีย์ (Key Distribution) — การเข้ารหัสแบบสมมาตรต้องการ: (ก) ผู้สื่อสารสองฝ่ายมีคีย์ร่วมกันแล้ว ซึ่งถูกแจกจ่ายไปอย่างไรอย่างหนึ่ง (ข) ต้องมีศูนย์แจกจ่ายคีย์ (Key Distribution Center)

ระบบคีย์สาธารณะ (Public Key Cryptosystem)

อัลกอริทึมแบบอสมิตรพึ่งพาคีย์หนึ่งสำหรับเข้ารหัส และคีย์อีกอันที่แตกต่างแต่เกี่ยวข้องสำหรับถอดรหัส อัลกอริทึมเหล่านี้มีลักษณะเฉพาะ:

  • คำนวณไม่ได้ (Computationally Infeasible) ที่จะหาคีย์ถอดรหัสจากข้อมูลเพียงอัลกอริทึมและคีย์เข้ารหัส
  • มีคีย์สองคีย์ที่เกี่ยวข้อง หนึ่งใช้เข้ารหัส อีกหนึ่งใช้ถอดรหัส

องค์ประกอบของระบบเข้ารหัสคีย์สาธารณะ

  • Plaintext (ข้อความต้นฉบับ) — ข้อความอ่านเข้าใจที่นำเข้าเป็นอินพุต
  • Encryption Algorithm (อัลกอริทึมเข้ารหัส) — ทำการแปลงต่างๆ กับ Plaintext
  • Public and Private Keys (คีย์สาธารณะและส่วนตัว) — ชุดคีย์ที่เลือกมาเพื่อถ้าหนึ่งเข้ารหัสได้ อีกหนึ่งถอดรหัสได้
  • Ciphertext (ข้อความเข้ารหัส) — ข้อความสับสนที่เป็นเอาต์พุต ขึ้นกับ Plaintext และคีย์ สำหรับข้อความเดียวกัน คีย์สองคีย์จะสร้าง Ciphertext ที่ต่างกัน
  • Decryption Algorithm (อัลกอริทึมถอดรหัส) — รับ Ciphertext และคีย์ที่ตรงกัน สร้าง Plaintext เดิมคืน

คีย์ในการเข้ารหัสคีย์สาธารณะมีขนาดใหญ่มาก (512, 1024, 2048 บิตขึ้นไป) จดจำไม่ได้ จึงเก็บในอุปกรณ์ USB Tokens หรือ HSM

ปัญหาหลักและบทบาท

ปัญหาหลักคือ โจมตีอาจปลอมตัวเป็นผู้ใช้ hợp法 แทนที่คีย์สาธารณะด้วยคีย์ปลอมในไดเรกทอรีสาธารณะ หรือสกัด/เปลี่ยนแปลงคีย์

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

ระบบอสมิตรต้องจัดการบริการความปลอดภัย: ความลับ, การยืนยันตัวตน, ความสมบูรณ์, การปฏิเสธไม่ได้ คีย์สาธารณะรองรับ Non-repudiation และ Authentication ส่วน Confidentiality และ Integrity เป็นส่วนของกระบวนการเข้ารหัสโดยคีย์ส่วนตัวของผู้ใช้