Score:4

ฉันไม่เห็นว่า ECDH มีประโยชน์อย่างไร

ธง ph

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

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

มีใครทราบตัวอย่าง/สถานการณ์/กรณีการใช้งานที่ดีที่จำเป็นต้องใช้ ECDH หรือไม่

mu flag
Dan
ในขณะนี้ละเว้นการตรวจสอบความถูกต้อง - คุณรวม ECDH ชั่วคราว ("ECDHE") ในคำถามของคุณหรือไม่ ถ้าเป็นเช่นนั้น ลองนึกดูว่าคีย์ส่วนตัวของ Bob หรือ Alice ถูกบุกรุกหรือไม่ ตอนนี้ทุกสิ่งสามารถค้นพบได้ ประวัติศาสตร์ทั้งหมดจากอดีต เหตุผลเดียวกับที่ TLS1.3 เลิกใช้ RSA สำหรับการขนส่งคีย์ ค้นหาความลับไปข้างหน้าและความลับย้อนหลัง
WizardOfMenlo avatar
ph flag
ข้อกังวลอีกประการหนึ่งคือประสิทธิภาพ โดยทั่วไปแล้ว DH (และกลไก KEM) จะใช้เพื่อสร้างความลับที่ใช้ร่วมกันทั่วไป ซึ่งจากนั้นสามารถใช้กับการเข้ารหัสแบบสมมาตร (ซึ่งโดยปกติจะเป็นลำดับความสำคัญที่เร็วกว่า)คุณสามารถใช้ PKE เพื่อให้ได้สิ่งเดียวกันได้อย่างแน่นอน (อันที่จริง PKE และ KEM นั้นเทียบเท่ากัน) แต่การใช้ KEM โดยตรงมักจะเป็นธรรมชาติมากกว่า DH ยังสามารถทำได้ในลักษณะที่ไม่โต้ตอบ ซึ่งค่อนข้างมีประโยชน์ในโปรโตคอล async ที่ซับซ้อน เช่น Signal's
Score:9
ธง my

ฉันไม่เข้าใจประโยชน์ของการใช้ ECDH เหนือการเข้ารหัสแบบอสมมาตรแบบดั้งเดิม

กรณีการใช้งานเดียวสำหรับ ECDH ที่ฉันนึกได้คือหาก Alice ทำข้อความต้นฉบับหายหลังจากส่งให้ Bob โดยที่ ECDH เธอยังสามารถถอดรหัสได้

อันที่จริงแล้ว ข้อดีของ ECDH นั้นตรงกันข้ามอย่างสิ้นเชิง นั่นคืออลิซ (หรือบ็อบ) ไม่สามารถ ถอดรหัสข้อความในภายหลัง

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

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

คุณสมบัตินี้เรียกว่า Perfect Forward Secrecy; คุณยังสามารถรับได้โดยใช้การเข้ารหัสคีย์สาธารณะ (สร้างคู่คีย์สาธารณะ/ส่วนตัวก่อนการแลกเปลี่ยนและลบคีย์ส่วนตัวในภายหลัง) อย่างไรก็ตาม วิธีการดังกล่าวไม่มีข้อได้เปรียบเหนือ ECDH โดยเฉพาะ

Maarten Bodewes avatar
in flag
ข้อเท็จจริงที่ว่าการสร้างคู่คีย์นั้นมีประสิทธิภาพสำหรับ DH และ ECDH ไม่ใช่ความแตกต่างหลักใช่หรือไม่ การรักษาความปลอดภัยไปข้างหน้าเป็นสิ่งที่ดี แต่ถ้าเซิร์ฟเวอร์หรือไคลเอ็นต์ต้องสร้างคู่คีย์ 4K RSA สำหรับการสร้างคีย์แต่ละรายการ ประสิทธิภาพของโปรโตคอลอาจกลายเป็นปัญหาได้
poncho avatar
my flag
@MaartenBodewes: ใช่ ด้วย RSA มันมีราคาแพง อย่างไรก็ตาม ถ้าคุณต้องการ คุณสามารถทำได้ด้วย (พูด) ElGammal...
Score:4
ธง ng

