คอมพิวเตอร์ Windows อินเทอร์เน็ต

โปรโตคอลการกระจายคีย์ การจัดการคีย์ การกระจายคีย์ที่เกี่ยวข้องกับศูนย์จำหน่ายคีย์

การจัดการคีย์

นอกจากการเลือกระบบเข้ารหัสที่เหมาะสมกับ IC เฉพาะแล้ว ประเด็นสำคัญคือการจัดการคีย์ ไม่ว่าระบบการเข้ารหัสลับจะซับซ้อนและปลอดภัยเพียงใด มันขึ้นอยู่กับการใช้คีย์ หากเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลระหว่างผู้ใช้สองคนอย่างเป็นความลับ กระบวนการแลกเปลี่ยนคีย์นั้นไม่สำคัญ ถ้าอย่างนั้นในระบบ IS ซึ่งมีจำนวนผู้ใช้หลายสิบและหลายร้อย การจัดการคีย์ก็เป็นปัญหาร้ายแรง

ภายใต้ ข้อมูลสำคัญเป็นที่เข้าใจกันว่าเป็นผลรวมของคีย์ที่ใช้งานอยู่ทั้งหมดใน IS หากไม่มีการควบคุมข้อมูลสำคัญที่เชื่อถือได้เพียงพอ เมื่อเข้าครอบครองแล้ว ผู้โจมตีจะสามารถเข้าถึงข้อมูลทั้งหมดได้อย่างไม่จำกัด

การจัดการคีย์- กระบวนการข้อมูลซึ่งประกอบด้วยสามองค์ประกอบ:

* การสร้างคีย์;

* การสะสมของกุญแจ;

* การกระจายของคีย์

ลองพิจารณาว่าควรใช้งานอย่างไรเพื่อให้มั่นใจในความปลอดภัยของข้อมูลสำคัญใน IS

การสร้างคีย์

ในตอนต้นของการสนทนาเกี่ยวกับวิธีการเข้ารหัส มีการกล่าวกันว่าคุณไม่ควรใช้คีย์ที่ไม่ใช่แบบสุ่มเพื่อให้ง่ายต่อการจดจำ ไอซีที่จริงจังใช้วิธีการพิเศษของฮาร์ดแวร์และซอฟต์แวร์เพื่อสร้างคีย์แบบสุ่ม ตามกฎแล้วจะใช้เซ็นเซอร์ PSC อย่างไรก็ตาม ระดับของการสุ่มรุ่นของพวกเขาควรค่อนข้างสูง เครื่องกำเนิดไฟฟ้าในอุดมคติคืออุปกรณ์ที่ใช้กระบวนการสุ่มแบบ "ธรรมชาติ" ตัวอย่างเช่น ตัวอย่างอนุกรมของการสร้างคีย์โดยอิงตาม เสียงวิทยุสีขาว. วัตถุทางคณิตศาสตร์สุ่มอีกตัวหนึ่งคือตำแหน่งทศนิยมของจำนวนอตรรกยะ เช่น or อีซึ่งคำนวณโดยใช้วิธีทางคณิตศาสตร์มาตรฐาน

ใน IS ที่มีข้อกำหนดด้านความปลอดภัยปานกลาง ซอฟต์แวร์สร้างคีย์เป็นที่ยอมรับได้ ซึ่งคำนวณ PRNG เป็นฟังก์ชันที่ซับซ้อนของเวลาปัจจุบันและ (หรือ) ตัวเลขที่ผู้ใช้ป้อน

การสะสมคีย์

ภายใต้ สะสมกุญแจหมายถึงองค์กรของการจัดเก็บการบัญชีและการกำจัด

เนื่องจากกุญแจเป็นวัตถุที่น่าดึงดูดที่สุดสำหรับผู้โจมตี ซึ่งเปิดทางสู่ข้อมูลลับสำหรับเขา จึงควรให้ความสนใจเป็นพิเศษกับประเด็นเรื่องการสะสมกุญแจ

ไม่ควรเขียนคีย์ลับอย่างชัดเจนบนสื่อที่สามารถอ่านหรือคัดลอกได้

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

ดังนั้น ข้อมูลเกี่ยวกับคีย์ที่ใช้จึงต้องจัดเก็บในรูปแบบที่เข้ารหัส คีย์ที่เข้ารหัสข้อมูลคีย์เรียกว่า มาสเตอร์คีย์. เป็นที่พึงปรารถนาที่ผู้ใช้แต่ละคนจะรู้จักมาสเตอร์คีย์ด้วยใจ และไม่จัดเก็บไว้ในสื่อวัสดุใดๆ

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

ปัญหาในการอัปเดตข้อมูลสำคัญยังเกี่ยวข้องกับองค์ประกอบที่สามของการจัดการคีย์ - การกระจายคีย์

การกระจายคีย์

การกระจายคีย์เป็นกระบวนการที่สำคัญที่สุดในการจัดการคีย์ มีข้อกำหนดสองประการสำหรับเขา:
  1. ประสิทธิภาพและความถูกต้องของการกระจายสินค้า
  2. ความลับของคีย์ที่แจกจ่าย
เมื่อเร็ว ๆ นี้มีการเปลี่ยนแปลงอย่างเห็นได้ชัดต่อการใช้ระบบเข้ารหัสคีย์สาธารณะซึ่งปัญหาในการแจกจ่ายคีย์หายไป อย่างไรก็ตาม การกระจายข้อมูลสำคัญใน IS ต้องการโซลูชันใหม่ที่มีประสิทธิภาพ

การกระจายคีย์ระหว่างผู้ใช้ถูกนำไปใช้โดยสองวิธีที่แตกต่างกัน:

  1. โดยการสร้างศูนย์กระจายสินค้าที่สำคัญอย่างน้อยหนึ่งแห่งข้อเสียของวิธีนี้คือศูนย์กระจายสินค้ารู้ว่าใครและคีย์ใดได้รับมอบหมาย และสิ่งนี้ทำให้คุณสามารถอ่านข้อความทั้งหมดที่หมุนเวียนอยู่ใน IS การล่วงละเมิดที่อาจส่งผลกระทบอย่างมีนัยสำคัญต่อการคุ้มครอง
  2. การแลกเปลี่ยนกุญแจโดยตรงระหว่างผู้ใช้ระบบสารสนเทศ
ในกรณีนี้ ปัญหาคือการรับรองความถูกต้องของอาสาสมัคร

ในทั้งสองกรณี ต้องรับประกันความถูกต้องของเซสชันการสื่อสาร สามารถทำได้สองวิธี:

  1. กลไกการขอ-ตอบกลับซึ่งประกอบด้วยรายการต่อไปนี้ หากผู้ใช้ A ต้องการให้แน่ใจว่าข้อความที่เขาได้รับจาก B ไม่เป็นเท็จ เขาจะรวมองค์ประกอบ (คำขอ) ที่คาดเดาไม่ได้ในข้อความที่ส่งถึง B เมื่อตอบ ผู้ใช้ B ต้องดำเนินการบางอย่างกับองค์ประกอบนี้ (เช่น เพิ่ม 1) ไม่สามารถทำได้ล่วงหน้าเนื่องจากไม่ทราบว่าจะมีหมายเลขสุ่มอะไรในคำขอ หลังจากได้รับการตอบกลับพร้อมผลลัพธ์ของการดำเนินการแล้ว ผู้ใช้ A สามารถมั่นใจได้ว่าเซสชันนั้นเป็นของแท้ ข้อเสียของวิธีนี้คือความเป็นไปได้ในการสร้างรูปแบบที่ซับซ้อนระหว่างคำขอและการตอบกลับ
  2. กลไกการประทับเวลา ("ประทับเวลา")หมายถึงการกำหนดเวลาสำหรับแต่ละข้อความ ในกรณีนี้ ผู้ใช้ IS แต่ละคนสามารถทราบได้ว่าข้อความขาเข้า "เก่า" เพียงใด
ในทั้งสองกรณี ควรใช้การเข้ารหัสเพื่อให้แน่ใจว่าผู้โจมตีไม่ได้ส่งการตอบกลับและการประทับเวลาจะไม่มีการเปลี่ยนแปลง

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

ดังนั้นใน IC จริง เช่น ในระบบการชำระเงินด้วยบัตรเครดิต จึงเป็นกลไกที่สองในการรับรองความถูกต้องและการป้องกันการปลอมแปลงที่ใช้ ช่วงเวลาที่ใช้คือตั้งแต่หนึ่งถึงหลายนาที วิธีการขโมยเงินอิเล็กทรอนิกส์ที่ทราบกันดีจำนวนมากนั้นอาศัย "การผูกขาด" ในช่องว่างนี้ด้วยคำขอถอนเงินที่ผิดพลาด

ระบบเข้ารหัสคีย์สาธารณะสามารถใช้สำหรับการแลกเปลี่ยนคีย์โดยใช้อัลกอริธึม RSA เดียวกัน

แต่อัลกอริธึม Diffie-Hellman กลับกลายเป็นว่ามีประสิทธิภาพมาก ทำให้ผู้ใช้สองคนสามารถแลกเปลี่ยนคีย์ได้โดยไม่ต้องใช้ตัวกลาง ซึ่งสามารถใช้สำหรับการเข้ารหัสแบบสมมาตรได้

อัลกอริธึม Diffie-Hellman

Diffie และ Helman เสนอให้สร้างระบบเข้ารหัสด้วยกุญแจสาธารณะ ฟังก์ชันการยกกำลังแบบไม่ต่อเนื่อง.

