Score:7

มีรูปแบบของการเข้ารหัสที่คีย์ได้มาจากข้อความธรรมดาหรือไม่

ธง dz

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

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

จากนั้นผู้ใช้จะเข้ารหัสไฟล์ด้วยคีย์นี้และส่ง blob ที่เข้ารหัสมาให้เรา เราสามารถตรวจสอบภายในกับพจนานุกรมของแฮชของ blob ที่เข้ารหัสเพื่อตรวจสอบว่าเรามี blob อยู่แล้วหรือไม่ และจัดเก็บหรือปล่อยทิ้ง

ฉันคิดว่าการได้รับคีย์จากข้อความธรรมดาเป็นความคิดที่แย่สำหรับรูปแบบการเข้ารหัสส่วนใหญ่ แต่ฉันสงสัยว่ามีรูปแบบอยู่หรือไม่ หรือมีเทคนิคที่เป็นที่รู้จักสำหรับการทำเช่นนี้หรือไม่

caveman avatar
in flag
หากเป้าหมายเป็นเพียงการ de-dub ทำไมไม่ทำโปรโตคอลในลักษณะที่ตัวระบุไฟล์เป็นแฮช และแยกออกจากกันโดยสิ้นเชิงเกี่ยวกับวิธีที่ผู้ใช้เข้ารหัส เช่น. ให้ผู้ใช้เลือกรหัสผ่านอะไรก็ได้ตามต้องการ แต่คาดหวังให้ผู้ใช้ระบุแฮชของข้อความธรรมดาพร้อมกับไซเฟอร์เท็กซ์หรือไม่
dz flag
แน่นอน แต่ฉันต้องเข้ารหัสไฟล์ของทุกคนด้วยคีย์เดียวกัน โดยที่ฉันไม่รู้คีย์จริงๆ นั่นคือส่วนที่ฉันสนใจ ผู้ใช้ของฉันจะแชร์คีย์เข้ารหัสสำหรับหยดนี้ได้อย่างไร แนวคิดของฉันคือ สิ่งที่พวกเขาทุกคนรู้คือเนื้อหาของไฟล์ หากพวกเขารู้เนื้อหาอยู่แล้ว ก็จะปลอดภัยสำหรับพวกเขาในการถอดรหัสไฟล์ หากพวกเขาทั้งหมดเลือกรหัสผ่านที่แตกต่างกัน ฉันจะต้องเก็บสำเนาไว้สำหรับแต่ละรหัส เนื่องจากข้อความเข้ารหัสทั้งหมดจะแตกต่างกัน
SAI Peregrinus avatar
si flag
"ฉันต้องเข้ารหัสไฟล์ของทุกคนด้วยคีย์เดียวกัน" ทำไม? นั่นเป็นข้อกำหนดที่แปลกมาก
dz flag
ถ้าฉันใช้สองคีย์ ฉันไม่ต้องเก็บ Blob ที่เข้ารหัสสองครั้งใช่หรือไม่ ฉันไม่ต้องการทำอย่างนั้น เพื่อให้ชัดเจน ฉันหมายถึงไฟล์เดียวกัน ดังนั้นหาก alice มี foo.mp3 และ bob มี foo.mp3 ฉันต้องการให้ทั้งคู่อัปโหลด blob ที่เข้ารหัสเหมือนกัน เพื่อที่ฉันจะได้รู้ว่ามันเหมือนกันและเก็บเพียงสำเนาเดียว แต่ไม่มี บริการกลางสามารถรู้ได้ว่ามีอะไรอยู่ในไฟล์
caveman avatar
in flag
คุณต้องการให้ผู้ใช้สามารถถอดรหัสไฟล์ที่คุณโฮสต์ได้หรือไม่
id flag
หากเลือกแฮชเพื่อให้ไม่มีสองไฟล์ที่มีแฮชเดียวกัน และไม่มีสองแฮชที่จะแฮชเหมือนกัน เราสามารถเข้ารหัสแต่ละไฟล์โดยใช้แฮชเดียวของเนื้อหา จากนั้นระบุไฟล์บนสื่อจัดเก็บข้อมูลโดยใช้ แฮชของแฮช ผู้ใช้แต่ละคนจะต้องมีสำเนาของแฮชเดี่ยวที่เข้ารหัสโดยใช้คีย์ส่วนตัวของแต่ละคน ผู้ที่ไม่มีสำเนาของแฮชจะไม่สามารถถอดรหัสไฟล์โดยไม่สามารถย้อนกลับแฮชที่สองได้ ซึ่งถ้าแฮชดีก็ควรจะเป็นไปได้ยาก ยกเว้นการคาดเดาเนื้อหาไฟล์ทั้งหมด
id flag
ดังที่คนอื่นๆ ได้กล่าวไว้ สิ่งนี้เกี่ยวข้องกับการยกเลิกการรับประกันความเป็นส่วนตัวบางประเภท เนื่องจากสามารถบอกได้ว่าผู้ใช้มีไฟล์ที่มีเนื้อหาเฉพาะหรือไม่ อาจมีวิธีในการปิดบังข้อมูลดังกล่าวอยู่บ้าง แต่ถ้าการกระทำของผู้ใช้ที่อัปโหลดไฟล์ขนาด 20 เมกะไบต์ไม่ได้ลดพื้นที่ว่างในดิสก์ลง 20 เมกะไบต์ นั่นอาจเป็นไปได้ว่าไฟล์นั้นมีอยู่แล้ว
cn flag
@ Matt ฉันไม่เห็นว่าทำไมวิธีการที่คุณแนะนำถึงใช้ไม่ได้ บางทีคีย์อาจเป็น SHA256(ไฟล์) พร้อมกับเกลือซึ่งอาจเป็น SHA256(SHA256(ไฟล์)) จากนั้นพวกเขาสามารถเก็บไฟล์ไว้กับคุณและส่ง url ไปยังไฟล์พร้อมกับ SHA(256) ของไฟล์ โปรดทราบว่าคุณสามารถสร้าง URL ที่แตกต่างกันสำหรับผู้ส่งที่แตกต่างกัน เพื่อให้พวกเขาสามารถ "ลบ" ไฟล์ออกจากเซิร์ฟเวอร์ได้ คุณเพียงแค่ลบ url ของพวกเขา แต่สามารถเก็บไฟล์ต้นแบบไว้ได้ตราบเท่าที่ยังไม่มี url ที่ชี้ไปที่ไฟล์นั้น หากแฮช 256 ไม่เพียงพอ คุณสามารถเชื่อมแฮชและเกลืออื่นๆ ได้ อาจไม่จำเป็น
cn flag
แน่นอนว่าส่วนที่ยุ่งยากคือการโน้มน้าวใจ "เจ้าของ" ไฟล์ว่าผู้ให้บริการพื้นที่เก็บข้อมูล (คุณ) ไม่สามารถถอดรหัสไฟล์ได้จริงๆ แม้ว่าคุณจะให้อัลกอริทึมและอาจใช้ไลบรารีและ Ux เพื่อเข้ารหัส ! รับความไว้วางใจหรือผู้มีอำนาจด้านเทคนิคเพื่อเป็นพรแก่วิธีการของคุณ !
Score:16
ธง us