ECDH เป็นที่รู้จักกันในชื่อ กลไกการห่อหุ้มกุญแจซึ่งตามที่คุณพูดถึงนั้นคล้ายกับการเข้ารหัสคีย์สาธารณะ แต่ไม่เหมือนกัน มีหลายเหตุผลที่ควรเลือกใช้ KEM ฉันจะพูดถึงอย่างรวดเร็ว ก่อนอื่น โปรดทราบว่า KEM คือ (อย่างเป็นทางการ) ทูเพิลของสามอัลกอริทึม $(\mathsf{KGen}, \mathsf{Encaps}, \mathsf{DCaps})$, ที่ไหน

  1. $\mathsf{KGen}$ ใช้เป็นอินพุตพารามิเตอร์ความปลอดภัย $1^\แลมบ์ดา$และส่งออกคู่กุญแจ $(sk, pk)$

  2. $\mathsf{Encaps}$ ใช้เป็นอินพุตคีย์สาธารณะ $pk$ (และบางทีอาจจะเป็นการสุ่ม ซึ่งมักจะเป็นนัยเท่านั้น) และส่งคืนคู่ $(ก, ค)$ ของคีย์ที่ได้มา $k$, และ "ข้อความเข้ารหัส" $ค$

  3. $\mathsf{Decaps}$ ใช้เป็นรหัสลับ $sk$ และ "ไซเฟอร์เท็กซ์" $ค$และส่งออกคีย์ที่ได้รับมาอีกรายการหนึ่ง $k'$.

KEM ถูกต้องถ้า $k = k'$ ในที่สุดเช่น คีย์ที่ได้รับทั้งสองตกลง แนวคิดด้านความปลอดภัยของ KEM นั้นคล้ายคลึงกับของ PKE ซึ่งหมายความว่ามีวิธีธรรมชาติที่จะขยายแนวคิดดั้งเดิมของการรักษาความปลอดภัย IND-CPA/IND-CCA

โปรดทราบว่าเราสามารถสร้าง KEM โดยใช้ PKE ใดก็ได้โดยมี $\mathsf{Encaps}_{pk}(r) = \mathsf{Enc}_{pk}(r)$, ที่ไหน $r$ คือการสุ่มที่ใช้โดย KEM (นี่คือแนวคิด "เข้ารหัสคีย์สุ่มแบบสม่ำเสมอ" ที่คุณกล่าวถึง) บางทีเราควรเขียนให้ชัดเจน $\mathsf{Enc}_{pk}(f(r))$ เป็นฟังก์ชั่นบางอย่างของการสุ่ม --- ฉันจะไม่ยุ่งกับการเปิดเผยนี้

ทำไมต้องสนใจ KEMs? ในขณะที่มีสิ่งอื่นๆ ที่คุณสามารถกล่าวถึงได้ ก วิชาเอก ประเด็นคือมีคุณสมบัติบางอย่างที่ KEM "ธรรมชาติ" (เช่น ECDH) มีซึ่ง KEM สร้างขึ้นจากวิธีการ "เข้ารหัสคีย์สุ่ม" ไม่ มี. นี่คือการบอกว่า ECDH ไม่ใช่ "แค่" KEM และสามารถใช้ในแอปพลิเคชันที่การเข้ารหัสคีย์สุ่มไม่ทำงาน

บางทีคุณสมบัติที่ชัดเจนที่สุดที่จะชี้ให้เห็นคือ "การไม่โต้ตอบ" โดยเฉพาะอย่างยิ่ง ECDH สามารถเขียนเป็น

  1. ทั้งสองฝ่ายแลกกุญแจดิฟฟี่เฮลแมน $(g, g^{s_i})$แล้ว
  2. คำนวณฟังก์ชันง่ายๆ ของคู่คีย์เหล่านี้

ถ้าเราพยายามเขียนสิ่งนี้ด้วยไวยากรณ์ของ KEM เราอาจพูดอย่างนั้น $\mathsf{KGen}(1^\แลมบ์ดา)$ สร้างคู่กุญแจหนึ่งคู่ $(ก, s_0, ก^{s_0})$และนั่น $\mathsf{Encaps}_{g^{s_0}}(r) = (g, s_1, g^{s_1})$ สร้างคู่คีย์อื่นโดยที่เราจำลอง "ciphertext" เป็น $g^{s_1}$. นี้มี มาก คุณสมบัติที่อยากรู้อยากเห็นแม้ว่า --- $g^{s_1}$ซึ่งเป็น "ciphertext" ของโครงร่าง ไม่ ขึ้นอยู่กับรหัสสาธารณะเลย (นอกเหนือจากตัวสร้างกลุ่ม $g$ซึ่งสามารถกำหนดมาตรฐานเป็นพารามิเตอร์สาธารณะได้)