ความกลับไม่ได้ของการเปลี่ยนแปลงในกรณีนี้ทำให้แน่ใจได้ด้วยความจริงที่ว่ามันค่อนข้างง่ายในการคำนวณฟังก์ชันเลขชี้กำลังในสนาม Galois จำกัด ซึ่งประกอบด้วย พีองค์ประกอบ ( พี- เป็นจำนวนเฉพาะหรือจำนวนเฉพาะของยกกำลังใดๆ) การคำนวณลอการิทึมในฟิลด์ดังกล่าวเป็นการดำเนินการที่ใช้เวลานานกว่ามาก

ถ้า y= x, 1<x<พี-1 ซึ่งเป็นองค์ประกอบคงที่ของสนาม GF(p), แล้ว x= หล่อ g yข้างต้น GF(p). มี x, มันคำนวณง่าย y. สิ่งนี้จะต้อง 2 ln( x+y) การดำเนินการคูณ

ปัญหาการคำนวณผกผัน xจาก yจะค่อนข้างยาก ถ้า พีถูกเลือกมาถูกต้องเพียงพอ จากนั้นการแตกลอการิทึมจะต้องใช้การคำนวณตามสัดส่วนกับ

ลิตร(p) = exp((ลน พี ln ln พี) 0.5 }

ในการแลกเปลี่ยนข้อมูล ผู้ใช้คนแรกจะสุ่มเลือกหมายเลข x 1 , เท่ากับจำนวนเต็ม 1... พี-หนึ่ง. เขาเก็บหมายเลขนี้เป็นความลับและส่งหมายเลขไปยังผู้ใช้รายอื่น

y 1 = x mod พี

ผู้ใช้คนที่สองทำเช่นเดียวกัน สร้าง x 2 และการคำนวณ y 2 ส่งไปยังผู้ใช้รายแรก เป็นผลให้พวกเขาสามารถคำนวณ k 12 = x 1 x 2 mod พี.

เพื่อที่จะคำนวณ k 12 , ผู้ใช้คนแรกยก y 2 สู่อำนาจ xหนึ่ง . ผู้ใช้คนที่สองทำเช่นเดียวกัน ดังนั้น ผู้ใช้ทั้งสองจึงมีคีย์ร่วมกัน k 12 ซึ่งสามารถใช้ในการเข้ารหัสข้อมูลด้วยอัลกอริธึมทั่วไป ไม่เหมือนกับอัลกอริทึม RSA อัลกอริทึมนี้ไม่อนุญาตให้คุณเข้ารหัสข้อมูลจริง

โดยไม่รู้ตัว x 1 และ x 2 ผู้โจมตีอาจพยายามคำนวณ k 12 รู้แต่ถูกสกัดกั้น y 1 และ y 2. ความเท่าเทียมกันของปัญหานี้กับปัญหาการคำนวณลอการิทึมที่ไม่ต่อเนื่องเป็นคำถามสำคัญและเปิดกว้างในระบบกุญแจสาธารณะ ยังไม่พบวิธีแก้ปัญหาง่ายๆ ดังนั้น ถ้าสำหรับการแปลงโดยตรงของจำนวนเฉพาะ 1,000 บิต 2,000 รายการเป็นสิ่งจำเป็น ดังนั้นสำหรับการแปลงผกผัน (การคำนวณลอการิทึมในฟิลด์ Galois) - จะใช้เวลาประมาณ 10 30 ครั้ง

อย่างที่คุณเห็น ด้วยความเรียบง่ายของอัลกอริธึม Diffie-Hellman ข้อเสียเปรียบที่สองเมื่อเปรียบเทียบกับระบบ RSA คือไม่มีการประเมินความซับซ้อนในการเปิดคีย์ที่ประเมินไว้ต่ำกว่า

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

ตามลักษณะทั่วไปของสิ่งที่กล่าวเกี่ยวกับการแจกจ่ายคีย์ ควรกล่าวต่อไปนี้ งานของการจัดการคีย์ลงมาเพื่อค้นหาโปรโตคอลการแจกจ่ายคีย์ที่จะให้:

* ความเป็นไปได้ของการปฏิเสธจากศูนย์กระจายสินค้าหลัก

* การตรวจสอบร่วมกันของผู้เข้าร่วมเซสชั่น;

* การยืนยันความถูกต้องของเซสชันโดยกลไกการตอบกลับโดยใช้ซอฟต์แวร์หรือฮาร์ดแวร์สำหรับสิ่งนี้

* ใช้จำนวนข้อความขั้นต่ำในการแลกเปลี่ยนคีย์

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

ข้อมูลสำคัญเข้าใจว่าเป็นผลรวมของคีย์ทั้งหมดที่ทำงานในระบบ หากข้อมูลสำคัญไม่ได้รับการจัดการอย่างปลอดภัย เมื่อเข้าครอบครองแล้ว ผู้โจมตีจะสามารถเข้าถึงข้อมูลทั้งหมดได้อย่างไม่จำกัด

การจัดการคีย์เป็นกระบวนการข้อมูลที่มีสามองค์ประกอบ:

    การสร้างคีย์;

    การสะสมของกุญแจ

    การกระจายคีย์

การสร้างคีย์ระบบจริงใช้วิธีฮาร์ดแวร์และซอฟต์แวร์พิเศษเพื่อสร้างคีย์แบบสุ่ม ตามกฎแล้วจะใช้ตัวสร้างตัวเลขสุ่ม อย่างไรก็ตาม ระดับของการสุ่มรุ่นควรสูงเพียงพอ เครื่องกำเนิดไฟฟ้าในอุดมคติคืออุปกรณ์ที่ใช้กระบวนการสุ่มแบบ "ธรรมชาติ" ตัวอย่างเช่น การสร้างคีย์โดยอิงจากสัญญาณรบกวนวิทยุสีขาว วัตถุทางคณิตศาสตร์สุ่มอีกตัวหนึ่งคือตำแหน่งทศนิยมของจำนวนอตรรกยะ เช่น  หรือ e ซึ่งคำนวณโดยใช้วิธีทางคณิตศาสตร์มาตรฐาน

ในระบบที่มีข้อกำหนดด้านความปลอดภัยปานกลาง ซอฟต์แวร์สร้างคีย์เป็นที่ยอมรับ ซึ่งคำนวณตัวเลขสุ่มเป็นฟังก์ชันที่ซับซ้อนของเวลาปัจจุบันและ / หรือตัวเลขที่ผู้ใช้ป้อน

การสะสมคีย์ภายใต้การสะสมของคีย์เป็นที่เข้าใจถึงองค์กรของการจัดเก็บการบัญชีและการลบ

เนื่องจากกุญแจเป็นวัตถุที่น่าดึงดูดที่สุดสำหรับผู้โจมตี ซึ่งเปิดทางให้เขาได้รับข้อมูลที่เป็นความลับ ปัญหาของการสะสมคีย์จึงควรได้รับความสนใจเป็นพิเศษ

ไม่ควรเขียนคีย์ลับอย่างชัดเจนบนสื่อที่สามารถอ่านหรือคัดลอกได้

ในระบบที่ค่อนข้างซับซ้อน ผู้ใช้รายหนึ่งสามารถทำงานกับข้อมูลสำคัญจำนวนมาก และบางครั้งก็จำเป็นต้องจัดระเบียบฐานข้อมูลขนาดเล็กของข้อมูลสำคัญด้วย ฐานข้อมูลดังกล่าวมีหน้าที่ในการยอมรับ จัดเก็บ บันทึก และลบคีย์ที่ใช้

ข้อมูลเกี่ยวกับคีย์ที่ใช้แต่ละรายการจะต้องจัดเก็บในรูปแบบที่เข้ารหัส คีย์ที่เข้ารหัสข้อมูลคีย์เรียกว่ามาสเตอร์คีย์ เป็นที่พึงปรารถนาที่ผู้ใช้แต่ละคนจะรู้จักมาสเตอร์คีย์ด้วยใจและไม่ได้จัดเก็บไว้ในสื่อวัสดุใดๆ เลย

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

ปัญหาในการอัปเดตข้อมูลสำคัญยังเกี่ยวข้องกับองค์ประกอบที่สามของการจัดการคีย์ - การกระจายคีย์

การกระจายคีย์การกระจายคีย์เป็นกระบวนการที่สำคัญที่สุดในการจัดการคีย์ มันมีข้อกำหนดสองประการ:

    ประสิทธิภาพและความถูกต้องของการกระจายสินค้า

    ความลับของคีย์ที่แจกจ่าย

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

การกระจายคีย์ระหว่างผู้ใช้ถูกนำไปใช้โดยสองวิธีที่แตกต่างกัน:

1 โดยการสร้างศูนย์กระจายสินค้าหลักตั้งแต่หนึ่งแห่งขึ้นไป ข้อเสียของวิธีนี้คือศูนย์กระจายสินค้ารู้ว่าใครและคีย์ใดได้รับมอบหมาย วิธีนี้ทำให้คุณสามารถอ่านข้อความทั้งหมดที่หมุนเวียนอยู่ในระบบได้ การล่วงละเมิดที่อาจส่งผลกระทบอย่างมีนัยสำคัญต่อการคุ้มครอง

2 การแลกเปลี่ยนคีย์โดยตรงระหว่างผู้ใช้ระบบ ในกรณีนี้ ปัญหาคือการรับรองความถูกต้องของอาสาสมัคร

ในทั้งสองกรณี ต้องรับประกันความถูกต้องของเซสชันการสื่อสาร สามารถทำได้สองวิธี:

