กุญแจ การจัดระเบียบการจัดเก็บกุญแจ การแจกจ่ายกุญแจ การแจกจ่ายกุญแจสาธารณะ

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

คำถาม:

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

2. การแจกจ่ายกุญแจลับ

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

4. การแจกจ่ายคีย์ลับโดยใช้ระบบคีย์สาธารณะ

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

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

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

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

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

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

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

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

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

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

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

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

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

· มัลลอรีเป็นหัวขโมยที่กระตือรือร้น

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

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

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

· วิกเตอร์เป็นผู้ตรวจสอบ (ตรวจสอบเพ็กกี้)

มี:

· โปรโตคอลที่มีอยู่ในตัวเอง;

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

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

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

อลิซบ๊อบ

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

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

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


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


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

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

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

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

แบบจำลองของระบบเข้ารหัสแบบสมมาตร:

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

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

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

4. อลิซส่งข้อความไซเฟอร์เท็กซ์ไปให้บ็อบ

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

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

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

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

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

เพื่อสรุปเราแสดงรายการ ข้อเสียของระบบเข้ารหัสแบบสมมาตร:

1. คีย์จะมีคุณค่าเท่ากับข้อความที่เข้ารหัสเท่านั้น ดังนั้นจึงเป็นไปตามนั้น ปัญหาการกระจายคีย์.

2. เมื่อได้รับกุญแจอาจสร้างข้อความเท็จได้

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

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

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

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

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

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

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

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

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

ซึ่งจะช่วยขจัดปัญหาการกระจายคีย์ ซึ่งสร้างความเจ็บปวดให้กับระบบเข้ารหัสลับแบบสมมาตร


2. การแจกจ่ายกุญแจลับ

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

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

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

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

2. กุญแจถูกเลือกโดยบุคคลที่สามและส่งมอบจริงให้กับ A และ B

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

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

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

ลองพิจารณาจุดที่ 4

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

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

สถานการณ์การแจกจ่ายคีย์ (โครงการแบบรวมศูนย์)

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

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

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

1. ผู้ใช้ A ส่งคำขอไปยัง DRC เพื่อรับคีย์เซสชันเพื่อป้องกันการสื่อสารกับ B

คำขอที่ส่งจะต้องประกอบด้วย:

- ข้อมูลที่ช่วยให้สามารถระบุ A และ B ได้อย่างชัดเจน (รหัส A, รหัส B);

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

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

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

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

(เพื่อเชื่อมต่อ A ถึง B)

- คำขอโอกาสยังไม่มีข้อความ 1 เพื่อให้ผู้ใช้ A สามารถจับคู่การตอบสนองกับคำขอได้

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

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

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

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

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

E Ka [ K S ||คำขอ|| ไม่มี 1 || E Kb (K S , ID A )]

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

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

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

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

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

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


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

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

รูปแบบการแจกจ่ายคีย์แบบกระจายอำนาจ

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


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

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

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

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

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

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

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

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

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

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

4. ใบรับรองคีย์สาธารณะ

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

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

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

2) ไดเรกทอรีที่เข้าถึงได้แบบสาธารณะ (โครงการแบบรวมศูนย์)

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

หรือสามารถส่งต่อใบรับรองให้กับผู้เข้าร่วมคนใดก็ได้

ผู้รับใช้กุญแจสาธารณะรับรอง มก AIS เพื่ออ่านใบรับรอง สิ่งนี้รับประกันได้ว่าใบรับรองมาจากเขา

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 ที่มีมก และผู้ส่ง ID Aไอดี เอ

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

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

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

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

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

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

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

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 เพื่อส่งข้อความเข้ารหัสฝ่าย B ที่มี ID ของฝ่าย A ( ID A) และโอกาส (N 1 ) ใช้เพื่อระบุธุรกรรมนั้นโดยเฉพาะ

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

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

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

(5) ฝ่าย B คำนวณ Bมก. [ E KRb [ K S ]] เพื่อกู้คืนคีย์ส่วนตัว

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

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

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

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

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

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

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

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

5. การแลกเปลี่ยนคีย์โดยใช้โครงการ Diffie-Hellman

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

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

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

ม็อด p, 2 ม็อด p,…, p-1 ม็อด p

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

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

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

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

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

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