นี่เป็นคุณสมบัติที่ค่อนข้างน่าแปลกใจและเป็นคุณสมบัติที่ไม่มีโครงร่าง "เข้ารหัสคีย์สุ่ม" เป็นที่รู้จักกันว่าเป็นโครงร่างการแลกเปลี่ยนคีย์แบบไม่โต้ตอบ (NIKE) คุณสมบัติเป็นทั้ง

  1. มีประโยชน์ในทางปฏิบัติ --- "วงล้อคู่" ของ Signal ใช้คุณสมบัตินี้ในลักษณะสำคัญ ซึ่งทำให้ยากต่อการ "ปล่อย" KEM อื่นเพื่อใช้สำหรับสัญญาณ และ

  2. ไม่ใช่เรื่องเล็กน้อยในทางทฤษฎี --- โดยทั่วไป การสร้าง NIKE นั้นต้องการสิ่งดั้งเดิมบางอย่าง เช่น การเข้ารหัส FHE/Functional มีผลลัพธ์ที่ทราบซึ่งแสดงว่าเป็นไปไม่ได้ที่จะสร้าง NIKE โดยใช้โครงร่าง (และรหัสที่น่าเชื่อถือ) ด้วย "พารามิเตอร์ขนาดเล็ก"

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

  • ใช้ CSIDH
  • ใช้ตัวแปรที่มีประสิทธิภาพน้อยกว่าของโครงร่าง NIST PQC (กล่าวคือโครงร่างแบบตาข่ายที่มีพารามิเตอร์ขนาดเล็ก) หรือ
  • ปรับเปลี่ยนโปรโตคอล Signal เองด้วยวิธีใดวิธีหนึ่ง โดยปกติแล้วจะมีการตีประสิทธิภาพบ้าง

แม้ว่าจะมีหลายสิ่งที่เหมาะสมกว่าที่คุณสามารถพูดเพื่อเปรียบเทียบ PKE และ KEM ได้ แต่ในทางทฤษฎีแล้ว มาก ประโยชน์มากมายสำหรับ ECDH --- เป็น NIKE ที่มีประสิทธิภาพซึ่งไม่ธรรมดาเลย

