Cryptosystems
cryptosystem คือการนำเทคนิคการเข้ารหัสและโครงสร้างพื้นฐานที่มาพร้อมกันเพื่อให้บริการด้านความปลอดภัยของข้อมูล cryptosystem เรียกอีกอย่างว่าไฟล์cipher system.
ให้เราพูดถึงรูปแบบง่ายๆของระบบเข้ารหัสที่ให้การรักษาความลับกับข้อมูลที่กำลังส่ง โมเดลพื้นฐานนี้แสดงอยู่ในภาพประกอบด้านล่าง -
ภาพประกอบแสดงผู้ส่งที่ต้องการถ่ายโอนข้อมูลที่ละเอียดอ่อนบางส่วนไปยังผู้รับในลักษณะที่ฝ่ายใดฝ่ายหนึ่งดักฟังหรือดักฟังช่องทางการสื่อสารไม่สามารถดึงข้อมูลได้
วัตถุประสงค์ของการเข้ารหัสอย่างง่ายนี้คือในตอนท้ายของกระบวนการมีเพียงผู้ส่งและผู้รับเท่านั้นที่จะรู้ข้อความธรรมดา
ส่วนประกอบของ Cryptosystem
ส่วนประกอบต่างๆของระบบเข้ารหัสพื้นฐานมีดังนี้ -
Plaintext. เป็นข้อมูลที่ต้องป้องกันระหว่างการส่ง
Encryption Algorithm.เป็นกระบวนการทางคณิตศาสตร์ที่สร้าง ciphertext สำหรับข้อความธรรมดาและคีย์เข้ารหัสใด ๆ ที่กำหนด เป็นอัลกอริทึมการเข้ารหัสที่ใช้ข้อความธรรมดาและคีย์เข้ารหัสเป็นอินพุตและสร้างรหัสลับ
Ciphertext.เป็นเวอร์ชันที่มีสัญญาณรบกวนของข้อความธรรมดาที่สร้างโดยอัลกอริธึมการเข้ารหัสโดยใช้คีย์เข้ารหัสเฉพาะ ข้อความเข้ารหัสไม่ได้รับการปกป้อง กระแสในช่องสาธารณะ ทุกคนที่เข้าถึงช่องทางการสื่อสารสามารถดักฟังหรือบุกรุกได้
Decryption Algorithm,เป็นกระบวนการทางคณิตศาสตร์ที่สร้างข้อความธรรมดาที่ไม่ซ้ำกันสำหรับรหัสลับและรหัสถอดรหัสใด ๆ ที่กำหนด เป็นอัลกอริทึมการเข้ารหัสที่ใช้การเข้ารหัสและคีย์การถอดรหัสเป็นอินพุตและส่งออกข้อความธรรมดา อัลกอริธึมการถอดรหัสจะย้อนกลับอัลกอริทึมการเข้ารหัสเป็นหลักดังนั้นจึงมีความเกี่ยวข้องอย่างใกล้ชิดกับมัน
Encryption Key.เป็นค่าที่ผู้ส่งทราบ ผู้ส่งป้อนคีย์การเข้ารหัสลงในอัลกอริธึมการเข้ารหัสพร้อมกับข้อความธรรมดาเพื่อคำนวณการเข้ารหัส
Decryption Key.มันเป็นค่าที่คนรับรู้ คีย์การถอดรหัสเกี่ยวข้องกับคีย์การเข้ารหัส แต่อาจไม่เหมือนกันเสมอไป ผู้รับจะป้อนคีย์การถอดรหัสลงในอัลกอริทึมการถอดรหัสพร้อมกับข้อความเข้ารหัสเพื่อคำนวณข้อความธรรมดา
สำหรับระบบเข้ารหัสที่กำหนดชุดของคีย์การถอดรหัสที่เป็นไปได้ทั้งหมดเรียกว่าไฟล์ key space.
อัน interceptor(ผู้โจมตี) เป็นหน่วยงานที่ไม่ได้รับอนุญาตซึ่งพยายามกำหนดข้อความธรรมดา เขาสามารถเห็นไซเฟอร์เท็กซ์และอาจรู้อัลกอริทึมการถอดรหัส อย่างไรก็ตามเขาต้องไม่รู้จักคีย์การถอดรหัส
ประเภทของ Cryptosystems
โดยพื้นฐานแล้ว cryptosystems มีอยู่สองประเภทตามลักษณะการเข้ารหัส - ถอดรหัสในระบบ -
- การเข้ารหัสคีย์สมมาตร
- การเข้ารหัสคีย์แบบไม่สมมาตร
ความแตกต่างหลักระหว่างระบบเข้ารหัสเหล่านี้คือความสัมพันธ์ระหว่างการเข้ารหัสและคีย์การถอดรหัส ตามหลักเหตุผลในระบบเข้ารหัสใด ๆ คีย์ทั้งสองมีความสัมพันธ์กันอย่างใกล้ชิด แทบจะเป็นไปไม่ได้เลยที่จะถอดรหัสรหัสลับด้วยคีย์ที่ไม่เกี่ยวข้องกับคีย์เข้ารหัส
การเข้ารหัสคีย์สมมาตร
กระบวนการเข้ารหัสที่ same keys are used for encrypting and decrypting ข้อมูลนี้เรียกว่า Symmetric Key Encryption
การศึกษาระบบเข้ารหัสแบบสมมาตรเรียกว่า symmetric cryptography. ระบบเข้ารหัสแบบสมมาตรบางครั้งเรียกอีกอย่างว่าsecret key cryptosystems.
ตัวอย่างวิธีการเข้ารหัสคีย์สมมาตรที่รู้จักกันดี ได้แก่ - Digital Encryption Standard (DES), Triple-DES (3DES), IDEA และ BLOWFISH
ก่อนปี 1970 ระบบเข้ารหัสทั้งหมดใช้การเข้ารหัสคีย์แบบสมมาตร แม้ในปัจจุบันความเกี่ยวข้องของมันยังสูงมากและมีการใช้อย่างกว้างขวางในหลาย ๆ ระบบเข้ารหัส ไม่น่าเป็นไปได้มากที่การเข้ารหัสนี้จะจางหายไปเนื่องจากมีข้อได้เปรียบเหนือการเข้ารหัสคีย์แบบไม่สมมาตร
คุณสมบัติเด่นของระบบเข้ารหัสที่ใช้การเข้ารหัสคีย์สมมาตรคือ -
บุคคลที่ใช้การเข้ารหัสคีย์แบบสมมาตรจะต้องแชร์คีย์ร่วมก่อนที่จะแลกเปลี่ยนข้อมูล
ขอแนะนำให้เปลี่ยนคีย์เป็นประจำเพื่อป้องกันการโจมตีระบบ
ต้องมีกลไกที่แข็งแกร่งเพื่อแลกเปลี่ยนกุญแจระหว่างฝ่ายที่สื่อสารกัน เนื่องจากต้องเปลี่ยนกุญแจเป็นประจำกลไกนี้จึงมีราคาแพงและยุ่งยาก
ในกลุ่มของ n คนในการเปิดใช้งานการสื่อสารสองฝ่ายระหว่างบุคคลสองคนจำนวนคีย์ที่จำเป็นสำหรับกลุ่มคือ n × (n – 1)/2.
ความยาวของคีย์ (จำนวนบิต) ในการเข้ารหัสนี้มีขนาดเล็กกว่าและด้วยเหตุนี้กระบวนการเข้ารหัส - ถอดรหัสจึงเร็วกว่าการเข้ารหัสคีย์แบบไม่สมมาตร
พลังในการประมวลผลของระบบคอมพิวเตอร์ที่จำเป็นในการเรียกใช้อัลกอริทึมแบบสมมาตรนั้นน้อยกว่า
ความท้าทายของ Symmetric Key Cryptosystem
มีความท้าทายสองประการในการใช้การเข้ารหัสคีย์สมมาตร
Key establishment- ก่อนการสื่อสารใด ๆ ทั้งผู้ส่งและผู้รับจำเป็นต้องตกลงกันเกี่ยวกับคีย์สมมาตรที่เป็นความลับ ต้องมีกลไกการสร้างคีย์ที่ปลอดภัย
Trust Issue- เนื่องจากผู้ส่งและผู้รับใช้คีย์สมมาตรเดียวกันจึงมีข้อกำหนดโดยปริยายที่ผู้ส่งและผู้รับ "เชื่อใจ" ซึ่งกันและกัน ตัวอย่างเช่นอาจเกิดขึ้นได้ว่าผู้รับทำกุญแจหายไปให้กับผู้โจมตีและผู้ส่งไม่ได้รับแจ้ง
ความท้าทายทั้งสองนี้ยับยั้งการสื่อสารในยุคปัจจุบันอย่างมาก วันนี้ผู้คนจำเป็นต้องแลกเปลี่ยนข้อมูลกับฝ่ายที่ไม่คุ้นเคยและไม่น่าเชื่อถือ ตัวอย่างเช่นการสื่อสารระหว่างผู้ขายและลูกค้าออนไลน์ ข้อ จำกัด เหล่านี้ของการเข้ารหัสคีย์แบบสมมาตรทำให้เกิดรูปแบบการเข้ารหัสคีย์แบบไม่สมมาตร
การเข้ารหัสคีย์แบบไม่สมมาตร
กระบวนการเข้ารหัสที่ different keys are used for encrypting and decrypting the informationเรียกว่าการเข้ารหัสคีย์แบบไม่สมมาตร แม้ว่าคีย์จะแตกต่างกัน แต่ก็มีความสัมพันธ์กันทางคณิตศาสตร์ดังนั้นการดึงข้อความธรรมดาโดยการถอดรหัสรหัสลับจึงเป็นไปได้ กระบวนการแสดงอยู่ในภาพประกอบต่อไปนี้ -
ไม่สมมาตรคีย์เข้ารหัสถูกประดิษฐ์ขึ้นใน 20 วันศตวรรษที่จะมามากกว่าความจำเป็นของการคีย์ลับก่อนที่ใช้ร่วมกันระหว่างบุคคลการสื่อสาร คุณสมบัติเด่นของรูปแบบการเข้ารหัสนี้มีดังนี้ -
ผู้ใช้ทุกคนในระบบนี้จำเป็นต้องมีคีย์ที่ไม่เหมือนกันสองคู่ private key และ public key. คีย์เหล่านี้มีความเกี่ยวข้องทางคณิตศาสตร์ - เมื่อใช้คีย์หนึ่งในการเข้ารหัสอีกคีย์หนึ่งสามารถถอดรหัสไซเฟอร์เท็กซ์กลับไปเป็นข้อความธรรมดาดั้งเดิมได้
ต้องใส่คีย์สาธารณะในที่เก็บสาธารณะและคีย์ส่วนตัวเป็นความลับที่มีการป้องกันอย่างดี ดังนั้นรูปแบบของการเข้ารหัสนี้จึงเรียกอีกอย่างว่าPublic Key Encryption.
แม้ว่าคีย์สาธารณะและคีย์ส่วนตัวของผู้ใช้จะมีความเกี่ยวข้องกัน แต่ก็ไม่สามารถคำนวณได้จากที่อื่น นี่คือจุดแข็งของโครงการนี้
เมื่อHost1ต้องการส่งข้อมูลไปยังHost2เขาจะได้รับคีย์สาธารณะของHost2จากที่เก็บเข้ารหัสข้อมูลและส่ง
Host2ใช้คีย์ส่วนตัวของเขาเพื่อแยกข้อความธรรมดา
ความยาวของคีย์ (จำนวนบิต) ในการเข้ารหัสนี้มีขนาดใหญ่และด้วยเหตุนี้กระบวนการถอดรหัสการเข้ารหัสจึงช้ากว่าการเข้ารหัสคีย์แบบสมมาตร
พลังการประมวลผลของระบบคอมพิวเตอร์ที่จำเป็นในการเรียกใช้อัลกอริทึมแบบไม่สมมาตรนั้นสูงกว่า
ระบบนิเวศแบบสมมาตรเป็นแนวคิดตามธรรมชาติ ในทางตรงกันข้ามระบบเข้ารหัสคีย์สาธารณะนั้นค่อนข้างยากที่จะเข้าใจ
คุณอาจคิดว่าคีย์เข้ารหัสและคีย์ถอดรหัสมีความเกี่ยวข้องกันได้อย่างไร แต่ก็เป็นไปไม่ได้ที่จะระบุคีย์การถอดรหัสจากคีย์เข้ารหัส คำตอบอยู่ในแนวคิดทางคณิตศาสตร์ เป็นไปได้ที่จะออกแบบระบบเข้ารหัสที่คีย์มีคุณสมบัตินี้ แนวคิดของการเข้ารหัสคีย์สาธารณะค่อนข้างใหม่ มีอัลกอริธึมคีย์สาธารณะที่รู้จักน้อยกว่าอัลกอริทึมแบบสมมาตร
ความท้าทายของ Public Key Cryptosystem
ระบบเข้ารหัสคีย์สาธารณะมีความท้าทายที่สำคัญอย่างหนึ่งนั่นคือผู้ใช้ต้องเชื่อมั่นว่าคีย์สาธารณะที่เขาใช้ในการสื่อสารกับบุคคลนั้นเป็นคีย์สาธารณะของบุคคลนั้นจริงๆและไม่ได้ถูกปลอมแปลงโดยบุคคลที่สามที่เป็นอันตราย
โดยปกติจะทำได้ผ่าน Public Key Infrastructure (PKI) ซึ่งประกอบด้วยบุคคลที่สามที่เชื่อถือได้ บุคคลที่สามจัดการและรับรองความถูกต้องของกุญแจสาธารณะอย่างปลอดภัย เมื่อบุคคลที่สามได้รับการร้องขอให้จัดหาคีย์สาธารณะสำหรับบุคคลที่สื่อสาร X บุคคลเหล่านั้นจะได้รับความไว้วางใจให้ระบุคีย์สาธารณะที่ถูกต้อง
บุคคลที่สามพึงพอใจในตัวเองเกี่ยวกับตัวตนของผู้ใช้โดยขั้นตอนการยืนยันการรับรองเอกสารหรือกระบวนการอื่น ๆ - X นั้นเป็น X เพียงหนึ่งเดียวหรือไม่ซ้ำกันทั่วโลกวิธีการทั่วไปในการทำให้คีย์สาธารณะที่ได้รับการยืนยันพร้อมใช้งานคือการฝัง ในใบรับรองซึ่งลงนามแบบดิจิทัลโดยบุคคลที่สามที่เชื่อถือได้
ความสัมพันธ์ระหว่างรูปแบบการเข้ารหัส
สรุปคุณสมบัติหลักพื้นฐานของระบบเข้ารหัสสองประเภทได้รับด้านล่าง -
Symmetric Cryptosystems | ระบบเข้ารหัสคีย์สาธารณะ | |
---|---|---|
Relation between Keys | เหมือนกัน | แตกต่างกัน แต่เกี่ยวข้องทางคณิตศาสตร์ |
คีย์การเข้ารหัส | สมมาตร | สาธารณะ |
คีย์ถอดรหัส | สมมาตร | เอกชน |
เนื่องจากข้อดีและข้อเสียของทั้งสองระบบจึงมักใช้คีย์สมมาตรและระบบเข้ารหัสคีย์สาธารณะร่วมกันในระบบรักษาความปลอดภัยข้อมูลที่ใช้งานได้จริง
หลักการของ Kerckhoff สำหรับ Cryptosystem
ใน 19 วันศตวรรษดัตช์ถอดรหัส A. Kerckhoff ที่ตกแต่งด้วยเฟอร์นิเจอร์ต้องการของ cryptosystem ดี Kerckhoff ระบุว่าระบบการเข้ารหัสควรมีความปลอดภัยแม้ว่าทุกอย่างเกี่ยวกับระบบยกเว้นกุญแจจะเป็นความรู้สาธารณะก็ตาม หลักการออกแบบหกประการที่ Kerckhoff กำหนดไว้สำหรับระบบเข้ารหัสคือ -
ระบบเข้ารหัสไม่ควรแตกในทางปฏิบัติหากไม่ใช่ทางคณิตศาสตร์
การล่มสลายของระบบนิเวศในมือของผู้บุกรุกไม่ควรนำไปสู่การประนีประนอมใด ๆ ของระบบเพื่อป้องกันความไม่สะดวกให้กับผู้ใช้
กุญแจสำคัญควรสื่อสารได้ง่ายน่าจดจำและเปลี่ยนแปลงได้
การเข้ารหัสควรส่งผ่านทางโทรเลขซึ่งเป็นช่องทางที่ไม่ปลอดภัย
อุปกรณ์เข้ารหัสและเอกสารควรพกพาได้และใช้งานได้โดยบุคคลเดียว
สุดท้ายนี้จำเป็นที่ระบบจะใช้งานได้ง่ายโดยไม่ต้องใช้ความเครียดทางจิตใจหรือความรู้เกี่ยวกับกฎเกณฑ์ที่ยาวนานในการปฏิบัติตาม
ปัจจุบันกฎข้อที่สองเรียกว่า Kerckhoff principle. มันถูกนำไปใช้ในอัลกอริธึมการเข้ารหัสร่วมสมัยแทบทั้งหมดเช่น DES, AES ฯลฯ อัลกอริทึมสาธารณะเหล่านี้ถือว่ามีความปลอดภัยอย่างทั่วถึง ความปลอดภัยของข้อความที่เข้ารหัสนั้นขึ้นอยู่กับความปลอดภัยของคีย์เข้ารหัสลับเท่านั้น
การเก็บอัลกอริทึมเป็นความลับอาจทำหน้าที่เป็นอุปสรรคสำคัญในการเข้ารหัสลับ อย่างไรก็ตามการเก็บอัลกอริทึมเป็นความลับจะทำได้ก็ต่อเมื่อใช้ในวง จำกัด เท่านั้น
ในยุคปัจจุบันการเข้ารหัสจำเป็นต้องตอบสนองผู้ใช้ที่เชื่อมต่อกับอินเทอร์เน็ต ในกรณีเช่นนี้การใช้อัลกอริทึมลับไม่สามารถทำได้ด้วยเหตุนี้หลักการของ Kerckhoff จึงกลายเป็นแนวทางสำคัญสำหรับการออกแบบอัลกอริทึมในการเข้ารหัสสมัยใหม่