1 กลไกการตอบรับคำขอ ซึ่งมีรายละเอียดดังนี้ หากผู้ใช้ A ต้องการให้แน่ใจว่าข้อความที่เขาได้รับจากผู้ใช้ B ไม่ใช่ข้อความเท็จ เขารวมองค์ประกอบที่คาดเดาไม่ได้ (คำขอ) ไว้ในข้อความที่ส่งถึง B เมื่อตอบ ผู้ใช้ B ต้องดำเนินการบางอย่างกับองค์ประกอบนี้ (เช่น เพิ่ม 1) ไม่สามารถทำได้ล่วงหน้าเนื่องจากไม่ทราบว่าจะมีหมายเลขสุ่มอะไรในคำขอ หลังจากได้รับการตอบกลับพร้อมผลลัพธ์ของการดำเนินการแล้ว ผู้ใช้ A สามารถมั่นใจได้ว่าเซสชันนั้นเป็นของแท้ ข้อเสียของวิธีนี้คือความสามารถในการสร้าง แม้ว่าจะซับซ้อน รูปแบบระหว่างคำขอและการตอบกลับ

2 กลไกการประทับเวลา หมายถึงการกำหนดเวลาสำหรับแต่ละข้อความ ในกรณีนี้ ผู้ใช้แต่ละรายของระบบสามารถทราบได้ว่าข้อความขาเข้า "เก่า" เพียงใด

ในทั้งสองกรณี ควรใช้การเข้ารหัสเพื่อให้แน่ใจว่าไม่มีการตอบกลับโดยผู้โจมตี และไม่มีการเปลี่ยนแปลงการประทับเวลา

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

ระบบเข้ารหัสคีย์สาธารณะสามารถใช้สำหรับการแลกเปลี่ยนคีย์โดยใช้อัลกอริธึม RSA เดียวกัน

แต่อัลกอริธึม Diffie-Hellman กลับกลายเป็นว่ามีประสิทธิภาพมาก ทำให้ผู้ใช้สองคนสามารถแลกเปลี่ยนคีย์ได้โดยไม่ต้องใช้ตัวกลาง ซึ่งสามารถใช้สำหรับการเข้ารหัสแบบสมมาตรได้

อัลกอริธึม Diffie-Hellman Diffie และ Helman เสนอฟังก์ชันการยกกำลังแบบไม่ต่อเนื่องสำหรับการสร้างระบบเข้ารหัสคีย์สาธารณะ

การกลับไม่ได้ของการเปลี่ยนแปลงในกรณีนี้ทำให้แน่ใจได้ด้วยความจริงที่ว่าการคำนวณฟังก์ชันเลขชี้กำลังในสนามกาโลอิสจำกัดที่ประกอบด้วยองค์ประกอบ p นั้นค่อนข้างง่าย ( พีเป็นไพรม์หรือไพรม์ของกำลังใดๆ) การคำนวณลอการิทึมในฟิลด์ดังกล่าวเป็นการดำเนินการที่ใช้เวลานานกว่ามาก

ในการแลกเปลี่ยนข้อมูล ผู้ใช้คนแรกจะสุ่มเลือกหมายเลข x 1 , สมของจำนวนเต็มตั้งแต่ 1 ถึง พี– 1. เขาเก็บหมายเลขนี้เป็นความลับ และส่งหมายเลขไปยังผู้ใช้รายอื่น y 1 = โดยที่ α เป็นองค์ประกอบคงที่ของสนามกาโลส์ GF(พี) ซึ่งร่วมกับ p ถูกแจกจ่ายล่วงหน้าในหมู่ผู้ใช้

ผู้ใช้คนที่สองทำเช่นเดียวกัน สร้าง x 2 และการคำนวณ y 2 ส่งไปยังผู้ใช้รายแรก ส่งผลให้ทั้งคู่สามารถคำนวณรหัสลับที่ใช้ร่วมกันได้ k 12 =
.

เพื่อที่จะคำนวณ k 12 , ผู้ใช้คนแรกยก y 2 สู่อำนาจ x 1 แล้วหาเศษที่เหลือหารด้วย พี. ผู้ใช้คนที่สองทำเช่นเดียวกัน ใช้เฉพาะ y 1 และ x 2. ดังนั้น ผู้ใช้ทั้งสองจึงมีคีย์ร่วมกัน k 12 ซึ่งสามารถใช้ในการเข้ารหัสข้อมูลด้วยอัลกอริธึมทั่วไป อัลกอริธึมนี้ไม่เข้ารหัสข้อมูลจริงไม่เหมือนกับอัลกอริธึม RSA

โดยไม่รู้ตัว x 1 และ x 2 ผู้โจมตีอาจพยายามคำนวณ k 12 รู้แต่ถูกสกัดกั้น y 1 และ y 2. ความเท่าเทียมกันของปัญหานี้กับปัญหาการคำนวณลอการิทึมที่ไม่ต่อเนื่องเป็นคำถามสำคัญและเปิดกว้างในระบบกุญแจสาธารณะ ยังไม่พบวิธีแก้ปัญหาง่ายๆ ดังนั้น หากการแปลงโดยตรงของจำนวนเฉพาะ 1,000 บิตต้องใช้การดำเนินการ 2,000 ครั้ง การแปลงผกผัน (การคำนวณลอการิทึมในฟิลด์ Galois) จะต้องใช้การดำเนินการประมาณ 1,030 ครั้ง

ดังที่เห็นได้ชัดเจน แม้ว่าอัลกอริธึม Diffie-Hellman จะเรียบง่าย แต่ข้อเสียเมื่อเทียบกับระบบ RSA คือไม่มีขอบเขตล่างที่รับประกันความซับซ้อนของการเปิดเผยคีย์

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

การจัดการคีย์

นอกจากการเลือกระบบการเข้ารหัสที่เหมาะสมกับ IC เฉพาะแล้ว การจัดการคีย์ยังเป็นประเด็นที่สำคัญอีกด้วย ความซับซ้อนและปลอดภัยเช่นเดียวกับระบบเข้ารหัสลับนั้นขึ้นอยู่กับการใช้คีย์ หากเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลระหว่างผู้ใช้สองคนอย่างเป็นความลับ กระบวนการแลกเปลี่ยนคีย์นั้นไม่สำคัญ แต่ในระบบ IS ซึ่งจำนวนผู้ใช้เป็นสิบและหลายร้อย การจัดการคีย์เป็นปัญหาร้ายแรง

ข้อมูลสำคัญเป็นที่เข้าใจกันว่าเป็นผลรวมของคีย์ทั้งหมดที่ทำงานอยู่ใน IS หากไม่มีการจัดการข้อมูลสำคัญที่เชื่อถือได้เพียงพอ เมื่อเข้าครอบครองแล้ว ผู้โจมตีจะสามารถเข้าถึงข้อมูลทั้งหมดได้อย่างไม่จำกัด

การจัดการคีย์เป็นกระบวนการข้อมูลที่ประกอบด้วยสามองค์ประกอบ: การสร้างคีย์ การสะสมคีย์ การกระจายคีย์

การสร้างคีย์

อย่าใช้คีย์ที่ไม่ใช่แบบสุ่มเพื่อให้ง่ายต่อการจดจำ ใน IC ที่ร้ายแรง จะใช้วิธีการพิเศษของฮาร์ดแวร์และซอฟต์แวร์สำหรับการสร้างคีย์แบบสุ่ม ระดับของการสุ่มรุ่นควรสูงเพียงพอ เครื่องกำเนิดไฟฟ้าในอุดมคติคืออุปกรณ์ที่ใช้กระบวนการสุ่มตามธรรมชาติ ตัวอย่างเช่น ตัวอย่างอนุกรมของการสร้างคีย์ตามสัญญาณรบกวนวิทยุสีขาวได้ปรากฏขึ้น

การสะสมคีย์

ภายใต้การสะสมของคีย์เป็นที่เข้าใจถึงองค์กรของการจัดเก็บการบัญชีและการลบ ไม่ควรเขียนคีย์ลับอย่างชัดเจนบนสื่อที่สามารถอ่านหรือคัดลอกได้

ใน IS ที่ค่อนข้างซับซ้อน ผู้ใช้รายหนึ่งสามารถทำงานกับข้อมูลสำคัญจำนวนมาก และบางครั้งก็จำเป็นต้องจัดระเบียบฐานข้อมูลขนาดเล็กของข้อมูลสำคัญด้วย ฐานข้อมูลดังกล่าวมีหน้าที่ในการรับ จัดเก็บ ทำบัญชี และลบคีย์ที่ใช้

เงื่อนไขที่สำคัญมากสำหรับความปลอดภัยของข้อมูลคือการอัปเดตข้อมูลสำคัญใน IS เป็นระยะ โดยเฉพาะอย่างยิ่งใน IS ที่รับผิดชอบ ขอแนะนำให้อัปเดตข้อมูลสำคัญทุกวัน

การกระจายคีย์

นี่เป็นกระบวนการที่รับผิดชอบมากที่สุดในการจัดการคีย์ มีข้อกำหนดสองประการ: ประสิทธิภาพและความถูกต้องของการแจกจ่ายและความลับของคีย์ที่แจกจ่าย

การกระจายคีย์ระหว่างผู้ใช้ถูกนำไปใช้โดยสองวิธีที่แตกต่างกัน:

โดยการสร้างศูนย์กระจายสินค้าที่สำคัญอย่างน้อยหนึ่งแห่ง

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

การแลกเปลี่ยนคีย์โดยตรงระหว่างผู้ใช้ระบบข้อมูล

ในกรณีนี้ ปัญหาคือการรับรองความถูกต้องของอาสาสมัคร

ในทั้งสองกรณี ต้องรับประกันความถูกต้องของเซสชันการสื่อสาร

ตามลักษณะทั่วไปของสิ่งที่กล่าวเกี่ยวกับการแจกจ่ายคีย์ ควรกล่าวต่อไปนี้ งานของการจัดการคีย์ลงมาเพื่อค้นหาโปรโตคอลการกระจายคีย์ที่จะให้:

โอกาสในการยกเลิกศูนย์กระจายสินค้าที่สำคัญ

การตรวจสอบร่วมกันของผู้เข้าร่วมเซสชัน

การยืนยันความถูกต้องของเซสชันโดยกลไกการตอบกลับ การใช้ซอฟต์แวร์หรือฮาร์ดแวร์สำหรับสิ่งนี้ การใช้ข้อความจำนวนขั้นต่ำในการแลกเปลี่ยนคีย์

การบรรยาย 6: การจัดการคีย์การเข้ารหัส โปรโตคอลการเข้ารหัส

คำถาม:

1. โปรโตคอลการเข้ารหัส

2. การแจกจ่ายรหัสลับ

3. การจำหน่ายกุญแจสาธารณะ

4. การแจกจ่ายรหัสลับโดยใช้ระบบกุญแจสาธารณะ

1 โปรโตคอลการเข้ารหัส

โปรโตคอลการเข้ารหัส - ชุดของกฎที่เป็นทางการซึ่งอธิบายลำดับของการกระทำที่ดำเนินการโดยสองฝ่ายขึ้นไปเพื่อแก้ปัญหาการปกป้องข้อมูลโดยใช้การเข้ารหัส นั่นคือโปรโตคอลการเข้ารหัสรวมถึงอัลกอริธึมการเข้ารหัสบางส่วน

ในชีวิตประจำวันมีการใช้โปรโตคอลที่ไม่เป็นทางการเกือบทุกที่:

· เมื่อเล่นไพ่;

· เมื่อสั่งสินค้าทางโทรศัพท์

โปรโตคอลเหล่านี้ได้รับการพัฒนามาเป็นเวลานานและทำงานได้อย่างน่าเชื่อถือ

โปรโตคอลคอมพิวเตอร์เป็นอีกเรื่องหนึ่ง เพื่อทำสิ่งที่มนุษย์ทำโดยไม่ต้องคิด คอมพิวเตอร์จำเป็นต้องมีโปรโตคอลที่เป็นทางการ

เพื่ออำนวยความสะดวกในการสาธิตการทำงานของโปรโตคอลมีผู้เข้าร่วมหลายคน:

· อลิซเป็นผู้เข้าร่วมคนแรก

· บ๊อบเป็นผู้เข้าร่วมคนที่สอง

· แครอลเป็นผู้มีส่วนร่วมในระเบียบการไตรภาคี

· Dave เป็นโปรโตคอลสี่ทาง

· อีฟเป็นผู้สกัดกั้นข้อความ

· มัลลอรี่เป็นนักย่องเบา

· Trent เป็นตัวกลางที่เชื่อถือได้

· วอลเตอร์เป็นผู้คุม (ผู้พิทักษ์อลิซและบ็อบ)

· เพ็กกี้เป็นผู้ท้าชิง (พยายามพิสูจน์อะไรบางอย่าง)

· Victor เป็นผู้ตรวจสอบ (ตรวจสอบ Peggy)

แยกแยะ:

· โปรโตคอลในตัวเอง;

· โปรโตคอลกับคนกลาง;

· โปรโตคอลผู้ตัดสิน

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

Alice Bob

โปรโตคอลตัวกลาง

คนกลางเรียกว่า ไม่สนใจบุคคลที่สามซึ่ง ได้รับความไว้วางใจเสร็จสิ้นการดำเนินการของโปรโตคอล “ไม่สนใจ” หมายความว่าคนกลางไม่สนใจทั้งผลของการดำเนินการตามระเบียบการและผู้เข้าร่วมใดๆ ผู้เข้าร่วมทั้งหมดในโปรโตคอลรับรู้คำพูดของผู้ไกล่เกลี่ยว่าเป็นความจริงการกระทำทั้งหมดของเขาได้รับการยอมรับว่าถูกต้อง

ในชีวิตประจำวัน คนกลางสามารถเป็นทนายความ หน่วยงาน ธนาคาร ฯลฯ ด้วยเครือข่ายคอมพิวเตอร์ สถานการณ์จึงซับซ้อนมากขึ้น


โปรโตคอลกับอนุญาโตตุลาการ


อนุญาโตตุลาการเป็นตัวกลางชนิดพิเศษ นี่คือ ไม่สนใจและไว้วางใจด้านที่สาม เขาไม่จำเป็นต้องมีส่วนร่วมในการดำเนินการตามระเบียบการต่าง ๆ ของผู้ไกล่เกลี่ย แต่เฉพาะเมื่อมีความขัดแย้งเกิดขึ้นระหว่างทั้งสองฝ่าย

ผู้พิพากษาเป็นตัวอย่าง

โปรโตคอลคอมพิวเตอร์อนุญาโตตุลาการเป็นที่รู้จักกัน ระเบียบการเหล่านี้อาศัยสมมติฐานที่ว่าคู่สัญญามีความซื่อสัตย์ อย่างไรก็ตาม หากใครสงสัยว่ามีการฉ้อโกง บุคคลที่สามที่เชื่อถือได้สามารถเปิดเผยการฉ้อโกงตามชุดข้อมูลที่มีอยู่ได้ นอกจากนี้ โปรโตคอลอนุญาโตตุลาการที่ดียังช่วยให้ผู้ตัดสินสามารถระบุตัวผู้โจมตีได้ ดังนั้น ระเบียบการอนุญาโตตุลาการ ไม่ป้องกัน, แ ตรวจจับการฉ้อโกง. ในกรณีนี้ ความหลีกเลี่ยงไม่ได้ของการตรวจจับทำหน้าที่เป็นมาตรการป้องกันที่กีดกันผู้โจมตี

องค์กรของการสื่อสารโดยใช้การเข้ารหัสแบบสมมาตร

โมเดลระบบเข้ารหัสสมมาตร:

1. อลิซและบ็อบเลือกระบบเข้ารหัส

2. อลิซและบ็อบเลือกกุญแจ

3. อลิซเข้ารหัสข้อความธรรมดาของข้อความโดยใช้อัลกอริธึมการเข้ารหัสและคีย์

4. อลิซส่งรหัสลับให้บ๊อบ

5. Bob ถอดรหัส ciphertext โดยใช้คีย์และรับข้อความธรรมดา

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

อีฟสามารถดักฟังในขั้นตอนที่ 1 และ 2 ในระบบเข้ารหัสที่ดี ความปลอดภัยขึ้นอยู่กับการรู้รหัส นี่คือเหตุผลที่การจัดการคีย์มีความสำคัญในการเข้ารหัส

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

อลิซหรือบ็อบสามารถมอบสำเนากุญแจให้อีฟได้ เป็นต้น

สรุปเรารายการ ข้อเสียของ cryptosystems สมมาตร:

1. กุญแจมีค่าพอๆ กับข้อความที่เข้ารหัส ดังนั้น ปัญหาการกระจายคีย์.

2. เมื่อได้รับคีย์แล้ว ก็สามารถสร้างข้อความปลอมได้

3. หากผู้ใช้เครือข่ายแต่ละคู่จะใช้คีย์แยกกัน จำนวนคีย์ทั้งหมดเพิ่มขึ้นอย่างรวดเร็วตามจำนวนผู้ใช้.

n ผู้ใช้ - n (n - 1) / 2 - คีย์

ผู้ใช้ 10 คน - 45 คีย์

ผู้ใช้ 100 คน - 4950 คีย์ ฯลฯ

การสร้างการสื่อสารโดยใช้การเข้ารหัสคีย์สาธารณะ

1. Alice และ Bob ตกลงที่จะใช้ระบบเข้ารหัสคีย์สาธารณะ

2. บ็อบส่งกุญแจสาธารณะไปให้อลิซ

3. อลิซเข้ารหัสข้อความของเธอโดยใช้กุญแจสาธารณะของบ๊อบแล้วส่งให้บ๊อบ

4. Bob ถอดรหัสข้อความด้วยคีย์ส่วนตัวของเขา

ดังนั้น ปัญหาของการกระจายคีย์ซึ่งสร้างความเจ็บปวดให้กับระบบการเข้ารหัสที่สมมาตรจึงถูกขจัดออกไป


2. การแจกจ่ายรหัสลับ

ด้วยการเข้ารหัสแบบดั้งเดิม ทั้งสองฝ่ายจะต้องได้รับคีย์เดียวกัน เพื่อความปลอดภัย จำเป็นต้องเปลี่ยนคีย์บ่อยๆ

ดังนั้น ความแข็งแกร่งของระบบการเข้ารหัสแบบสมมาตรขึ้นอยู่กับ ระบบจำหน่ายกุญแจ (เช่น วิธีส่งมอบกุญแจให้ทั้งสองฝ่าย)

สำหรับสองด้าน A และ B การกระจายคีย์สามารถจัดระเบียบได้หลายวิธี:

1. กุญแจถูกเลือกโดยฝ่าย A และส่งให้ B

2. บุคคลที่สามเป็นผู้เลือกกุญแจและส่งมอบให้กับ A และ B

3. ฝ่ายหนึ่งส่งคีย์ใหม่ในรูปแบบเข้ารหัสโดยใช้คีย์เก่า

4. บุคคลที่สาม C ส่งมอบกุญแจไปยัง A และ B ผ่านช่องทางการสื่อสารที่ปลอดภัย เช่น บาง ศูนย์กระจายสินค้าที่สำคัญ (KDC)

รูปแบบการกระจายคีย์ (โปรโตคอล) สามารถ แบบรวมศูนย์และกระจาย(โดยมีตัวกลางและพึ่งตนเองได้)

พิจารณาข้อ 4