กำลังเข้ารหัส $M$ โดยใช้ $H(ม)$ เนื่องจากกุญแจสำคัญคือแนวทางที่เป็นธรรมชาติและได้รับการศึกษาอย่างดีในการขจัดข้อมูลซ้ำซ้อน เป็นที่รู้จักในวรรณกรรมว่า การเข้ารหัสแบบบรรจบกัน หรือ การเข้ารหัสล็อคข้อความ.

ปัญหาตามธรรมชาติของแนวทางนี้คือไม่สามารถบรรลุแนวคิดมาตรฐานด้านความปลอดภัยสำหรับการเข้ารหัส (IND-CPA, IND-CCA ฯลฯ) แท้จริงแล้วใครจะรู้ $M$ จะสามารถตรวจสอบได้ว่าข้อความเข้ารหัสของผู้สมัครถอดรหัสไปหรือไม่ $M$. จากนั้นคำถามก็จะกลายเป็น: ระดับความปลอดภัยที่ "ดีที่สุด" ที่เราหวังไว้คืออะไร และเราจะบรรลุได้หรือไม่

การวิเคราะห์การเข้ารหัสแบบล็อกข้อความอย่างละเอียดที่สุดที่ฉันรู้คือ:

มิไฮร์ เบลลาเร, ศรีราม คีลวีธี, โธมัส ริสเทนพาร์ท: การเข้ารหัสแบบล็อกด้วยข้อความและการขจัดข้อมูลซ้ำซ้อนที่ปลอดภัยยูโรคริปโต 2013

พวกเขากำหนดแนวคิดด้านความปลอดภัยที่เกี่ยวข้อง และให้โครงสร้างและหลักฐานที่สอดคล้องกัน พวกเขายังพิจารณาเป้าหมายด้านความปลอดภัยอื่นๆ ที่เกี่ยวข้องอย่างใกล้ชิดกับแอปพลิเคชันการขจัดข้อมูลซ้ำซ้อน โดยแยกออกจากความลับมาตรฐานและความสมบูรณ์

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

caveman avatar
in flag
หลังจากลบสำเนาที่ซ้ำกันของการเข้ารหัสที่แตกต่างกันของข้อความที่ชัดเจนเดียวกัน ผู้ใช้ที่แตกต่างกันจะสามารถถอดรหัสสำเนาที่ซ้ำซ้อนกันโดยใช้รหัสผ่านของตนเองได้หรือไม่ เท่าที่ฉันเข้าใจ ในสถานการณ์ของ OP ผู้ใช้ที่แตกต่างกันจะอัปโหลดสำเนาของไฟล์เดียวกัน ยกเว้นว่าแต่ละคนจะถูกเข้ารหัสด้วยรหัสผ่านของผู้ใช้เอง
us flag
หาก $M$ เข้ารหัสด้วย $H(M)$ แสดงว่าไม่ได้เข้ารหัสด้วยรหัสผ่านของผู้ใช้ หากคุณต้องการให้ผู้ใช้สามารถถอดรหัสได้ คุณต้องจัดเก็บ $H(M)$ ที่เข้ารหัสภายใต้รหัสผ่านของผู้ใช้รายนั้น โปรดทราบว่านี่เป็นไซเฟอร์เท็กซ์ที่สั้นมาก

โพสต์คำตอบ

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