Score:6

เหตุใดการคำนวณ mod จึงจำเป็นในการเข้ารหัสแพดแบบครั้งเดียว

ธง de

เมื่อพิจารณาถึงตัวอักษรภาษาอังกฤษที่ต้องเข้ารหัส เหตุใดการคำนวณ mod 26 จึงจำเป็นหลังจากเพิ่มแพดเป็นข้อความธรรมดา เป็นเพียงการเพิ่มการเข้ารหัสอีกระดับหนึ่งหรือใช้เพื่อให้ตัวอักษรสองตัวลงท้ายด้วยสัญลักษณ์เดียวกันในรหัส? 3 mod 26 เป็น 3 และ 29 mod 26 เป็น 3

fgrieu avatar
ng flag
คำแนะนำ: (1) เมื่อใช้ mod แล้วไม่ได้ใช้ ให้ถามตัวเองดังต่อไปนี้: ค่าไซเฟอร์เท็กซ์สูงสุดที่เป็นไปได้คืออะไร มันจะเกิดขึ้นเมื่อไหร่? ฝ่ายตรงข้ามที่สังเกตเห็นค่าดังกล่าวในไซเฟอร์เท็กซ์จะเรียนรู้บางอย่างเกี่ยวกับเพลนเท็กซ์หรือไม่ (2) เจาะลึกยิ่งขึ้น: สมมติว่าข้อความธรรมดาประกอบด้วยอักขระอิสระแบบสุ่มและแผ่นสุ่ม: ข้อมูลเท่าใด (เป็นบิตหรือเศษส่วนของข้อความต่ออักขระธรรมดา) ได้รับการเรียนรู้จากข้อความธรรมดาที่ใช้ mod และไม่ได้ใช้?
jjj avatar
cn flag
jjj
ไม่มีตัวอักษรสองตัวที่ลงท้ายด้วยสัญลักษณ์เดียวกัน ลองคิดดูว่าตัวอักษรซ้ำหลังจาก 25 ดังนั้น 26 จะเป็น "a" อีกครั้ง 3 และ 29 ตรงกับตัวอักษรเดียวกัน Mod แค่ทำให้ตัวเลขเล็กลง คุณจึงต้องการแค่ 0 ถึง 25
Joshua avatar
cn flag
ฉันเป็นคนเดียวหรือเปล่าที่ใช้ One Time Pad ครั้งแรกโดยใช้ตัวเลขห้าหลักโดยที่ตัวเลขไม่ได้อยู่ใกล้ด้านใดด้านหนึ่งเลย? หากเป็น Gaussian แบบสุ่มแทนที่จะเป็นเครื่องแบบแบบสุ่ม ข้อมูลจะรั่วไหลน้อยมาก
Paul Uszak avatar
cn flag
@Joshua ไม่ คุณไม่สามารถมีคีย์ Gaussian OTP ยกเว้นกรณีที่คุณไม่มีตัวแยกการสุ่มจาก TRNG ของคุณ
Score:21
ธง fr

มีสองสาเหตุหลัก

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

ประการที่สองและที่สำคัญกว่านั้น การไม่ใช้เลขคณิตแบบโมดูลาร์จะทำให้ข้อมูลรั่วไหล ซึ่งบางครั้งอาจมีข้อมูลจำนวนมาก เกี่ยวกับข้อมูลนั้น ตัวอย่างเช่น หากเราใช้ช่วง 0-25 เพื่อแสดงตัวอักษร หากเราเห็น 0 เป็นเอาต์พุตที่เข้ารหัส เรารู้ว่าทั้งแพดและอินพุตเป็น 0 และถ้าเราเห็น 50 เราก็รู้ว่าทั้งสอง แผ่นและอินพุตคือ 25 ในทำนองเดียวกัน 49 บอกเราว่าตัวเลขสองตัวที่เกี่ยวข้องคือ 24 และ 25 ตามลำดับ ด้วยข้อมูลประเภทนั้นและการวิเคราะห์ทางสถิติ เราอาจสามารถถอดรหัสข้อความรหัสได้

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