การใช้ CRC เกี่ยวข้องกับการจัดลำดับชั้นของคีย์ (อย่างน้อยสองระดับ) การสื่อสารระหว่างผู้ใช้ปลายทางถูกเข้ารหัสโดยใช้คีย์ชั่วคราวที่เรียกว่า คีย์เซสชัน . รหัสเซสชันได้รับจาก CRC ผ่านช่องทางการสื่อสารเดียวกันกับที่ใช้สำหรับส่งข้อมูล คีย์เซสชันถูกส่งในรูปแบบที่เข้ารหัส และจะถูกเข้ารหัสโดยใช้ กุญแจหลัก ทั่วไปสำหรับ CRC และผู้ใช้รายนี้.

ต้องใช้มาสเตอร์คีย์นู๋ (ตามจำนวนผู้ใช้งาน) มีการแจกจ่ายในลักษณะที่ไม่เข้ารหัส (การจัดส่งทางกายภาพไปยังผู้รับ)

สถานการณ์การกระจายคีย์ (สคีมากลาง)

สมมติว่าผู้ใช้ A ตั้งใจที่จะส่งข้อมูลไปยังผู้ใช้ B และต้องใช้คีย์เซสชันแบบใช้ครั้งเดียวเพื่อปกป้องข้อมูล

ผู้ใช้ A มีรหัสลับ Kเอ รู้จักเพียงเขาและ CRC และผู้ใช้ B มี Kข (ก และ ข ข คือคีย์หลัก K– รหัสเซสชันครั้งเดียว)

การแลกเปลี่ยนข้อมูลเกิดขึ้นดังนี้:

1. ผู้ใช้ A ส่งคำขอไปยัง CRC เพื่อรับรหัสเซสชันเพื่อความปลอดภัยในการสื่อสารกับ B

คำขอที่ส่งจะต้องรวมถึง:

- ข้อมูลที่ทำให้สามารถระบุ A และ B (ไอดี เอ , ไอดี บี );

- ตัวระบุบางอย่าง N 1 , ไม่ซ้ำกันสำหรับแต่ละคำขอและเรียกว่า โอกาส. โอกาสอาจเป็นเวลา ตัวนับ ตัวเลขสุ่ม

2. CRC ตอบสนองต่อคำขอของผู้ใช้ A เข้ารหัสคำตอบด้วยคีย์K เอ(หลัก A). ผู้ใช้คนเดียวที่สามารถอ่านคำตอบคือ A (ดังนั้น A แน่ใจว่าข้อความนั้นมาจาก CRC)

ข้อความตอบกลับประกอบด้วยองค์ประกอบต่อไปนี้:

· ออกแบบมาสำหรับ A :

(เพื่อเชื่อมต่อ A กับ B)

- ขอแบบบิดๆ N 1 เพื่อให้ผู้ใช้ A สามารถจับคู่คำตอบกับคำขอได้

ดังนั้น A สามารถตรวจสอบให้แน่ใจว่าคำขอของเขาไม่ได้เปลี่ยนแปลงระหว่างทางไปยัง CRC และโอกาสนี้ไม่อนุญาตให้สร้างความสับสนในคำตอบของคำขอนี้กับคำตอบของคำขอก่อนหน้านี้

· ออกแบบมาสำหรับ B .

คีย์เซสชันแบบใช้ครั้งเดียว Kส.

รหัสผู้ใช้ A -ไอดี เอ (เช่น ที่อยู่เครือข่าย A)

องค์ประกอบทั้งสองได้รับการเข้ารหัสโดยใช้คีย์ KB (มาสเตอร์คีย์ของ CRC และ B) พวกเขาควรจะถูกส่งไปยัง B เพื่อสร้างการเชื่อมต่อและระบุ A.

เอก [ K S ||ขอ|| N 1 || E Kb (เค เอส , ไอดี เอ )]

3. ผู้ใช้ A บันทึกคีย์เซสชันของเขาและส่งข้อมูลไปยังฝ่าย B จาก CMC ที่มีไว้สำหรับ B

ผู้ใช้ B รับ Kส และรู้ว่าข้อมูลที่ได้รับมาจาก CRC (เพราะเข้ารหัสโดย C B ซึ่งรู้จักเฉพาะ B และ CRC)

ดังนั้น A และ B จึงมีคีย์เซสชัน แต่ก่อนที่จะแลกเปลี่ยนข้อมูล ควรทำสิ่งต่อไปนี้:

4. การใช้คีย์เซสชันที่ได้รับ Kผู้ใช้ B ส่งโอกาสใหม่ให้ผู้ใช้ A N2.

5. ด้วยความช่วยเหลือของ K s ผู้ใช้ A ส่งคืนฉ (N 2 ). นี่เป็นสิ่งจำเป็นเพื่อโน้มน้าว B ว่าข้อความที่เขาได้รับในตอนแรกไม่ได้ถูกทำซ้ำโดยผู้โจมตี

ดังนั้น ไม่เพียงแต่การถ่ายโอนคีย์เท่านั้น แต่ยังให้การรับรองความถูกต้องด้วย (ขั้นตอนที่ 4 และ 5)


ไม่จำเป็นต้องกำหนดฟังก์ชันการกระจายคีย์ให้กับ CRC เดียว จะดีกว่าถ้าใช้ลำดับชั้นของ CRC ยิ่งเปลี่ยนคีย์เซสชันบ่อยเท่าไหร่ก็ยิ่งมีความน่าเชื่อถือมากขึ้นเท่านั้น แต่การกระจายคีย์เซสชันจะทำให้การเริ่มเซสชันการแลกเปลี่ยนข้อมูลล่าช้าและเพิ่มภาระงานของเครือข่าย

การใช้ CRC บอกเป็นนัยว่า CRC ควรสร้างแรงบันดาลใจให้เกิดความมั่นใจและได้รับการปกป้องอย่างน่าเชื่อถือจากการบุกรุก ข้อกำหนดเหล่านี้สามารถยกเว้นได้หากใช้รูปแบบการกระจายคีย์แบบกระจายศูนย์ (แบบพอเพียง)

แบบแผนการกระจายคีย์แบบกระจายอำนาจ

คีย์เซสชันสามารถกำหนดได้เป็นผลจากลำดับของการกระทำต่อไปนี้:


1) A ส่งคำขอรับK s + โอกาส N 1 .

2) B ตอบสนองโดยการเข้ารหัสการตอบสนองโดยใช้มาสเตอร์คีย์ทั่วไปของ A และ B E MKม.

3) ผลตอบแทน f (N 2 ) เข้ารหัสด้วย Kส.

3. จำหน่ายกุญแจสาธารณะ

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

1. การกระจายกุญแจสาธารณะ

2. ใช้การเข้ารหัสคีย์สาธารณะเพื่อแจกจ่ายคีย์ลับ

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

1. ประกาศสาธารณะ;

2. ไดเร็กทอรีที่เข้าถึงได้แบบสาธารณะ

4. ใบรับรองกุญแจสาธารณะ

1) ประกาศสาธารณะของกุญแจสาธารณะ (แจกจ่ายไม่มีการควบคุม) .

ฝ่ายใดก็ตามที่เกี่ยวข้องกับการแลกเปลี่ยนข้อมูลสามารถมอบกุญแจสาธารณะให้กับบุคคลอื่นหรือโอนกุญแจผ่านวิธีการสื่อสารไปยังทุกคนได้เลย - การแจกจ่ายกุญแจสาธารณะที่ไม่มีการควบคุม

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

2) ไดเร็กทอรีที่เข้าถึงได้แบบสาธารณะ (แบบแผนส่วนกลาง)

ระดับการรักษาความปลอดภัยที่สูงขึ้นสามารถทำได้โดยใช้แค็ตตาล็อกคีย์สาธารณะแบบไดนามิกที่เปิดเผยต่อสาธารณะ ศูนย์หรือองค์กรที่เชื่อถือได้บางแห่งควรรับผิดชอบในการบำรุงรักษาและแจกจ่ายแค็ตตาล็อกสาธารณะ โครงการดังกล่าวควรมีองค์ประกอบต่อไปนี้:

1. อ็อบเจ็กต์ที่เชื่อถือได้ที่ดูแลไดเร็กทอรีที่มีรายการของแบบฟอร์ม (ชื่อ, กุญแจสาธารณะ) สำหรับสมาชิกแต่ละคน

2. ผู้เข้าร่วมแต่ละคนลงทะเบียนคีย์สาธารณะของเขา การลงทะเบียนดังกล่าวควรเกิดขึ้นที่ลักษณะส่วนบุคคลของผู้เข้าร่วมหรือผ่านช่องทางการสื่อสารที่ปลอดภัย

3. ผู้เข้าร่วมทุกคนสามารถแทนที่คีย์ที่มีอยู่ด้วยคีย์ใหม่ได้ตลอดเวลาโดยใช้วิธีการตรวจสอบสิทธิ์ (บางทีคีย์ส่วนตัวอาจถูกบุกรุก หรือมีการโอนข้อมูลจำนวนมากโดยใช้คีย์นี้แล้ว)

4. แค็ตตาล็อกทั้งหมดหรือการอัปเดตจะถูกเผยแพร่เป็นระยะ

โครงการนี้มีความปลอดภัยมากกว่าการประกาศต่อสาธารณะแต่ละรายการ แต่ก็มีความเสี่ยงเช่นกัน . หากฝ่ายตรงข้ามได้รับกุญแจส่วนตัวของวัตถุที่ได้รับอนุญาตให้รักษาไดเรกทอรีได้สำเร็จ เขา จะสามารถ ออกกุญแจสาธารณะปลอมและดังนั้นจึงพูดในนามของผู้เข้าร่วมในการแลกเปลี่ยนข้อมูลและอ่านข้อความที่มีไว้สำหรับผู้เข้าร่วม ผลลัพธ์เดียวกัน ศัตรูสามารถบรรลุด้วย การเปลี่ยนแปลงรายการที่เก็บอยู่ในไดเร็กทอรี.

