ระบบของฉันรู้เฉพาะรหัสสาธารณะ จึงสามารถคำนวณเงินเดือนเฉลี่ยสำหรับตำแหน่งงานเฉพาะได้
ที่จริงแล้ว คุณสามารถคำนวณผลรวมได้ คำนวณค่าเฉลี่ยนั่นคือค่า $\text{เข้ารหัส}_k( \lfloor sum / n \rfloor )$ ค่อนข้างยุ่งยากกว่า (และจำเป็นต้องมีการดำเนินการพื้นหาก $ผลรวม$ ไม่จำเป็นต้องคูณด้วย $n$ จำนวนค่า)
สิ่งนี้สามารถจัดการได้โดยการคำนวณอย่างใดอย่างหนึ่ง $\text{เข้ารหัส}_k( ผลรวม )$และส่งสิ่งนั้นและค่าของ $n$ ไปยังบริษัท A, B, C (ซึ่งสามารถถอดรหัสแล้วแบ่งได้) หรือโดยการให้แต่ละบริษัทคูณเงินเดือนแต่ละรายการโดยปริยายที่เข้ารหัสไว้ $ก!$ (สำหรับมูลค่าที่เหมาะสมของ $k$); แล้ว (สมมติ $n$ ไม่ใหญ่เกินไป) เราสามารถคำนวณได้ $\text{เข้ารหัส}_k( n^{-1} \cdot sum )$ซึ่งจะเป็นค่าที่เราต้องการ (โดยปัจจัยการปรับสเกลโดยนัยยังคงมีอยู่)
เพื่อหลีกเลี่ยงการโจมตีความถี่ ฉันต้องการเข้ารหัสข้อมูลข้อความ (ชื่อบริษัทและตำแหน่งงาน) โดยใช้เครื่องแปลภาษาเช่นกัน
บริษัทจะเข้ารหัสตำแหน่งงานหรือคุณ? หากพวกเขาเข้ารหัส คุณจะเข้าถึงไม่ได้ ดังนั้นคุณจึงไม่รู้ว่าควรรวมค่าใด
ในทางกลับกัน หากพวกเขาระบุตำแหน่งงานที่ชัดเจนและคุณเข้ารหัสไว้ นั่นก็ไม่เป็นไร (หากในความคิดของฉัน มันดูไร้จุดหมายไปหน่อย)
อย่างไรก็ตาม คำถามของคุณคือ:
สมมติว่าในระบบของฉันข้อมูลรั่วไหลและมีคนมีข้อมูลทั้งหมดในรูปแบบการเข้ารหัส (คีย์ส่วนตัวไม่ถูกบุกรุก) คุณคิดว่าเขาสามารถทำการโจมตีเพื่อถอดรหัสข้อมูลได้หรือไม่?
คุณคงไม่เป็นไร - ด้วย Paillier ผู้โจมตีจะไม่สามารถดึงข้อมูลใด ๆ จากข้อความเข้ารหัส (สมมติว่าคีย์ส่วนตัวและค่าสุ่มที่ใช้ในระหว่างกระบวนการเข้ารหัสนั้นปลอดภัย) แม้ว่าเขาจะรู้ว่าข้อความธรรมดาเป็นหนึ่งในสองค่า เขาก็ยังระบุไม่ได้ว่าเป็นค่าใด