Score:0

จะขยายการดำเนินการจากตัวเลขเป็น "วัตถุ" ที่ใหญ่ขึ้นในการใช้งานการเข้ารหัสได้อย่างไร

ธง in

ฉันรู้ว่าฉันไม่ควรม้วน crypto ของตัวเอง แต่ทุกคนเริ่มที่ไหนสักแห่ง! ฉันกำลังใช้โปรโตคอล PSI-CA ที่กำหนดไว้ใน การคำนวณคาร์ดินัลลิตี้ของเซ็ตอินเซกชั่นและยูเนี่ยนที่รวดเร็วและเป็นส่วนตัว (รูปที่ 1, หน้า 5)และฉันใช้งานได้ (ไม่มากก็น้อย) ปัญหาที่ใหญ่ที่สุดของฉันคือฉันใช้งานได้เท่านั้น int64_t ประเภทและไม่มีอะไรอื่น ในที่สุดฉันต้องการเปรียบเทียบสตริงหรือแม้แต่วัตถุตามอำเภอใจ ดังนั้นฉันคิดว่าฉันจะต้องมีวัตถุที่เปิดเผยฟังก์ชันเพื่อทำให้เป็นซีเรียลไลซ์/แฮชเอง แต่แล้วอะไรล่ะ ฉันจะขยายอัลกอริทึมนี้เป็นการคำนวณแบบหลายไบต์ได้อย่างไร

ตัวอย่างเช่น ถ้าฉันต้องการใช้แฮช SHA-512 แทนจำนวนเต็ม ให้พูดว่า $\forall i 1\leq i \leq v : a^{\prime}_i = (a_i)^{R^{\prime}_s}$ฉันจะแปลสิ่งนี้จากการดำเนินการกับจำนวนเต็ม (เล็กน้อย) เป็นไบต์ฟิลด์ได้อย่างไร ฉันเพียงแค่ดำเนินการเดียวกันนี้สำหรับทุกไบต์ในฟิลด์?

SEJPM avatar
us flag
มีอะไรหยุดคุณจากการตีความและใช้อ็อบเจ็กต์เวอร์ชันซีเรียลไลซ์ / แฮชเป็นจำนวนเต็มหรือไม่ (ซึ่งแน่นอนว่าต้องมีการทำให้เป็นอนุกรม / การแฮชเพื่อรักษาความเท่าเทียมกัน)
in flag
ผมว่ามันคงไม่ทนชนหรอก จริงไหม? เช่นเดียวกับ SHA-512 ที่มีช่วงกว้าง กระดาษบอกว่าฉันต้องการฟังก์ชันแฮชสองฟังก์ชัน (จำลองเป็น ROM ในกระดาษ) ดังนั้นฉันจึงไม่ค่อยแน่ใจจริงๆ ว่าฟังก์ชันแฮชใดที่จะตอบสนองความต้องการเหล่านี้เพื่อให้ข้อมูลมีความปลอดภัยในการเข้ารหัส
Score:1
ธง ng

ฉันไม่ชัดเจน (โดยไม่เห็นรหัสของคุณ) ว่าปัญหาปัจจุบันของคุณคืออะไร เมื่อมองผ่านกระดาษ ฉันเห็น (ตัวอย่างในรูปที่ 1):

  1. (วัตถุโดยพลการ) $c_1,\จุด,c_v$ และ $s_1,\จุด,s_v$

  2. กัญชา ของวัตถุเหล่านี้ซึ่งเขียนขึ้น $hc_i = H(c_i)$ และ $hs_i = H(s_i)$ (ขึ้นอยู่กับการเรียงสับเปลี่ยนที่ใช้กับ $s_i$).

การดำเนินการที่เหลือทั้งหมดอยู่ในเงื่อนไขของ $hc_i$ และ $hs_i$ซึ่งดูเหมือนจะเป็น (จากบริบท) ใน $\mathbb{Z}_p^*$เช่น เลขคณิตเป็นมาตรฐาน (แม้ว่าคุณจะต้องเลือก $p$ ใหญ่พอที่จะทำให้โจทย์ลอการิทึมไม่ต่อเนื่องนั้นยาก เป็นต้น $\gg 1,000$ บิต โดยเฉพาะอย่างยิ่ง คุณน่าจะใช้ bigints มากกว่า u64 ฉันอ่านไม่ละเอียดพอที่จะรู้ว่าพวกเขากำลังสันนิษฐานถึงความแข็งของสมมติฐานประเภท DL ใน $\mathbb{Z}_p^*$ แม้ว่า).

เมื่อสแกนผ่านตัวเลขอื่นๆ ฉันเห็นเรื่องราวที่คล้ายกัน นั่นคือเลขคณิตทั้งหมดทำบนองค์ประกอบแฮชของ $\mathbb{Z}_p^*$แทนที่จะเป็นการทดสอบโดยพลการใน $\{0,1\}^*$. ฉันไม่เห็นตัวอย่างเฉพาะของคุณ:

$$1â¤iâ¤v:a_i'=(a_i)^{Râ²_s}$$

ว่าเป็นประเด็นตัวอย่างเช่น สิ่งนี้ดูเหมือนจะเกิดขึ้นในรูปที่ 4 ซึ่งก่อนหน้านี้ฉันเห็น $a_i = (hs_i)^{R_s'}$. ในรูปนี้ฉันไม่เห็นคำจำกัดความ $hs_i = H(s_i)$และฉันแค่อ่านคร่าวๆ เท่านั้น แต่เป็นไปได้ว่าการตีความนี้กำลังถูกสันนิษฐาน เช่น $hs_i$ คือ กัญชา ของการทดสอบโดยพลการ $s_i$และบรรจุอยู่ใน $\mathbb{Z}_p^*$ (ค่อนข้างมากกว่า $\{0,1\}^*$).

คำตอบทั่วไปของ

ฉันเพียงแค่ดำเนินการเดียวกันนี้สำหรับทุกไบต์ในฟิลด์?

จะเป็น "ไม่" (เว้นแต่มีบางอย่างบอกให้ทำสิ่งนี้โดยเฉพาะ) โดยทั่วไปแล้ว โปรโตคอลการเข้ารหัสจะทำงานบนวัตถุทางคณิตศาสตร์ที่กำหนดไว้อย่างดี (เช่น bit strings in $\{0,1\}^*$) และการ "ตัดทอนสิ่งเหล่านี้" เพื่อพยายามบังคับให้สิ่งต่างๆ ทำงาน (เมื่อไม่ได้ระบุให้เป็นส่วนหนึ่งของโปรโตคอล) อาจนำไปสู่ปัญหาด้านความปลอดภัยได้อย่างง่ายดาย

โพสต์คำตอบ

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