Score:0

ข้อเสียของการเข้ารหัสที่ปฏิเสธได้

ธง br

อะไรคือข้อเสียของรูปแบบการเข้ารหัสที่เป็นรูปแบบการเข้ารหัสที่ปฏิเสธได้? มีวิธีทั่วไปในการแปลงโครงร่างการเข้ารหัสหรือไม่ $\pi$ ถึง $\pi'$ รูปแบบการเข้ารหัสใดที่จะปฏิเสธได้

Score:1
ธง ng

ฉันจะถือว่า "รูปแบบการเข้ารหัสที่ปฏิเสธได้" เป็นรูปแบบการเข้ารหัสที่มีคีย์ลับ/ถอดรหัสลับ (หรือรหัสผ่าน) อย่างน้อยสองคีย์: คีย์หนึ่งที่ผู้ใช้ใช้จริงๆ เพื่อป้องกันข้อมูลที่เป็นความลับ และคีย์ล่ออย่างน้อยหนึ่งคีย์ที่ผู้ใช้ สามารถให้เมื่อถูกกดดันให้ทำ และที่สามารถผ่านเป็นคีย์ที่ถูกต้อง นั่นอาจเป็นเพราะคีย์หลอกถอดรหัสข้อความธรรมดาบางอย่างที่สามารถส่งผ่านสิ่งที่ผู้ใช้พยายามซ่อน (ภาพอนาจารในอุดมคติ: มีเหตุผลที่เป็นไปได้ที่จะซ่อนแม้ว่าจะถูกกฎหมายก็ตาม)

ท่ามกลางข้อเสียของการเข้ารหัสที่ปฏิเสธได้

  • เนื่องจากต้องมีที่ว่างในไซเฟอร์เท็กซ์สำหรับทั้งเพลนเท็กซ์จริงและเดค ดังนั้นไซเฟอร์เท็กซ์จึงมีขนาดใหญ่กว่าการเข้ารหัสมาตรฐาน
  • สำหรับการเข้ารหัสดิสก์ที่ปฏิเสธได้ มีข้อควรพิจารณาเล็กน้อยในการซ่อนส่วนใดของดิสก์ที่ใช้ วิธีที่ปลอดภัยที่สุดคือการเขียนข้อมูลแบบสุ่มลงทั้งดิสก์ก่อนใช้งาน แต่ใช้ช้าก่อน และสร้างการแมปแบบลอจิคัลกับฟิสิคัลแบบสุ่ม แต่นั่นทำให้การทำงานช้าลงในไดรฟ์เชิงกล และทำให้ปัญหาน้อยลงใน SSD
  • แม้จะมีข้อควรระวังข้างต้น การถ่ายภาพดิสก์ก่อนและหลังการเปลี่ยนแปลงข้อมูลเพย์โหลดจริงอาจช่วยให้สามารถระบุตำแหน่งได้ และหากไม่มีการเปลี่ยนแปลงข้อมูลหลอกก็สามารถระบุได้ว่าข้อมูลที่ได้รับพร้อมรหัสผ่านนั้นเป็นข้อมูลลวงหรือข้อมูลจริง
  • เป็นการยากที่จะซ่อนว่าระบบที่ปรับใช้สามารถใช้การเข้ารหัสที่ปฏิเสธได้ จนกว่าระบบที่สามารถเข้ารหัสแบบปฏิเสธได้จะกลายเป็นที่ใช้กันทั่วไปโดยผู้ที่ใช้เฉพาะการเข้ารหัสแบบ non-decoy (แม้จะมีข้อเสียข้างต้น) การใช้เพียงระบบเข้ารหัสที่สามารถเข้ารหัสแบบปฏิเสธได้ก็ก่อให้เกิดความสงสัยได้
  • หากการเข้ารหัสที่ปฏิเสธไม่ได้นั้นมีหลายระดับโดยที่ผู้สอบสวนไม่มีทางรู้ได้ว่ามีกี่ระดับ การเข้ารหัสแบบท่อยาง (คำสละสลวยมาตรฐานสำหรับการทรมาน XKซีดี 538) มีแนวโน้มที่จะผ่านจุดที่ผู้ถือกุญแจได้เปิดเผยที่สุด
  • การเข้ารหัสที่ปฏิเสธไม่ได้นั้นมีความเสี่ยงเช่นเดียวกับระบบการเข้ารหัสอื่น ๆ ต่อภัยคุกคามที่แท้จริงอื่น ๆ เช่นการดักจับรหัสผ่านเมื่อป้อน
