การก่อสร้างไม่สามารถรักษาความปลอดภัย CCA ได้
อัลกอริทึมที่คุณเขียนไม่ได้บอกว่าอัลกอริทึมการถอดรหัสได้รับคีย์การตรวจสอบลายเซ็นอย่างไร
หากรหัสยืนยันเป็นส่วนหนึ่งของรหัสสาธารณะ จะไม่มีใครสามารถเข้ารหัสได้เนื่องจากไม่มีใครสามารถเข้าถึงรหัสการลงนามได้ (ตามที่ Mark สังเกตในความคิดเห็นด้านบน) นอกจากนี้ ดูเหมือนจะไม่เหมาะกับข้อเสนอของคุณในการใช้ลายเซ็นแบบใช้ครั้งเดียว
หากคีย์การตรวจสอบรวมอยู่ในข้อความเข้ารหัส (ชัดเจน) แสดงว่าใช้ไม่ได้เช่นกัน ตอนนี้ไซเฟอร์เท็กซ์มีรูปแบบ $$(c=\textsf{Enc}(pk,m), vk, \sigma=\textsf{Sign}(sk,c\|vk))$$ ที่ไหน $(sk,vk)$ เป็นคู่คีย์ลายเซ็นแบบใช้ครั้งเดียว ฉันสามารถนำไซเฟอร์เท็กซ์ของแบบฟอร์มนี้ไปแก้ไขได้ $ค$ แต่อย่างใดและแทนที่ $vk,\sigma$ ด้วยตัวฉันเอง $vk',\sigma'$ ที่ฉันสร้างขึ้น สิ่งนี้ทำให้ฉันสามารถทำการโจมตีด้วยไซเฟอร์เท็กซ์ที่เลือกได้โดยตรง $\textsf{Enc}$ ในรูปแบบใหม่นี้
หากคีย์การตรวจสอบอยู่ในการเข้ารหัส วิธีนี้จะดีกว่าแต่ยังไม่ปลอดภัย ตอนนี้ไซเฟอร์เท็กซ์มีรูปแบบ $$(c=\textsf{Enc}(pk,m\|vk), \sigma=\textsf{เครื่องหมาย}(sk,c))$$ เป้าหมายคือโครงร่างใหม่นั้นปลอดภัยสำหรับ CCA ใดๆ ทางเลือกของ CPA-secure $\textsf{Enc}$. อย่างไรก็ตาม เป็นไปได้ที่จะสร้างโครงร่าง CPA ที่ปลอดภัยทางพยาธิวิทยา ซึ่งสามารถเปลี่ยนได้ $\textsf{Enc}(pk,m\|vk)$ เข้าไปข้างใน $\textsf{Enc}(pk,m\|vk')$ สำหรับใดๆ $vk'$ ของทางเลือกของผู้โจมตีและไม่มีความรู้ $m$ หรือ $vk$. ดังนั้นการโจมตี CCA ในโครงการใหม่จึงเกี่ยวข้องกับการเปลี่ยนแปลง $ค$ เข้าไปข้างใน $c'$ ด้วยวิธีนี้ด้วย $vk'$ เลือกโดยผู้โจมตีจากนั้นผู้โจมตีสามารถสร้างลายเซ็นที่ถูกต้องขึ้นมาใหม่ $c'$ และขอให้ถอดรหัสเพื่อเปิดเผย $m$.
ไม่มีโครงสร้างที่ "เรียบง่าย" ที่รวบรวม CPA เข้ากับ CCA security
มีปัญหาเปิดที่มีชื่อเสียงในการเข้ารหัส:
มีโครงสร้างกล่องดำของโครงร่างการเข้ารหัสคีย์สาธารณะที่ปลอดภัยของ CCA จากโครงร่างการเข้ารหัสคีย์สาธารณะที่ปลอดภัยของ CPA โดยพลการในรูปแบบธรรมดาหรือไม่
เป็นไปได้ที่จะสร้างรูปแบบที่ปลอดภัยของ CCA จากรูปแบบที่ปลอดภัยของ CPA หากเราเปลี่ยนพารามิเตอร์ของปัญหาที่เปิดอยู่นี้:
หากเราปล่อยโมเดลธรรมดาไว้และอนุญาตให้ใช้ oracles แบบสุ่ม การแปลง Fujisaki-Okamoto จะได้รับความปลอดภัย CCA
หากเราอนุญาตโครงสร้างที่ไม่ใช่กล่องดำ เราก็สามารถบรรลุความปลอดภัย CCA โดยใช้การแปลง Naor-Yung ไม่ใช่กล่องดำหมายความว่ารูปแบบที่ปลอดภัยของ CCA ใช้วิธีใดวิธีหนึ่ง รหัสแหล่งที่มา ของโครงการ CPA-secure ในกรณีของ Naor-Yung คุณต้องมีซอร์สโค้ดของโครงร่าง CPA-secure เพื่อพิสูจน์การอ้างสิทธิ์ที่ไม่มีความรู้เกี่ยวกับข้อความเข้ารหัส
มีบางอย่าง ความคืบหน้าบางส่วน การพิสูจน์ปัญหาแบบเปิดนี้ โดยเฉพาะอย่างยิ่ง จะต้องไม่มีโครงสร้างดังกล่าวหากอัลกอริทึมการถอดรหัส CCA ไม่ใช้อัลกอริทึมการเข้ารหัส CPA
เทคนิคที่คุณใช้ในคำถามนี้เป็นกล่องดำทั้งหมด ดังนั้นจึงไม่น่าจะมีประโยชน์ในการสร้างแผนความปลอดภัย CCA
เทคนิคที่คล้ายกันนี้ใช้ได้ผลหากรูปแบบ CPA อิงตามข้อมูลประจำตัว
การก่อสร้างของคุณทำให้ฉันนึกถึง การเปลี่ยนแปลง Canetti-Halevi-Katz จาก CPA-secure ตามเอกลักษณ์ โครงร่างเป็นโครงร่าง CCA ที่ปลอดภัย (ไม่อิงตามข้อมูลประจำตัว)
อนุญาต $\textsf{Enc}(pk,id,m)$ หมายถึงการเข้ารหัสตามข้อมูลประจำตัว (IBE) ของ $m$ เพื่อความเป็นตัวตน $id$โดยใช้พารามิเตอร์ส่วนกลางสาธารณะ $pk$. จากนั้นการก่อสร้าง CHK คือ:
$$ \textsf{Enc}^*(pk,m) = (vk, c = \textsf{Enc}(pk, vk, m), \sigma = \textsf{Sign}(sk,c)) $$
กล่าวอีกนัยหนึ่งเพื่อเข้ารหัส:
- สร้างคู่คีย์ลายเซ็นแบบใช้ครั้งเดียว $(sk,vk)$.
- เข้ารหัสข้อความธรรมดาด้วย IBE โดยใช้ $vk$ เป็นตัวตน
- ลงนามในข้อความรหัส IBE ด้วย $sk$
- ให้ $vk$, ไซเฟอร์เท็กซ์ IBE และลายเซ็น
ผลลัพธ์ที่ได้คือ CCA-secure และสัญชาตญาณคร่าวๆ ก็คือ IBE ที่ปลอดภัยของ CPA อาจอ่อนได้เมื่อเทียบกับข้อความธรรมดา แต่จะต้องไม่อ่อนเมื่อเทียบกับ อัตลักษณ์.