การป้องกันที่ดีที่สุดการแจกจ่ายคีย์สาธารณะสามารถทำได้โดยการควบคุมการแจกจ่ายคีย์สาธารณะที่เข้มงวดยิ่งขึ้น

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

(1) ผู้ริเริ่ม A ส่งข้อความพร้อมประทับวันที่/เวลา (โอกาส N 1 ) ไปยังแหล่งที่มาของกุญแจสาธารณะที่เชื่อถือได้พร้อมคำขอรหัสสาธารณะปัจจุบันของผู้เข้าร่วม B

(2) แหล่งที่เชื่อถือได้ตอบกลับด้วยข้อความที่เข้ารหัสโดยใช้กุญแจส่วนตัวของแหล่งที่เชื่อถือได้ KR รับรองความถูกต้อง . ข้อความนี้สามารถถอดรหัสได้โดยผู้ริเริ่ม A โดยใช้กุญแจสาธารณะของแหล่งที่มาที่เชื่อถือได้ ดังนั้นผู้ส่ง ก จึงมั่นใจได้ว่าข้อความนั้นมาจากแหล่งที่เชื่อถือได้ ข้อความนี้ควรมีดังต่อไปนี้:

· กุญแจสาธารณะของผู้เข้าร่วม B , มก.ข ;

· คำขอเดิม เพื่อให้ฝ่าย A สามารถตรวจสอบได้ว่าคำขอไม่ได้รับการแก้ไขระหว่างทางไปยังแหล่งที่เชื่อถือได้


· ประทับวันที่/เวลาเดิม (โอกาส N 1 ) เพื่อให้ผู้ส่ง A สามารถตรวจสอบได้ว่านี่คือคำตอบสำหรับคำขอนี้โดยเฉพาะ

(3) ผู้ริเริ่ม A บันทึกคีย์สาธารณะของฝ่าย B และใช้เพื่อเข้ารหัสข้อความที่ส่งไปยังผู้รับ B ที่มีข้อมูลระบุตัวตนของผู้ส่ง A ( ID A ) และโอกาส N 1

(4) (5) ผู้ตอบ ข ได้รับกุญแจสาธารณะของผู้เข้าร่วม ก จากแหล่งที่เชื่อถือได้ ในลักษณะเดียวกับที่ผู้ส่ง ก ได้รับกุญแจสาธารณะของผู้รับ ข

ถึงเวลานี้ กุญแจสาธารณะได้ถูกส่งไปยังผู้เข้าร่วม A และ B ดังนั้น ว่าตอนนี้ A และ B สามารถเริ่มต้นการแลกเปลี่ยนข้อมูลได้อย่างปลอดภัย. แต่ก่อนหน้านั้น เป็นที่พึงปรารถนาที่จะทำสองต่อไป การดำเนินการเพิ่มเติม.

(6) ผู้ตอบ ข ส่งข้อความถึงผู้ริเริ่ม A เข้ารหัสด้วย KU A และมีโอกาสของผู้ส่ง A ( N 1 ) รวมถึงโอกาสใหม่ที่สร้างโดยผู้เข้าร่วม B (น 2 ). การแสดงตน N 1 ในข้อความ (6) เกลี้ยกล่อมผู้เข้าร่วม A ว่าผู้ส่งข้อความที่ได้รับคือ B

(7) ผู้ริเริ่ม A กลับมา นู๋2 เข้ารหัสด้วยกุญแจสาธารณะของฝ่าย B เพื่อให้ฝ่าย B สามารถตรวจสอบได้ว่าผู้ส่งคำตอบคือ A

ดังนั้น, ต้องใช้ทั้งหมดเจ็ดข้อความ. อย่างไรก็ตาม ส่งข้อความสี่ครั้งแรกไม่บ่อยนักเนื่องจากทั้งสองฝ่ายสามารถจัดเก็บคีย์สาธารณะของกันและกันเพื่อใช้ในภายหลัง ซึ่งมักเรียกว่าการแคช

4) ใบรับรองกุญแจสาธารณะ .

Confelder เสนอแนวทางทางเลือกอื่น มันขึ้นอยู่กับใบรับรอง

ใบรับรองแต่ละใบประกอบด้วย กุญแจสาธารณะและข้อมูลอื่น ๆ ที่สร้างโดยผู้ออกใบรับรองที่เชื่อถือได้และออกให้กับผู้เข้าร่วม

ความต้องการของระบบ :

1. ฝ่ายใดฝ่ายหนึ่งต้องสามารถอ่านใบรับรองเพื่อกำหนดชื่อและคีย์สาธารณะของเจ้าของใบรับรองได้

2. ผู้เข้าร่วมทุกคนควรตรวจสอบได้ว่าใบรับรองนั้นมาจากแหล่งใบรับรองที่มีชื่อเสียงและไม่ใช่ของปลอม

4. เดนนิ่งเพิ่มข้อกำหนดต่อไปนี้ - ผู้เข้าร่วมทุกคนจะต้องสามารถตรวจสอบระยะเวลาที่ถูกต้องของใบรับรองได้


ข้าว. แลกเปลี่ยนใบรับรองคีย์สาธารณะ

ผู้เข้าร่วมแต่ละคนนำไปใช้กับ AIS จัดหากุญแจสาธารณะและขอใบรับรองผ่านแบบฟอร์มการสื่อสารที่ปลอดภัย

AIS ส่งใบรับรอง C A และ C B ที่มี 1) ระยะเวลาที่ถูกต้องของใบรับรอง 2) ตัวระบุของเจ้าของ; 3) กุญแจสาธารณะของเจ้าของใบรับรอง ใบรับรองถูกเข้ารหัสด้วยคีย์ส่วนตัวของแหล่งที่มาที่เชื่อถือได้

และสามารถส่งใบรับรองให้ผู้เข้าร่วมรายใดก็ได้

ผู้รับใช้กุญแจสาธารณะ KU รับรองความถูกต้อง เอไอเอสอ่านใบรับรอง สิ่งนี้ให้การรับประกันว่าใบรับรองมาจากเขา

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. การแจกจ่ายรหัสลับโดยใช้ระบบกุญแจสาธารณะ

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

1) โครงการ Merkle (โปรโตคอลในตัวเอง)

หากผู้ริเริ่ม A ตั้งใจที่จะแลกเปลี่ยนข้อมูลกับผู้ใช้ B จะถือว่ามีขั้นตอนดังต่อไปนี้:


1. ฝ่าย A สร้างคู่คีย์สาธารณะ/ส่วนตัว ( KU A , KR A ) และส่งข้อความถึงปาร์ตี้ B ที่มี KU A และ ID ผู้ส่ง Aไอดี เอ

2. ผู้รับ B สร้างรหัสลับ KS และส่งคีย์นี้ไปยังผู้ริเริ่มข้อความ A ที่เข้ารหัสด้วยกุญแจสาธารณะของผู้ริเริ่ม A

3. ผู้ใช้ A คำนวณดี ครา [ อี กัว [ เค ส ]] เพื่อกู้คืนรหัสลับ เนื่องจากมีเพียงฝ่าย A เท่านั้นที่สามารถถอดรหัสข้อความนี้ได้ มีเพียงฝ่าย A และ B เท่านั้นที่จะทราบค่าเค เอส.

ตอนนี้ทั้งสองฝ่าย A และ B สามารถใช้การสื่อสารที่ได้รับการป้องกันโดยการเข้ารหัสแบบดั้งเดิมด้วยคีย์เซสชันเค ส . เมื่อสิ้นสุดการแลกเปลี่ยนข้อมูล ทั้ง A และ B จะโยนทิ้งเค ส . แม้จะมีความเรียบง่าย แต่โปรโตคอลนี้ก็น่าสนใจมาก

ศักดิ์ศรี: ไม่มีคีย์ก่อนที่การสื่อสารจะเริ่มต้นและไม่มีคีย์เหลืออยู่หลังจากการสื่อสารสิ้นสุดลง ดังนั้นความเสี่ยงของการประนีประนอมจึงน้อยมาก. ในขณะเดียวกัน การสื่อสารก็ได้รับการปกป้องจากการดักฟัง

ข้อบกพร่อง: โปรโตคอลนี้เสี่ยงต่อ การโจมตีเชิงรุก. หากฝ่ายตรงข้าม E มีความสามารถในการเจาะช่องทางการสื่อสาร เขาสามารถประนีประนอมการสื่อสารโดยไม่ถูกตรวจจับได้ด้วยวิธีต่อไปนี้

1. ผู้เข้าร่วม A สร้างคู่คีย์สาธารณะ/ส่วนตัว ( KU A , KR A KU A และรหัสผู้เข้าร่วม Aไอดี เอ

2. ฝ่ายตรงข้าม E สกัดกั้นข้อความ สร้างคู่คีย์สาธารณะ/ส่วนตัวของตัวเอง ( KU E , KR E ) และส่งข้อความไปยังผู้รับ B ที่มี KU E || ไอดี เอ

3. B สร้างรหัสลับ K S และส่ง E KUe [ K S ]

4. ปฏิปักษ์ E สกัดกั้นข้อความนี้และเรียนรู้ K S คำนวณ D KRe [ E KUe [ K S ]]

5. ศัตรู E ส่งข้อความถึงผู้เข้าร่วม A E KU a [ K S ].

เป็นผลให้ทั้งผู้เข้าร่วม A และ B จะรู้เค ส แต่จะไม่ระแวงว่าเค ส ยังรู้จักศัตรูE . ดังนั้น, นี้เรียบง่าย โปรโตคอลมีประโยชน์เฉพาะเมื่อภัยคุกคามที่เป็นไปได้เท่านั้นคือ การสกัดกั้นข้อความแบบพาสซีฟ.

2) การแจกจ่ายคีย์ลับที่มีการรักษาความลับและการรับรองความถูกต้อง