fgrieu avatar
ng flag
"เราอาจจะสามารถถอดรหัสข้อความรหัสได้": สมมติว่าภาษาอังกฤษไม่มีช่องว่าง ฉันคิดว่านั่นจะเป็นสิ่งที่ท้าทาย การศึกษาเมื่อสามารถทำได้จริงเป็นปัญหาที่น่าสนใจ!
jp flag
@fgrieu ท้าทาย แต่ไม่จำเป็นต้องเป็นไปไม่ได้
John Coleman avatar
jp flag
@ user253751 ด้วยสตรีมคีย์แบบสุ่ม ฉันจะบอกว่าการโจมตีเฉพาะข้อความเข้ารหัสซึ่งประสบความสำเร็จในการกู้คืนข้อความธรรมดานั้นเป็นไปไม่ได้ สิ่งที่คุณทำได้คือตัดข้อความธรรมดาของผู้สมัครออก ดังนั้นมันจะทำให้ข้อมูลรั่วไหลอย่างแน่นอน แต่โดยทั่วไปไม่เพียงพอสำหรับการหยุดพักทั้งหมด สำหรับข้อความที่สั้นกว่าบางข้อความอาจมีข้อมูลเพียงพอสำหรับการคาดเดาโดยเฉพาะอย่างยิ่งหากมีข้อมูลก่อนหน้าเกี่ยวกับเนื้อหาที่เป็นไปได้ของข้อความธรรมดา
fgrieu avatar
ng flag
หากข้อความธรรมดาเป็นแบบสุ่ม ฉันเข้าใจว่าเราจะเรียนรู้ â0,7191 บิต/สัญลักษณ์ ซึ่งฉันคิดว่าไม่เพียงพอที่จะสร้างภาษาอังกฤษขึ้นใหม่แม้จะกึ่งน่าเชื่อถือก็ตาม เท่าใดที่เราเรียนรู้สำหรับข้อความธรรมดาภาษาใดภาษาหนึ่งขึ้นอยู่กับความถี่ของตัวอักษรและค่าที่กำหนดให้กับตัวอักษรแต่ละตัว แต่ฉันคิดว่ามันยังคงน้อยกว่า 1 บิต/สัญลักษณ์อย่างมาก และนั่นก็ยังไม่มาก
cn flag
เนื่องจากคำถามที่ถามเฉพาะเกี่ยวกับ mod 26 ฉันคิดว่าข้อความจะเป็นภาษาอังกฤษธรรมดาพร้อมเครื่องหมายวรรคตอนและช่องว่างที่ไม่ได้เข้ารหัส นี่คงจะเป็นเรื่องไร้สาระหากคุณพยายามเพื่อความปลอดภัยอย่างแท้จริง คุณสามารถสร้างตารางตามความน่าจะเป็นของตัวอักษรแต่ละตัวที่มีค่าและพิจารณาว่าตัวอักษรนั้นเกิดขึ้นบ่อยแค่ไหนและช่วงใดที่เป็นไปได้ คุณสามารถทำเช่นเดียวกันกับคำต่างๆ และจำกัดด้วยตัวอักษรที่เป็นไปได้และมีแนวโน้มว่าจะเกิดขึ้นกับคำแต่ละคำ จากนั้น คุณสามารถจำกัดได้ด้วยการแยกวิเคราะห์ภาษา และข้อมูลใดๆ ที่คุณทราบเกี่ยวกับข้อความ...
cn flag
ตัวอย่างเช่น สมมติว่าข้อความต้นฉบับคือ 'a-z' และไม่มี mod ก็สามารถเพิ่มค่าเป็น 'A-Z' ได้ (เช่น 'e' คือ 4 การบวก 21 จะให้ 'z' การเพิ่ม 22 จะให้ 'A' เป็นต้น) ถ้าไซเฟอร์เท็กซ์มี 'd' แสดงว่าตัวอักษรนั้นต้องเป็น a, b, c หรือ d ถ้าข้อความรหัสของคำคือ 'aB' คุณจะรู้ว่ามันคือ 'a' และตัวอักษรอื่นๆ จาก c ถึง z นั่นอาจเป็น 'at', 'an', 'as' แต่ไม่ใช่ 'aj', 'ao', 'ap' เพราะนั่นไม่ใช่คำ 'as' เป็นคำโฆษณาหรือคำเชื่อมและคำภาษาอังกฤษที่ได้รับความนิยมสูงสุดอันดับที่ 17, 'at' คืออันดับที่ 20 และคำบุพบท, 'an' คืออันดับที่ 32 และบทความ คุณไม่สามารถถอดรหัส...
cn flag
ข้อความที่มีความแน่นอน 100% ในกรณีส่วนใหญ่ แต่คุณสามารถเขียนซอฟต์แวร์เพื่อถอดรหัสที่ *น่าจะเป็น* มากที่สุดโดยไม่ต้องทำงานมากเกินไป
John Coleman avatar
jp flag
@JasonGoemaat ในการเข้ารหัสแบบคลาสสิก ช่องว่างและเครื่องหมายวรรคตอนจะถูก *ระงับ* แทนที่จะปล่อยให้ไม่มีการเข้ารหัส แน่นอนว่านี่เป็นเรื่องงี่เง่าในแง่ของความปลอดภัยที่แท้จริง แต่ระยะทางของยูนิซิตี้ที่มีคีย์สุ่มจะยังคงใกล้เคียงกับความยาวของคีย์ทั้งหมด คุณอาจนึกถึงแนวคิดของการถอดรหัสที่เป็นไปได้มากที่สุด แต่เนื่องจากการถอดรหัสที่เป็นไปได้จำนวนมากทางดาราศาสตร์ ความน่าจะเป็นที่เป็นปัญหาอาจต่ำกว่า 1%
dan04 avatar
in flag
เพื่อทดสอบแนวคิดนี้ ต่อไปนี้เป็นข้อความที่เข้ารหัสตัวอักษรแต่ละตัว A=0...Z=25 บวกเลขหลอกเทียม âkeyâ ระหว่าง 0 ถึง 25: 13-28-30-10-38-22 -38-21-36-8-21-15-15-30-39-14-28-16-19-20-39-19-25-18-14-21-26-36-41-31-23 -24-21-22-14-14-17-35-11-7-31-28-23-11-36-26-42-20-40-29-12-11-31-28-37.
John Coleman avatar
jp flag
@dan04 ความคิดที่น่าสนใจมี `37979562564556140050029561655702064479432532295680000000000000000000` แม้ว่าส่วนใหญ่จะไม่สอดคล้องกับภาษาอังกฤษที่เหมาะสม การดูแค่ตัวอักษรสามตัวแรก เป็นเรื่องง่ายที่จะค้นหาคำที่มีตัวอักษร 3 ตัวหลายตัวซึ่งสามารถเข้ารหัสด้วยวิธีนั้น (และแน่นอนว่าไม่จำเป็นต้องเริ่มต้นด้วยคำที่มีตัวอักษร 3 ตัว) เพื่อให้มีความคืบหน้ามากขึ้น ฉันจะสร้าง [DAWG](https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton) สำหรับรายการคำขนาดใหญ่ และเขียนสคริปต์สำหรับเปลี่ยนลำดับเริ่มต้นของข้อความเข้ารหัสเป็นเส้นทางผ่าน
jp flag
@dan04 ฉันจะถือว่ามันไม่ใช่ "ขอแสดงความยินดี ภาพประกอบที่น่าทึ่ง สิทธิ์ของนักล่าตัวแม่" (ใช่ "milfhunter" ปรากฏในรายการคำศัพท์ 10k ของ Google อย่างจริงจัง) แต่ "ขอแสดงความยินดี" เป็นคำเริ่มต้นที่เป็นไปได้มากเมื่อพิจารณาจากบริบท และ "ดราม่า-" ก็มีแนวโน้มที่สมเหตุสมผลเช่นกัน คำยาวๆ มักจะเดาถูกมากกว่าเพราะมีข้อ จำกัด มากกว่า แน่นอนว่าอาจเป็นเรื่องบังเอิญที่คำว่า "ขอแสดงความยินดี" เข้ากันได้ ฉันไม่ได้ลองใช้คำเล็กๆ เช่น "ขอแสดงความยินดี คุณมี" หรือ "ขอแสดงความยินดี นี่คือ"
dan04 avatar
in flag
@user253751: âขอแสดงความยินดีâ เป็นคำแรกที่ตั้งใจไว้จริงๆ ตอนนี้คุณเพียงแค่ต้องค้นหาการรวมกันของคำภาษาอังกฤษอื่นๆ ที่ (หลังจากลบเครื่องหมายวรรคตอนและช่องว่างออกแล้ว) ที่ตรงกับ regex `[A-O][D-Z][A-Q][A-T][A-U][O-Z][A-T][A-Z][A-S ][A-O][A-V][B-Z][L-Z][Q-Z][G-Z][A-X][A-Y][A-V][A-W][A-O][A-O][A-R][K-Z][A-L][A-H][ G-Z][D-Z][A-X][A-L][L-Z][B-Z][R-Z][A-U][P-Z][E-Z][A-M][A-L][G-Z][D-Z][M-Z]`
jp flag
@dan04 "ภาพประกอบดราม่า สิทธิ์ของ milfhunter" คือการผสมผสานกัน :P
John Coleman avatar
jp flag
@dan04 'ขอแสดงความยินดี: พจนานุกรมมีตัวเลือกมากมาย: ค้นหาความลับ' เป็นการถอดรหัสที่เป็นไปได้ซึ่งฉันไม่มั่นใจเลย ฉันเขียนสคริปต์เพื่อค้นหาข้อมูลที่ตรงกันในส่วนของข้อความเข้ารหัสโดยใช้รายการคำ 10K และรู้สึกประหลาดใจที่มีจำนวนมาก มีความเป็นไปได้เกือบ 2,000 คำสำหรับคำถัดไปหลังจาก 'ขอแสดงความยินดี'โชคยังดีที่วิธีการเข้ารหัสนี้ดูเหมือนจะทนทานต่อการกู้คืนข้อความธรรมดาทั้งหมด (ซึ่งแน่นอนว่าไม่ได้หมายความว่าจะดีแต่อย่างใด)
Score:19
ธง jp
Fax