Score:0
ธง cn

ในกรณีของ one-time pad (OTP) รูปแบบการเข้ารหัสแบบปฏิเสธที่ง่ายที่สุดอาจใช้ ข้อความล่อ และ กุญแจล่อ ที่สร้างก Ciphertext สากล ที่จะเหมือนกัน Ciphertext สากล ที่จะ XORed กับ ข้อความจริงส่งผลให้เกิดการกำหนดขึ้น คีย์จริง (โดยมีเงื่อนไขว่าความยาวของข้อความจริงอย่างน้อยเท่ากับข้อความล่อและผลลัพธ์ของคีย์และไซเฟอร์เท็กซ์เพื่อหลีกเลี่ยงความจำเป็นในการเติม)

  • ข้อเสียเปรียบจะถือว่าบิตข้อความธรรมดาเป็นคีย์ส่วนตัวในแง่ของ สร้างคีย์ความปลอดภัย (คีย์จริง) เนื่องจากได้มาจาก a "ข้อความธรรมดา" ในที่นี้เรียกว่า จริง ข้อความ.

ดังนั้นความปลอดภัยของคีย์จริงในบิตจะขึ้นอยู่กับ การสุ่มและความยาว (และการรักษาความปลอดภัยที่เป็นผลลัพธ์หรือสืบทอด) ของข้อความจริง เป็นบิต (ดังนั้นข้อความต้องได้รับการปฏิบัติอย่างแท้จริงและเปรียบเปรยเสมือนเป็นคีย์ส่วนตัวในแง่ของการรักษาความปลอดภัยทั้งระบบเพื่อให้ข้อความจริงปลอดภัย เนื่องจากไม่ได้ "รักษาความปลอดภัย" ด้วยคีย์ส่วนตัว (แต่คีย์ส่วนตัวคือ ถูกสร้างขึ้นจากข้อความ) ด้านล่างนี้คือตัวอย่าง:

pl= กุญแจล่อ
k1= ข้อความล่อลวง
c1 = ข้อความไซเฟอร์สากล
p2= คีย์จริง
k2= ข้อความจริง

p1âk1 =c1

c1âk2 = k1

*ข้อความล่อ (ความยาว n) â คีย์ล่อ (ความยาว n) = Universal Ciphertext (ความยาว n)

*Universal Ciphertext (ความยาว n) â ข้อความจริง (ความยาว n) = คีย์จริง (ความยาว n)

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

สมมติฐานด้านความปลอดภัยที่สำคัญ: สำหรับข้อความจริงที่มีความปลอดภัยเพียงพอ (ข้อความธรรมดา) เช่น จำนวนเต็ม 256 บิตที่สร้างโดย CSPRNG ผลลัพธ์ของคีย์จริงที่คำนวณหลังจาก XOR เทียบกับ Universal ciphertext โดยที่รากที่สองของ [พื้นที่ข้อความ * พื้นที่คีย์] = พื้นที่ข้อความรหัส (รวมถึงรายการที่ซ้ำกันคือ 2^512 เนื่องจากการแลกเปลี่ยนของ XOR) ซึ่งข้อความและคีย์อื่นๆ อย่างน้อยหลายครั้ง (2^256) จะสร้างข้อความรหัสสากลเดียวกัน ดังนั้นจึงไม่มีทางรู้ได้ว่าข้อความหรือคีย์ใดคือข้อความใดที่เป็นปัญหา เนื่องจากข้อความหรือคีย์ทั้งหมดดูเหมือนจะถูกต้อง หากข้อความนั้น (ถือเป็นตัวสร้างคีย์) มีความปลอดภัยเพียงพอ หากปราศจากความรู้ล่วงหน้าเกี่ยวกับคีย์จริงขีดจำกัด/ช่วงนี้ถูกควบคุมโดยจำนวนของสมการ XOR ที่แตกต่างกันที่มีอยู่ (โดยไม่มีการเปลี่ยนรูป) สำหรับช่วงใดๆ ของจำนวนเต็มจริงใดๆ (เช่น n=256) ตามลำดับต่อไปนี้ A028401.

ตัวอย่างรหัส Python เพื่อคำนวณ XOR ที่แตกต่างกัน:

Initial_bits= int(อินพุต("ป้อนจำนวนบิต"))
Initial_number_range= 2**Initial_bits
Unique_XOR_triplets=((Initial_number_range+1)*(Initial_number_range+2))//6
Total_triplet_input_terms =((ช่วงหมายเลขเริ่มต้น//2)+1)*(ช่วงหมายเลขเริ่มต้น)+(ช่วงหมายเลขเริ่มต้น//2)+1
Repeat_Groups=(Total_triplet_input_terms)-((Initial_number_range**2)//2)-Initial_number_range
Checksum_repeat_group=(Initial_number_range//2)+1

print('1: Initial_bits นี่จะกลายเป็นเลขชี้กำลังสำหรับ 2 ยกกำลัง:',Initial_bits)
พิมพ์('2: Initial_number_range, สองยกเป็นจำนวนบิตเริ่มต้นเท่ากับ:',Initial_number_range)
พิมพ์('3: Unique_XOR_triplets สามคำที่ป้อนนับเป็นหนึ่ง:',Unique_XOR_triplets)
พิมพ์('4: Total_triplet_input_terms (เช่น A XOR B = C จะเป็นสามเงื่อนไขการป้อนข้อมูล):',Total_triplet_input_terms)
พิมพ์('5: Repeat_Groups, แต่ละหมายเลขในกลุ่มทำซ้ำหลายครั้ง, และเพิ่มอีกหลายครั้งเป็นศูนย์:',Repeat_Groups)

รหัส Python พร้อมรูปแบบการเข้ารหัสที่ปฏิเสธได้โดยใช้สตริง 56 บิตที่ไม่ปลอดภัย ดังตัวอย่าง:

P1 = 0B011010000110010101101100011011000110111110000000000000000 #PLINETEXT1 Dummy ข้อความ 56- บิตตัวอย่าง ASCII สำหรับ "สวัสดี"
p1=ถัง(p1)
k1= 0b10011001100110011001100110011001100110011001100110011000 #key1 DUMMY KEY ตัวอย่าง 56 บิต: 0b10011001100110011001100110011001100110011001101010101010
k1=ถัง(k1)
c1= int(p1,2)^int(k1,2) #ciphertext (คำนวณ DETERMINISTIC 56 บิตที่ได้มาจากข้อความจำลอง XOR พร้อมคีย์จำลอง): "0b1111000111111100111101011111101011111101101001100110011000"
c1=ถัง(c1)
p2= 0b01101100011001010110000101110110011010010110111001100111 #plaintext2 REAL MESSAGE ตัวอย่าง 8 บิต ASCII สำหรับ "ออก" : 0b0110110001100101011000010111011001101010101010101010101010101010101010
p2=ถัง(p2)
k2= int(c1,2)^int(p2,2) #key2 REAL KEY ((คำนวณ DETERMINISTIC) 56 บิตที่ได้มาจาก XOR'ing Ciphertext พร้อมข้อความจริง: 0b10011101100110011001010010000011100111111111011111111111
k2=ถัง(k2)

พิมพ์ ('p1 ข้อความจำลองคือ:',p1)
พิมพ์ ('k1 DUMMY KEY คือ:',k1)
พิมพ์ ('c1 UNIVERSAL CIPHERTEXT คือ:',c1)
พิมพ์('p2 ข้อความจริงคือ:',p2)
พิมพ์ ('k2 REAL KEY คือ:',k2) ## "คีย์" นี้กำหนดขึ้นได้ ดังนั้นจึงแข็งแกร่งเท่ากับการสุ่มของข้อความเท่านั้น 
พิมพ์ ('ข้อความจริง p2:', (p2),
      'เป็นจริง',(int(p2,2))== int(k2,2)^int(c1,2))
พิมพ์('เป็น c1 ',c1,'xor p2', p2, 'เท่ากับ',bin(int(k2,2)), 'เป็นจริง')

พิมพ์((int(k2,2)==(int(c1,2)^(int(p2,2)))))
พิมพ์('และเท่ากับ = ',bin(int(c1,2)^(int(p2,2))))

โพสต์คำตอบ

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