Marc Ilunga avatar
tr flag
คำตอบที่ดีพร้อมรายละเอียดเกี่ยวกับ KEM อย่างไรก็ตาม ฉันยังสับสนว่า ECDH เหมาะสมกับกระบวนทัศน์ของ KEM อย่างไร ไม่ชัดเจนว่ามีการกำหนดความถูกต้องที่นี่อย่างไร
Mark avatar
ng flag
หากคุณต้องการให้ ECDH เป็น NIKE คุณต้องจำลองว่าคุณมีกลุ่มการเข้ารหัส $(G, g)$ ที่กำหนดมาตรฐานเป็นพารามิเตอร์สาธารณะ และเพิ่มขั้นตอนสุดท้ายหลังการประมวลผลโดยที่ $k= KDF(g^{s_0} , g^{s_1}, g^{s_0s_1})$ สำหรับบางฟังก์ชันที่มาจากคีย์ $KDF$ ฉันละเว้นสิ่งนี้เนื่องจาก "ตรงไปตรงมา" ในกรณีของ ECDH โปรดทราบว่าความถูกต้องของ KEM จะตรงไปตรงมาน้อยลงเมื่อต้องจัดการกับสิ่งดั้งเดิม เช่น KEM ที่อิงตามโค้ด/แลตทิซ --- โดยทั่วไปแล้ว แก้ไขด้วยความน่าจะเป็น $\geq 1-\delta$ สำหรับ $\delta$ ที่เล็กมาก
Mark avatar
ng flag
นี่เป็นข้อแตกต่างที่สำคัญ เนื่องจาก (โดยเฉพาะกับฝ่ายตรงข้ามที่ทำงานอยู่) มีการโจมตีแบบ "กระตุ้นข้อผิดพลาด" บางอย่างที่มีอยู่ในการตั้งค่านี้ซึ่งไม่สามารถใช้งานได้ในการตั้งค่า KEM ที่ถูกต้องสมบูรณ์
Maarten Bodewes avatar
in flag
"ECDH เรียกว่ากลไกการห่อหุ้มคีย์" ห๊ะ? ECDH เรียกว่าอัลกอริทึมข้อตกลงหลักหรือไม่ บางครั้งฉันก็สงสัยว่านักเข้ารหัสเข้าใจภาษาปกติหรือไม่ หากอัลกอริทึม ECDH ไม่ห่อหุ้มอะไรเลย มันก็ไม่สามารถเป็นกลไกการห่อหุ้มได้ใช่ไหม
Mark avatar
ng flag
@MaartenBodewes น่าเสียดายที่ [คำศัพท์เป็นมาตรฐาน](https://en.wikipedia.org/wiki/Key_encapsulation_mechanism) และสามารถใช้ KEM สำหรับการแลกเปลี่ยนคีย์ได้ แต่จะตั้งชื่อแยกต่างหากจาก PKE (ซึ่งสามารถใช้ได้เช่นกัน) เพื่อเน้นความแตกต่างทางวากยสัมพันธ์ระหว่างทั้งสอง --- ในหนึ่ง คุณสามารถ "เลือกคีย์ลับ" ในอีกอันหนึ่ง คุณไม่สามารถ.
kelalaka avatar
in flag
ฉันเห็นด้วยกับ @MaartenBodewes เกี่ยวกับเรื่องนี้ ไม่มีการห่อหุ้มคีย์ เป็นเพียงส่วนหนึ่งของข้อมูลการก่อสร้างที่สำคัญเท่านั้น ดังนั้น DH จึงเป็นข้อตกลงที่สำคัญ หากมีใครอ้างถึง [สิ่งนี้](https://info.isl.ntt.co.jp/crypt/eng/psec/dl/iso/psec-kem_v2.2_20080414e.pdf) ก็ไม่ใช่เอกสารที่ดี
Mark avatar
ng flag
ใช่ แต่ถ้าอ้างถึงการวิจัยเกี่ยวกับมาตรฐาน NIST PQC (ซึ่งมีเป้าหมายครึ่งหนึ่งในการสร้างมาตรฐาน KEM/PKE) คำศัพท์เฉพาะ KEM จะเป็นมาตรฐาน ดูตัวอย่าง [บทความที่ทรงอิทธิพลของ Hofheinz et al](https://eprint.iacr.org/2017/604.pdf) ซึ่งมุ่งเน้นไปที่การจัดการกรณีของ "ความถูกต้องที่ไม่สมบูรณ์แบบ" ที่ฉันพูดถึง 2 ความคิดเห็นที่แล้ว
meshcollider avatar
gb flag
ฉันคิดว่าการเป็น KEM เพียงอย่างเดียวเป็นความคิดที่อ่อนแอกว่า ตัวอย่างเช่น ECDH ให้การรับรองความถูกต้องโดยปริยายของคีย์สาธารณะของผู้ส่ง/ตัวเข้ารหัส ในขณะที่โดยทั่วไป KEM ไม่มี (อินพุตเดียวคือคีย์สาธารณะของผู้รับ) [บทความนี้](https://eprint.iacr.org/2019/1356) แนะนำการแยก KEM ด้วยเหตุผลนี้ และการอ้างสิทธิ์ CSIDH *อาจ* เป็นไปตามสมมติฐานด้านความปลอดภัย แต่ไม่ได้อ้างสิทธิ์
Maarten Bodewes avatar
in flag
@Mark NIST ปัจจุบันดูเหมือนว่าจะประเมิน KEM เท่านั้น แม้ว่า KEM หนึ่งรายการจะมาจากกลไกข้อตกลงหลักที่คล้ายกับ DH
cn flag
@MaartenBodewes KEMs และข้อตกลงคีย์ 2 ข้อความมีไว้สำหรับเจตนาและวัตถุประสงค์ในสิ่งเดียวกัน
Maarten Bodewes avatar
in flag
ไม่มีข้อตกลงที่สำคัญไม่ใช่ KEM เชส และเรียกว่า TMKE โดยที่ E คือการจัดตั้งเมื่อพูดถึงแนวคิดทั่วไป
President James K. Polk avatar
sh flag
ECDH ไม่ใช่กลไกการห่อหุ้มที่สำคัญ
cn flag
@MaartenBodewes ใช่ ข้อตกลงคีย์ข้อความทุก ๆ สองข้อตกลงก็เป็นกลไกการห่อหุ้มคีย์เช่นกัน ข้อความแรกคือคีย์สาธารณะ ข้อความที่สองคือข้อความเข้ารหัส และในทางกลับกัน กลไกการห่อหุ้มคีย์ทั้งหมดก็เป็นข้อตกลงคีย์ข้อความสองรายการเช่นกัน เห็นได้ชัดว่าคุณไม่ชอบคำนี้ไม่ได้เปลี่ยนแปลงสิ่งนั้นเลย
Maarten Bodewes avatar
in flag
หากใช้ข้อความรหัสเพื่อสรุปรหัสหลักฉันก็เห็นด้วย ฉันไม่เห็นด้วยเมื่อมีการสร้างมาสเตอร์คีย์จากคีย์สาธารณะ/ส่วนตัว ซึ่งมักจะตามด้วย KDF ซึ่ง *แน่นอน* กรณีสำหรับ ECDH (เพื่อนำกลับมาเป็นคำตอบ)
cn flag
ถ้าอย่างนั้นคุณไม่ทราบคำจำกัดความของ KEM ââï¸

โพสต์คำตอบ

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