ไม่ใช้ข้อมูลการรั่วไหลของโมดูลัส

สำหรับภาษาอังกฤษนั้นไม่ชัดเจนนัก สำหรับภาพในทางกลับกัน ...

สิ่งที่ดูเหมือนจะเป็นเสียงแบบสุ่มทางด้านซ้าย และเสียงทักซิโดที่ส่งเสียงดังแต่สามารถระบุตัวตนได้อย่างชัดเจนทางด้านขวา

ครึ่งซ้ายใช้การบวกและโมดูลัส ครึ่งขวาใช้การบวกและการหารด้วยสอง (เช่น ความสว่างครึ่งหนึ่ง)

Paul Uszak avatar
cn flag
ไม่แน่ใจว่า TUX รุ่นเยาว์เป็นตัวอย่างที่เหมาะสม (เช่น OTP) เนื่องจากค่าอักขระที่ไม่เท่ากันไม่สามารถแบ่งออกเป็นจำนวนเต็มได้ แน่นอนว่าคุณได้ปัดเศษค่า RBG (จำนวนเต็ม) แล้ว คุณต้องการการแมปอัลกอริทึม/อักขระ/คีย์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ซึ่งจะไม่สุ่มอย่างสม่ำเสมอ แต่เป็นกลุ่มบางประเภท
dan04 avatar
in flag
@PaulUszak: เพื่อให้ถูกต้องทางเทคนิค รูปแบบเอาต์พุตจะต้องรองรับค่า RGB ในช่วง [0, 510] และใช้การบีบอัดแบบไม่สูญเสียข้อมูล รูปภาพนี้เป็นเพียงการประมาณที่นี่เนื่องจากข้อจำกัดทางเทคนิค ประเด็นคือ หากคุณ 'เข้ารหัส' ภาพแรสเตอร์และได้รับสิ่งที่มองเห็นได้ง่ายในสายตามนุษย์ (แม้ว่าจะมี 'สัญญาณรบกวน' แบบสุ่ม) แสดงว่าคุณมีอัลกอริทึมการเข้ารหัสที่แย่มาก
Fax avatar
jp flag
Fax
@PaulUszak เป็นไปได้อย่างแน่นอนที่จะสร้างภาพที่ไม่มีการสูญเสีย 9 บิตโดยไม่มีการแบ่งและการปัดเศษ แต่แม้ว่าคุณจะมีจอภาพที่สามารถแสดงผลได้ แต่ก็จะไม่เปลี่ยนข้อสรุป
Score:3
ธง cn

