Score:0

ความปลอดภัยของระบบเข้ารหัสลับของ Pailler

ธง cn

ฉันกำลังทำงานเกี่ยวกับระบบที่สามารถคำนวณเงินเดือนเฉลี่ยสำหรับตำแหน่งต่างๆ ในบริษัทขนาดใหญ่ ฉันต้องการใช้ piller schema ในการคำนวณดังกล่าว

ฉันมี 3 ฟิลด์ที่ฉันต้องการเข้ารหัส: ชื่อบริษัท ตำแหน่งงาน อายุงาน และเงินเดือน

สมมติว่าฉันมีบริษัท 3 แห่งที่ต้องการคำนวณเงินเดือนเฉลี่ยในตำแหน่งต่างๆ แต่พวกเขาไม่ต้องการแชร์ข้อมูลระหว่างกัน เรามีชุดข้อมูลดังกล่าว

ชื่อ ชื่องาน ความอาวุโส เงินเดือน
บริษัท ผู้จัดการ 2 10000
บริษัท ผู้จัดการ 3 15000
บริษัท นักพัฒนา 1 18000
บริษัท นักพัฒนา 5 11000
ชื่อ ชื่องาน ความอาวุโส เงินเดือน
บริษัท ค ผู้จัดการ 2 12000
บริษัท ค ผู้จัดการ 3 15000
บริษัท ค นักพัฒนา 1 8000
บริษัท ค นักพัฒนา 5 15000

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

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

Score:0
ธง cn

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

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

poncho avatar
my flag
"o ฉันสามารถหารจำนวนที่เข้ารหัสด้วยค่าที่ไม่ได้เข้ารหัส"; Paillier ไม่มีการดำเนินการ 'แบ่ง' แบบโฮโมมอร์ฟิค คุณสามารถคูณด้วยค่าผกผันของ 'ค่าที่ไม่ได้เข้ารหัส' อย่างไรก็ตาม เว้นแต่ว่าตัวเลขที่เข้ารหัสจะเป็นจำนวนหลายตัว ซึ่งจะทำให้ได้ค่าที่สูงมาก
sorror avatar
cn flag
โดยการหาร ผมหมายถึงการคูณด้วยค่าผกผันของ N (จำนวนองค์ประกอบ) ทุกรายการก่อนหน้าจะถูกคูณด้วย 2 และผลลัพธ์สุดท้ายในฝั่งไคลเอนต์จะถูกหารด้วย 2 ฉันคิดว่ามันใช้ได้กับทุกตัวเลข ใช่ไหม
poncho avatar
my flag
ไม่ มันจะไม่ทำงานถ้า N=3 และ SUM=100...
sorror avatar
cn flag
อ่าใช่! ตอนนี้ฉันได้ประเด็นของคุณกับ k! สำหรับ k=3! ฉันจะไม่มีวันได้ผลรวม = 100 (ฉันจะมี 96 หรือ 102 ก็ได้) นั่นก็ดี แต่บางทีฉันอาจจะมีรายการมากมาย ดังนั้น k! ไม่ใช่สิ่งที่ฉันต้องการ ดูเหมือนว่าทางออกที่ดีที่สุดคือการส่งผลรวมที่เข้ารหัสและค่าที่ไม่ได้เข้ารหัส n ขอบคุณสำหรับความช่วยเหลือของคุณ!
Score:0
ธง my

ระบบของฉันรู้เฉพาะรหัสสาธารณะ จึงสามารถคำนวณเงินเดือนเฉลี่ยสำหรับตำแหน่งงานเฉพาะได้

ที่จริงแล้ว คุณสามารถคำนวณผลรวมได้ คำนวณค่าเฉลี่ยนั่นคือค่า $\text{เข้ารหัส}_k( \lfloor sum / n \rfloor )$ ค่อนข้างยุ่งยากกว่า (และจำเป็นต้องมีการดำเนินการพื้นหาก $ผลรวม$ ไม่จำเป็นต้องคูณด้วย $n$ จำนวนค่า)

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

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

บริษัทจะเข้ารหัสตำแหน่งงานหรือคุณ? หากพวกเขาเข้ารหัส คุณจะเข้าถึงไม่ได้ ดังนั้นคุณจึงไม่รู้ว่าควรรวมค่าใด

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

อย่างไรก็ตาม คำถามของคุณคือ:

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

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

โพสต์คำตอบ

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