Score:1

XORing เป็นสตริงที่เข้ารหัส Base64 ปลอดภัยหรือไม่

ธง cz

ในทางทฤษฎี การเข้ารหัสสตริงโดยใช้ Base64 ก่อนแล้วจึง XOR ด้วยคีย์สุ่มจะปลอดภัยหรือไม่ หรือมีจุดอ่อนที่อาจถูกโจมตีได้หรือไม่

เห็นได้ชัดว่าสิ่งนี้ไม่สมเหตุสมผลในทางปฏิบัติ แต่ฉันสงสัยว่าสิ่งนี้จะปลอดภัยเท่ากับ XORing และ Base64ing หรือไม่

Score:2

หากคุณใช้ข้อความธรรมดาที่เป็นความลับ $พี$ ความยาว $n$ และกุญแจแบบใช้ครั้งเดียว $K$, ยังมีความยาว $n$ซึ่งสร้างขึ้นแบบสุ่ม (ในความหมายการเข้ารหัสของคำนี้) ข้อความรหัส $C = P \oบวก K$ ได้รับจากการ xoring พวกเขาไม่ได้เปิดเผยอะไรเกี่ยวกับ $พี$ แก่ศัตรูผู้ไม่รู้ $K$, นอกจากความยาวของ $พี$. เท่าที่เกี่ยวข้องกับศัตรู $พี$ อาจเป็นสตริงที่มีความยาวเท่าใดก็ได้ $n$.

หากคุณเข้ารหัสข้อความธรรมดาใน Base64 ก่อนและใช้คีย์ $K'$ ความยาว $n' = \mathsf{length}(\mathsf{Base64}(P))$, ไซเฟอร์เท็กซ์ $C' = \mathsf{Base64}(P) \oบวก K'$ ไม่เปิดเผยอะไรนอกจากความยาวของ $\mathsf{Base64}(P)$ซึ่งอยู่ในการติดต่อแบบตัวต่อตัวกับความยาวของ $พี$. ดังนั้นการเข้ารหัส Base64 นั้นดีพอ ๆ กับการ xoring ข้อความต้นฉบับ

โปรดทราบว่าสิ่งสำคัญคือการสุ่มคีย์ หากตัวคีย์ถูกเข้ารหัสใน Base64 เช่น หากคุณเผยแพร่ข้อความเข้ารหัส $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$ซึ่งจะทำให้ข้อมูลเกี่ยวกับข้อความรั่วไหลออกไปเล็กน้อย Xoring คีย์สุ่มใช้งานได้เพราะสำหรับแต่ละตำแหน่งในไซเฟอร์เท็กซ์ อักขระทุกตัวเป็นไปได้สำหรับข้อความธรรมดา ซึ่งสอดคล้องกับอักขระทุกตัวสำหรับคีย์ แต่ถ้าเป็นตัวละครใน $\mathsf{Base64}(P) \oplus \mathsf{Base64}(K)$ มีชุดบิต 0x40 (สมมติว่าเข้ารหัสตาม ASCII) มี $52/64$ โอกาสที่ตัวละครที่ตรงกันใน $\mathsf{Base64}(P)$ เป็นหนึ่งใน 0123456789-/เพราะมีก $52/64$ โอกาสที่ตัวละครที่ตรงกันใน $\mathsf{Base64}(P)$ เป็นจดหมาย

ในขณะที่เข้ารหัส ผลลัพธ์ ของการเข้ารหัส Base64 ไม่รั่วไหล ข้อมูลเพิ่มเติมที่เข้ารหัสข้อความต้นฉบับ, the กระบวนการ ในการเข้ารหัสหรือถอดรหัส Base64 อาจทำให้ข้อมูลเกี่ยวกับข้อความรั่วไหลผ่านช่องทางด้านข้างได้.

Score:2
ธง in

ในทางทฤษฎี การเข้ารหัสสตริงโดยใช้ Base64 ก่อนแล้วจึง XOR ด้วยคีย์สุ่มจะปลอดภัยหรือไม่ หรือมีจุดอ่อนที่อาจถูกโจมตีได้หรือไม่

ไม่ สิ่งนี้ปลอดภัย มันอาจจะเป็น เล็กน้อย ปลอดภัยมากขึ้นหากการเข้ารหัสลบข้อมูลขนาดบางส่วน

อย่างไรก็ตาม, เอ็กซ์ออร์ การเข้ารหัส จะปลอดภัยก็ต่อเมื่อมันใกล้เคียงกับแป้นแบบครั้งเดียวเท่านั้น ไม่แน่นอนกับแป้นแบบหลายเวลา นั่นคือคีย์สตรีมที่เป็น XOR'ed ในตอนนี้ต้องเป็น ตราบใดที่ข้อความเข้ารหัสฐาน 64. ในกรณีที่ใช้แพดแบบหลายเวลา การเข้ารหัสฐาน 64 น่าจะมีให้ มากกว่า ข้อมูลเกี่ยวกับข้อความธรรมดาไปยังผู้โจมตี

เห็นได้ชัดว่าสิ่งนี้ไม่สมเหตุสมผลในทางปฏิบัติ แต่ฉันสงสัยว่าสิ่งนี้จะปลอดภัยเท่ากับ XORing และ Base64ing หรือไม่

ถ้ามันสมเหตุสมผลขึ้นอยู่กับบางครั้งเช่นสตริง XML และ JSON จำเป็นต้องเข้ารหัสและนั่นหมายถึงการเข้ารหัสการเข้ารหัสฐาน 64 ที่ฝังอยู่ (ถ้ามี)

อย่างไรก็ตาม ไม่มีเหตุผลที่จะเข้ารหัสฐาน 64 ก่อนการเข้ารหัส หากคุณมีรูปแบบข้อความไบนารีอยู่แล้ว นอกจากนั้น คุณยังดีกว่าการใช้รูปแบบ AEAD ที่ดีกว่าการเข้ารหัสแบบ XOR บางตัว แม้ว่ามันจะคล้ายกับแพดแบบใช้ครั้งเดียวก็ตาม

hhhhhhhh avatar
cz flag
ถ้าใช้แผ่นแบบหลายเวลา จุดอ่อนคืออะไรกันแน่? เช่น. เหตุใดการใช้อย่างใดอย่างหนึ่งจึงเปิดเผยข้อมูลเพิ่มเติมแก่ผู้โจมตี
Maarten Bodewes avatar
in flag
มีคำถามมากมายเกี่ยวกับเรื่องนี้ แต่ [คำถามนี้จากปี 2012](https://crypto.stackexchange.com/q/2249/1172) น่าจะเป็นจุดเริ่มต้นที่ดีที่สุด

โพสต์คำตอบ

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