มันไม่ใช่.

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

นี่คือการเข้ารหัส/ถอดรหัสโดยไม่มีคณิตศาสตร์โดยใช้ส่วนกลับ ไดอาน่า ตาราง:-

ตาราง

โปรดทราบว่ามีอักขระมากกว่า 26 ตัวในการเข้ารหัส มีตัวเลข เครื่องหมายวรรคตอน (สำคัญมาก เพราะมันสามารถเปลี่ยนความหมายของประโยคได้เมื่อประกาศสงครามกับใครบางคน) จากนั้นมีการแจกแจง โค้ดเวิร์ดเช่น 73 (หมายถึงบางอย่างกับใครบางคน) จากหน้าวิกิ: "เดอะ JN-25 รหัสที่ใช้ในสงครามโลกครั้งที่ 2 ใช้สมุดรหัสของกลุ่มรหัส 30,000 กลุ่มที่เข้ารหัสขั้นสูงด้วยสารเติมแต่งแบบสุ่ม 30,000 รายการ ". ก่อนหน้านี้ คุณอาจทำแผนที่โมดูโล 10 ทีละหลัก

Maarten Bodewes avatar
in flag
คำถามอ่านว่า: "เหตุใดการคำนวณ mod 26 จึงจำเป็น *หลังจากเพิ่มแพดเป็นข้อความธรรมดา*" โพสต์ของคุณน่าสนใจอย่างแน่นอน แต่ไม่ตอบคำถาม ส่วนที่สองของคำตอบของคุณก็ขัดแย้งกับสมมติฐานในบรรทัดแรกของคำถามเช่นกัน: "*พิจารณาตัวอักษรภาษาอังกฤษ* ที่จะเข้ารหัส"
ilkkachu avatar
ws flag
และถ้าคุณดูวิธีการสร้างตาราง คุณจะเห็นเช่น ใต้คอลัมน์ 'N' สองรายการ 'Ma' และ 'Nz' ติดกัน ที่บอกถึงเลขคณิตแบบโมดูลาร์
Paul Uszak avatar
cn flag
@MaartenBodewes คำตอบของฉันถูกต้องเพราะคำถามเป็นที่สงสัย เราสามารถทำ "A/9" $\to$ ซึ่งเกี่ยวข้องกับมิตรภาพเท่านั้น และไม่มีคณิตศาสตร์

โพสต์คำตอบ

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