รูปแบบนี้ให้การป้องกันการโจมตีทั้งแบบแอคทีฟและพาสซีฟ ตามสมมติฐาน สมมติว่า A และ B ได้แลกเปลี่ยนกุญแจสาธารณะแล้วโดยใช้รูปแบบใดรูปแบบหนึ่งที่อธิบายไว้ข้างต้น


(1) ฝ่าย A ใช้กุญแจสาธารณะของฝ่าย B เพื่อส่งข้อความที่เข้ารหัสซึ่งระบุตัวตนของฝ่าย A ให้ฝ่าย B ( ID A ) และโอกาส (N 1 ) ใช้เพื่อระบุธุรกรรมนี้โดยเฉพาะ

(2) ผู้ใช้ B ถอดรหัส (1) โดยใช้ KR B . ผู้ใช้ B ส่งข้อความถึงผู้ใช้ A เข้ารหัสด้วย KU A และโอกาศที่ได้รับจากมัน ( N 1) และโอกาสใหม่ (N 2 ). เนื่องจากมีเพียงฝ่าย B เท่านั้นที่สามารถถอดรหัสข้อความ (1) การมีอยู่ N 1 ในข้อความ (2) เกลี้ยกล่อมผู้เข้าร่วม A ว่าฝ่าย B เป็นผู้ตอบ

( 3) ปาร์ตี้ A กลับมา N 2 เข้ารหัสข้อความด้วยกุญแจสาธารณะของฝ่าย B เพื่อให้แน่ใจว่าฝ่าย A เป็นผู้ตอบ

(4) ผู้เข้าร่วม A เลือกรหัสลับเค ส และส่งข้อความถึงผู้เข้าร่วม B M = E KUb [E กระ [K S ]]. การเข้ารหัสข้อความนี้ด้วยกุญแจสาธารณะของ B ช่วยให้มั่นใจว่ามีเพียง B เท่านั้นที่สามารถอ่านได้ และการเข้ารหัสด้วยรหัสส่วนตัวของ A ช่วยให้มั่นใจว่ามีเพียง A เท่านั้นที่ส่งได้

(5) ฝ่าย B คำนวณ B KU a [ E KRb [ K S ]] เพื่อกู้คืนรหัสลับ

เมื่อแลกเปลี่ยนคีย์ลับ โครงการนี้รับประกันทั้งการรักษาความลับและการรับรองความถูกต้อง

3) โครงการไฮบริด (สามระดับ)

แสดงถึงแนวทางไฮบริดที่ใช้กับเมนเฟรม IBM . โครงการนายหน้านี้เกี่ยวข้องกับการมีส่วนร่วมของศูนย์กระจายคีย์ (KDC) โดยที่ผู้ใช้แต่ละคนแชร์คีย์ลับหลักของตนเอง และการแจกจ่ายคีย์เซสชันลับที่เข้ารหัสโดยมาสเตอร์คีย์ รูปแบบการเข้ารหัสคีย์สาธารณะใช้เพื่อแจกจ่ายมาสเตอร์คีย์. วิธีการสามระดับนี้ขึ้นอยู่กับตรรกะต่อไปนี้:

· ความเร็วของขั้นตอน .

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

· ความเข้ากันได้ย้อนหลัง .

โครงการไฮบริดสามารถนำไปใช้อย่างง่ายดายในฐานะส่วนขยายของโครงการที่มีอยู่แล้วซึ่งเกี่ยวข้องกับการใช้ DRC โดยมีการเปลี่ยนแปลงเล็กน้อยในขั้นตอนและซอฟต์แวร์ที่ให้มา

การเพิ่มชั้นของการเข้ารหัสคีย์สาธารณะให้วิธีการที่ปลอดภัยและมีประสิทธิภาพในการกระจายมาสเตอร์คีย์ นี่เป็นข้อได้เปรียบในการกำหนดค่าที่ DSC หนึ่งให้บริการผู้ใช้จำนวนมากโดยอยู่ห่างกันพอสมควร

5. การแลกเปลี่ยนกุญแจ Diffie-Hellman

อัลกอริธึมที่เผยแพร่ครั้งแรกโดยใช้กุญแจสาธารณะ ปรากฏในผลงานของ Diffie และ Hellman ซึ่งมีการกำหนดแนวคิดของการเข้ารหัสคีย์สาธารณะ โดยปกติ อัลกอริทึมนี้เรียกว่าการแลกเปลี่ยนคีย์ Diffie-Hellman. เทคโนโลยีการแลกเปลี่ยนคีย์นี้ถูกนำมาใช้ในผลิตภัณฑ์เชิงพาณิชย์จำนวนหนึ่ง .

วัตถุประสงค์ของโครงการ– มอบโอกาสที่ปลอดภัยให้กับผู้ใช้สองคนในการสื่อสารคีย์ระหว่างกัน เพื่อให้พวกเขาสามารถใช้ในการเข้ารหัสข้อความที่ตามมาได้

ความแข็งแกร่งของการเข้ารหัสของอัลกอริทึม Diffie-Hellman ขึ้นอยู่กับความยากลำบากในการคำนวณลอการิทึมแบบไม่ต่อเนื่อง . อย่างเป็นทางการ ลอการิทึมที่ไม่ต่อเนื่องสามารถกำหนดได้ดังนี้ ขั้นแรก กำหนดรากดั้งเดิมของจำนวนเฉพาะ พี- จำนวน a ยกกำลังซึ่งสร้างจำนวนเต็มทั้งหมดตั้งแต่ 1 ถึง พี-1. ซึ่งหมายความว่าถ้า a เป็นรากดั้งเดิมของจำนวนเฉพาะ p แล้วตัวเลขทั้งหมด

a mod p, a 2 mod p,…, p-1 mod p

ต้องแตกต่างกันและแทนจำนวนเต็มทั้งหมดตั้งแต่ 1 ถึงพี -1 ในการเปลี่ยนแปลงบางอย่าง

การแลกเปลี่ยนคีย์ Diffie-Hellman แสดงไว้ในรูปภาพ ในรูปแบบนี้ มีตัวเลขสองจำนวนที่เปิดให้ทั้งหมด: จำนวนเฉพาะ q และจำนวนเต็ม a ซึ่งเป็นรากดั้งเดิม q . สมมติว่าผู้ใช้ A และ B ตั้งใจที่จะแลกเปลี่ยนคีย์

ผู้ใช้ A เลือกจำนวนเต็มแบบสุ่ม X A< q และคำนวณ Y A =a XA mod q . ในทำนองเดียวกัน ผู้ใช้ B จะเลือกจำนวนเต็มแบบสุ่ม X B< q и вычисляет Y B = a XB mod q . แต่ละด้านเก็บค่าของ X เป็นความลับและสร้างค่า Y อิสระไปอีกด้าน ผู้ใช้ A คำนวณคีย์โดยใช้สูตร K = ( YB ) XA mod q และผู้ใช้ B โดยสูตร K = ( Y A ) X B mod q . เหล่านี้ สูตรการคำนวณสองสูตรให้ผลลัพธ์เหมือนกัน.

ดังนั้นทั้งสองฝ่ายจึงแลกเปลี่ยนกุญแจลับกัน และเนื่องจากในขณะเดียวกัน X A และ X B ก็มีไว้ใช้ส่วนตัวเท่านั้นจึงเก็บเป็นความลับ ศัตรูจะต้องทำงานด้วยเท่านั้น q , ก , X A, X B . ดังนั้นเขาจะต้องคำนวณลอการิทึมแบบไม่ต่อเนื่องเพื่อหาคีย์ ตัวอย่างเช่น เพื่อกำหนดคีย์

หลังจากนั้น เขาจะสามารถคำนวณคีย์ K ได้ในลักษณะเดียวกับที่ผู้ใช้ B ทำ

ความปลอดภัยของการแลกเปลี่ยนคีย์ Diffie-Hellman อาศัยข้อเท็จจริงที่ว่าในขณะที่กำลังโมดูโล จำนวนเฉพาะบางตัวค่อนข้างจะคำนวณได้ง่าย แต่ลอการิทึมแบบแยกส่วนนั้นคำนวณได้ยากมาก สำหรับจำนวนเฉพาะจำนวนมาก ค่าหลังถือเป็นปัญหาที่แก้ไขไม่ได้จริง


ศัตรูรู้ q, ก, ย, ย. ข. ในการพิจารณาคีย์ คุณต้องคำนวณลอการิทึมแบบไม่ต่อเนื่อง

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

ข้อมูลสำคัญเข้าใจว่าเป็นผลรวมของคีย์ทั้งหมดที่ทำงานในระบบ หากข้อมูลสำคัญไม่ได้รับการจัดการอย่างปลอดภัย เมื่อเข้าครอบครองแล้ว ผู้โจมตีจะสามารถเข้าถึงข้อมูลทั้งหมดได้อย่างไม่จำกัด

การจัดการคีย์เป็นกระบวนการข้อมูลที่มีสามองค์ประกอบ:

การสร้างคีย์;

การสะสมของกุญแจ

การกระจายคีย์