ศัตรูรู้ว่า:คิว ก ก ย ก วาย บี ในการกำหนดคีย์ คุณต้องคำนวณลอการิทึมแบบไม่ต่อเนื่อง

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

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

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

  • 1. ฝ่าย A สามารถเลือกกุญแจได้ และจัดส่งให้ฝ่าย A ได้ ใน.
  • 2. บุคคลที่สามสามารถเลือกรหัสได้และส่งมอบให้กับผู้เข้าร่วม A และ ใน.
  • 3. หากผู้เข้าร่วมการแลกเปลี่ยน A และ ในใช้คีย์ที่แชร์ไปแล้ว ฝ่ายใดฝ่ายหนึ่งสามารถส่งคีย์ใหม่ไปยังอีกฝ่ายในรูปแบบที่เข้ารหัสโดยใช้คีย์เก่าได้
  • 4. ถ้าทั้งสองฝ่าย A และ ในมีช่องทางการสื่อสารที่ปลอดภัยด้วยการเข้ารหัสลับกับบุคคลที่สาม C จากนั้นฝ่ายหลังสามารถส่งมอบกุญแจให้กับผู้เข้าร่วม A และ ในผ่านช่องทางที่ปลอดภัยเหล่านี้

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

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

ขนาดของปัญหาขึ้นอยู่กับจำนวนคู่ผู้ติดต่อที่ต้องรับบริการ หากมีการใช้งานการเข้ารหัสจากต้นทางถึงปลายทางที่ระดับเครือข่ายหรือ IP จะต้องใช้คีย์หนึ่งคีย์สำหรับคู่โหนดหลักแต่ละคู่บนเครือข่ายที่กำลังสื่อสาร ดังนั้นหากมี เอ็นโหนดนำหน้าจำนวนคีย์ที่ต้องการจะเท่ากับ / 2. หากดำเนินการเข้ารหัสในระดับแอปพลิเคชัน ผู้ใช้หรือกระบวนการสื่อสารแต่ละคู่จะต้องมีรหัสของตัวเอง ในกรณีนี้ เครือข่ายสามารถมีโหนดชั้นนำหลายร้อยโหนด ผู้ใช้และกระบวนการนับพันราย ในรูป 6.2 สำหรับกรณีของการเข้ารหัสจากต้นทางถึงปลายทาง แสดงให้เห็นถึงความซับซ้อนของปัญหาการแจกจ่ายคีย์กับจำนวนคู่ที่เข้าร่วมในการแลกเปลี่ยนข้อมูล ตัวอย่างเช่น บนเครือข่าย 1,000 โหนดซึ่งมีการเข้ารหัสที่ระดับโหนด อาจมีคีย์ประมาณครึ่งล้านที่จะแจกจ่าย และหากเครือข่ายดังกล่าวรองรับแอปพลิเคชันประมาณ 10,000 รายการ การเข้ารหัสระดับแอปพลิเคชันอาจจำเป็นต้องมีการแจกจ่ายคีย์ประมาณ 50 ล้านคีย์

ข้าว. 6.2.

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

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

ข้าว. 6.3.

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

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

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

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

ในกรณีนี้ ผู้ใช้ A มีคีย์ลับ K a ซึ่งมีเพียงเขาและ DRC เท่านั้นที่รู้จัก และในทำนองเดียวกัน B ใช้คีย์หลัก K c ซึ่งเหมือนกับ DRC

ระบบแลกเปลี่ยนข้อมูลมีลักษณะดังนี้:

  • 1. ตัวเริ่มต้น A ส่งคำขอไปยัง DRC เพื่อรับคีย์เซสชันเพื่อปกป้องการเชื่อมต่อแบบลอจิคัลกับ B ข้อความที่ส่งในกรณีนี้จะต้องมีข้อมูลที่อนุญาตให้ระบุ A และ B ได้โดยไม่ซ้ำกัน รวมถึงตัวระบุบางตัว N1 ที่ไม่ซ้ำ สำหรับคำขอนี้ มักเรียกว่าโอกาส (popse - กรณีที่กำหนด, เวลาที่กำหนด (ภาษาอังกฤษ)) ตัวระบุดังกล่าวอาจเป็นเวลาปัจจุบัน ตัวนับบางตัว หรือตัวเลขสุ่ม - อย่างน้อยที่สุด ตัวระบุนี้จะต้องไม่ซ้ำกันสำหรับแต่ละคำขอ นอกจากนี้ เพื่อป้องกันไม่ให้ฝ่ายตรงข้ามปลอมแปลงข้อความ ฝ่ายตรงข้ามจะคาดเดาตัวระบุนี้ได้ยาก ดังนั้นตัวเลขสุ่มจึงถือเป็นตัวเลือกที่ดีสำหรับโอกาส
  • 2. CRC ตอบสนองต่อคำขอด้วยข้อความที่เข้ารหัสโดยใช้คีย์ Ka ผู้ใช้เพียงคนเดียวที่สามารถรับและอ่านข้อความนี้ได้คือ A ดังนั้น A จึงมั่นใจได้ว่าข้อความนี้มาจาก CRC ข้อความประกอบด้วยสององค์ประกอบสำหรับ A:
    • - Ks คีย์เซสชันแบบครั้งเดียวซึ่งจะใช้ในเซสชันการสื่อสาร
    • - ข้อความคำขอดั้งเดิม รวมถึงโอกาส เพื่อให้ผู้ใช้ A มีโอกาสที่จะจับคู่การตอบกลับกับคำขอที่เกี่ยวข้อง
  • 3. ด้วยวิธีนี้ A สามารถตรวจสอบให้แน่ใจว่าคำขอเดิมของเขาไม่มีการเปลี่ยนแปลงระหว่างทางไป CRC และโอกาสจะไม่อนุญาตให้เขาสับสนคำตอบของคำขอนี้กับคำตอบของคำขอใด ๆ ก่อนหน้านี้

ข้าว. 6.4.

  • 1. นอกจากนี้ ข้อความยังประกอบด้วยองค์ประกอบสองประการที่มีจุดประสงค์เพื่อ ใน:
    • - รหัสเซสชันแบบครั้งเดียว K. y ซึ่งจะใช้ในเซสชันการสื่อสาร
    • - ตัวระบุ GO A ของผู้ใช้ A (เช่น ที่อยู่เครือข่ายของเขา)
  • 2. องค์ประกอบทั้งสองถูกเข้ารหัสโดยใช้คีย์ เคบี(คีย์หลักที่ใช้ร่วมกันโดย TsK และ ใน),และตั้งใจว่าควรจะส่งต่อไป ใน,เพื่อสร้างการเชื่อมต่อและระบุ A.
  • 3. ฝ่าย A บันทึกคีย์เซสชันสำหรับเซสชันการสื่อสารที่กำลังจะมาถึงและส่งต่อไปยังปาร์ตี้ ในข้อมูลที่ได้รับจาก CRC และมีวัตถุประสงค์เพื่อ ใน(กล่าวคือ ข้อมูล Ek[K L ||GO A ]) เนื่องจากข้อมูลนี้ถูกเข้ารหัสโดยใช้ เคบีเธอพบว่าตัวเองได้รับการปกป้อง ตอนนี้ผู้รับ ในรู้เซสชันคีย์ (K s) และรู้ว่าข้อมูลที่ได้รับมาจาก DRC (เนื่องจากข้อมูลนี้ถูกเข้ารหัสโดยใช้คีย์ Kb)

ณ จุดนี้ คีย์เซสชันได้ถูกส่งไปยังฝ่าย A และฝ่ายแล้ว ใน,และพวกเขาสามารถเริ่มแลกเปลี่ยนข้อมูลได้อย่างปลอดภัย แต่ก่อนหน้านั้นขอแนะนำให้ดำเนินการอีกสองครั้ง

  • 1. การใช้คีย์เซสชัน K ที่เพิ่งได้รับใหม่สำหรับการเข้ารหัสปาร์ตี้ ในส่งโอกาสใหม่ให้ฝ่าย A L/
  • 2. ใช้คีย์เดียวกัน K s ส่งคืนด้าน A /(น2 ), โดยที่ / เป็นฟังก์ชันที่ทำการแปลงบางอย่าง เอ็น2 (เช่น เพิ่มหนึ่งรายการ)

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

ควรสังเกตว่าจริง ๆ แล้วกระบวนการถ่ายโอนคีย์นั้นดำเนินการในขั้นตอนที่ 1-3 และขั้นตอนที่ 4 และ 5 รวมถึงขั้นตอนที่ 3 บางส่วน ได้รับการออกแบบมาเพื่อให้มีฟังก์ชันการตรวจสอบสิทธิ์

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

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

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

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

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

ปัญหาการแจกจ่ายคีย์เกิดขึ้นจากการสร้างโปรโตคอลการแจกจ่ายคีย์ที่ให้:

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

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

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

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

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

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

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

โปรโตคอลการแจกจ่ายคีย์แบ่งออกเป็นสองคลาส:

    โปรโตคอลการขนส่งที่สำคัญ

    โปรโตคอลการแลกเปลี่ยนคีย์

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

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

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

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

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

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

การรับรองความถูกต้องของคีย์ที่ชัดเจน(การรับรองความถูกต้องของคีย์ที่ชัดเจน) - คุณสมบัติที่ดำเนินการเมื่อการรับรองความถูกต้องของคีย์ (โดยนัย) และการยืนยันคีย์เกิดขึ้นพร้อมกัน

    1. โปรโตคอล Needham-Schroeder บนคีย์สมมาตร

โปรโตคอลนี้รองรับโปรโตคอลการแจกจ่ายคีย์จำนวนมากที่ใช้ศูนย์ที่เชื่อถือได้ โปรโตคอลนี้มีสองประเภท:

    โปรโตคอล Needham-Schroeder บนคีย์สมมาตร

    โปรโตคอล Needham-Schroeder บนคีย์แบบอสมมาตร

โปรโตคอลคีย์สมมาตรทำงานดังนี้:

ขั้นตอนเบื้องต้น:

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

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

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

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

    การสะสมกุญแจ

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

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

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

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

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

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

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

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

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

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

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

    ประสิทธิภาพและความแม่นยำในการกระจายสินค้า

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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