การสร้างคีย์ระบบจริงใช้วิธีฮาร์ดแวร์และซอฟต์แวร์พิเศษเพื่อสร้างคีย์แบบสุ่ม ตามกฎแล้วจะใช้ตัวสร้างตัวเลขสุ่ม อย่างไรก็ตาม ระดับของการสุ่มรุ่นควรสูงเพียงพอ เครื่องกำเนิดไฟฟ้าในอุดมคติคืออุปกรณ์ที่ใช้กระบวนการสุ่มแบบ "ธรรมชาติ" ตัวอย่างเช่น การสร้างคีย์โดยอิงจากสัญญาณรบกวนวิทยุสีขาว วัตถุทางคณิตศาสตร์สุ่มอีกตัวหนึ่งคือตำแหน่งทศนิยมของจำนวนอตรรกยะ เช่น p หรือ e ซึ่งคำนวณโดยใช้วิธีทางคณิตศาสตร์มาตรฐาน

ในระบบที่มีข้อกำหนดด้านความปลอดภัยปานกลาง ซอฟต์แวร์สร้างคีย์เป็นที่ยอมรับ ซึ่งคำนวณตัวเลขสุ่มเป็นฟังก์ชันที่ซับซ้อนของเวลาปัจจุบันและ / หรือตัวเลขที่ผู้ใช้ป้อน

การสะสมคีย์ภายใต้การสะสมของคีย์เป็นที่เข้าใจถึงองค์กรของการจัดเก็บการบัญชีและการลบ

เนื่องจากกุญแจเป็นวัตถุที่น่าดึงดูดที่สุดสำหรับผู้โจมตี ซึ่งเปิดทางให้เขาได้รับข้อมูลที่เป็นความลับ ปัญหาของการสะสมคีย์จึงควรได้รับความสนใจเป็นพิเศษ

ไม่ควรเขียนคีย์ลับอย่างชัดเจนบนสื่อที่สามารถอ่านหรือคัดลอกได้

ในระบบที่ค่อนข้างซับซ้อน ผู้ใช้รายหนึ่งสามารถทำงานกับข้อมูลสำคัญจำนวนมาก และบางครั้งก็จำเป็นต้องจัดระเบียบฐานข้อมูลขนาดเล็กของข้อมูลสำคัญด้วย ฐานข้อมูลดังกล่าวมีหน้าที่ในการยอมรับ จัดเก็บ บันทึก และลบคีย์ที่ใช้

ข้อมูลเกี่ยวกับคีย์ที่ใช้แต่ละรายการจะต้องจัดเก็บในรูปแบบที่เข้ารหัส คีย์ที่เข้ารหัสข้อมูลคีย์เรียกว่ามาสเตอร์คีย์ เป็นที่พึงปรารถนาที่ผู้ใช้แต่ละคนจะรู้จักมาสเตอร์คีย์ด้วยใจและไม่ได้จัดเก็บไว้ในสื่อวัสดุใดๆ เลย

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


ปัญหาในการอัปเดตข้อมูลสำคัญยังเกี่ยวข้องกับองค์ประกอบที่สามของการจัดการคีย์ - การกระจายคีย์

การกระจายคีย์การกระจายคีย์เป็นกระบวนการที่สำคัญที่สุดในการจัดการคีย์ มันมีข้อกำหนดสองประการ:

ประสิทธิภาพและความถูกต้องของการกระจายสินค้า

ความลับของคีย์ที่แจกจ่าย

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

การกระจายคีย์ระหว่างผู้ใช้ถูกนำไปใช้โดยสองวิธีที่แตกต่างกัน:

1 โดยการสร้างศูนย์กระจายสินค้าหลักตั้งแต่หนึ่งแห่งขึ้นไป ข้อเสียของวิธีนี้คือศูนย์กระจายสินค้ารู้ว่าใครและคีย์ใดได้รับมอบหมาย วิธีนี้ทำให้คุณสามารถอ่านข้อความทั้งหมดที่หมุนเวียนอยู่ในระบบได้ การล่วงละเมิดที่อาจส่งผลกระทบอย่างมีนัยสำคัญต่อการคุ้มครอง

2 การแลกเปลี่ยนคีย์โดยตรงระหว่างผู้ใช้ระบบ ในกรณีนี้ ปัญหาคือการรับรองความถูกต้องของอาสาสมัคร

ในทั้งสองกรณี ต้องรับประกันความถูกต้องของเซสชันการสื่อสาร สามารถทำได้สองวิธี:

1 กลไกการตอบรับคำขอ ซึ่งมีรายละเอียดดังนี้ หากผู้ใช้ A ต้องการให้แน่ใจว่าข้อความที่เขาได้รับจากผู้ใช้ B ไม่ใช่ข้อความเท็จ เขารวมองค์ประกอบที่คาดเดาไม่ได้ (คำขอ) ไว้ในข้อความที่ส่งถึง B เมื่อตอบ ผู้ใช้ B ต้องดำเนินการบางอย่างกับองค์ประกอบนี้ (เช่น เพิ่ม 1) ไม่สามารถทำได้ล่วงหน้าเนื่องจากไม่ทราบว่าจะมีหมายเลขสุ่มอะไรในคำขอ หลังจากได้รับการตอบกลับพร้อมผลลัพธ์ของการดำเนินการแล้ว ผู้ใช้ A สามารถมั่นใจได้ว่าเซสชันนั้นเป็นของแท้ ข้อเสียของวิธีนี้คือความสามารถในการสร้าง แม้ว่าจะซับซ้อน รูปแบบระหว่างคำขอและการตอบกลับ

2 กลไกการประทับเวลา หมายถึงการกำหนดเวลาสำหรับแต่ละข้อความ ในกรณีนี้ ผู้ใช้แต่ละรายของระบบสามารถทราบได้ว่าข้อความขาเข้า "เก่า" เพียงใด

ในทั้งสองกรณี ควรใช้การเข้ารหัสเพื่อให้แน่ใจว่าไม่มีการตอบกลับโดยผู้โจมตี และไม่มีการเปลี่ยนแปลงการประทับเวลา

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

ระบบเข้ารหัสคีย์สาธารณะสามารถใช้สำหรับการแลกเปลี่ยนคีย์โดยใช้อัลกอริธึม RSA เดียวกัน

แต่อัลกอริธึม Diffie-Hellman กลับกลายเป็นว่ามีประสิทธิภาพมาก ทำให้ผู้ใช้สองคนสามารถแลกเปลี่ยนคีย์ได้โดยไม่ต้องใช้ตัวกลาง ซึ่งสามารถใช้สำหรับการเข้ารหัสแบบสมมาตรได้

อัลกอริธึม Diffie-Hellman Diffie และ Helman เสนอฟังก์ชันการยกกำลังแบบไม่ต่อเนื่องสำหรับการสร้างระบบเข้ารหัสคีย์สาธารณะ

การกลับไม่ได้ของการเปลี่ยนแปลงในกรณีนี้ทำให้แน่ใจได้ด้วยความจริงที่ว่าการคำนวณฟังก์ชันเลขชี้กำลังในสนามกาโลอิสจำกัดที่ประกอบด้วยองค์ประกอบ p นั้นค่อนข้างง่าย ( พีเป็นไพรม์หรือไพรม์ของกำลังใดๆ) การคำนวณลอการิทึมในฟิลด์ดังกล่าวเป็นการดำเนินการที่ใช้เวลานานกว่ามาก

ในการแลกเปลี่ยนข้อมูล ผู้ใช้คนแรกจะสุ่มเลือกหมายเลข x 1 , สมของจำนวนเต็มตั้งแต่ 1 ถึง พี– 1. เขาเก็บหมายเลขนี้เป็นความลับ และส่งหมายเลขไปยังผู้ใช้รายอื่น y 1 = โดยที่ α เป็นองค์ประกอบคงที่ของสนามกาโลส์ GF(พี) ซึ่งร่วมกับ p ถูกแจกจ่ายล่วงหน้าในหมู่ผู้ใช้

ผู้ใช้คนที่สองทำเช่นเดียวกัน สร้าง x 2 และการคำนวณ y 2 ส่งไปยังผู้ใช้รายแรก ส่งผลให้ทั้งคู่สามารถคำนวณรหัสลับที่ใช้ร่วมกันได้ k 12 = .

เพื่อที่จะคำนวณ k 12 , ผู้ใช้คนแรกยก y 2 สู่อำนาจ x 1 แล้วหาเศษที่เหลือหารด้วย พี. ผู้ใช้คนที่สองทำเช่นเดียวกัน ใช้เฉพาะ y 1 และ x 2. ดังนั้น ผู้ใช้ทั้งสองจึงมีคีย์ร่วมกัน k 12 ซึ่งสามารถใช้ในการเข้ารหัสข้อมูลด้วยอัลกอริธึมทั่วไป อัลกอริธึมนี้ไม่เข้ารหัสข้อมูลจริงไม่เหมือนกับอัลกอริธึม RSA

โดยไม่รู้ตัว x 1 และ x 2 ผู้โจมตีอาจพยายามคำนวณ k 12 รู้แต่ถูกสกัดกั้น y 1 และ y 2. ความเท่าเทียมกันของปัญหานี้กับปัญหาการคำนวณลอการิทึมที่ไม่ต่อเนื่องเป็นคำถามสำคัญและเปิดกว้างในระบบกุญแจสาธารณะ ยังไม่พบวิธีแก้ปัญหาง่ายๆ ดังนั้น หากการแปลงโดยตรงของจำนวนเฉพาะ 1,000 บิตต้องใช้การดำเนินการ 2,000 ครั้ง การแปลงผกผัน (การคำนวณลอการิทึมในฟิลด์ Galois) จะต้องใช้การดำเนินการประมาณ 1,030 ครั้ง

ดังที่เห็นได้ชัดเจน แม้ว่าอัลกอริธึม Diffie-Hellman จะเรียบง่าย แต่ข้อเสียเมื่อเทียบกับระบบ RSA คือไม่มีขอบเขตล่างที่รับประกันความซับซ้อนของการเปิดเผยคีย์

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