Score:1

ถอดรหัสการเข้ารหัส AES ผ่านการโจมตีพจนานุกรมรหัสผ่านหรือไม่

ธง fr

มันจะง่ายแค่ไหนที่จะถอดรหัสไฟล์ที่เข้ารหัส AES-256 ซึ่งได้รับการปกป้องด้วยข้อความรหัสผ่าน?

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

ฉันไม่มีประสบการณ์ในการเข้ารหัสเลย แต่พยายามประมาณค่าง่ายๆ: ตามพจนานุกรมของ Oxford มีคำศัพท์ภาษาอังกฤษประมาณ 170,000 คำที่ใช้อยู่ แน่นอนว่ามีเพียงส่วนน้อยเท่านั้นที่เป็นรหัสผ่านที่ใช้บ่อย แต่ขอใช้ตัวเลขนี้

หากเราพยายามบังคับให้ใช้ข้อความรหัสผ่านแบบเดรัจฉาน ฉันคิดว่าเราจะเริ่มต้นด้วยข้อความรหัสผ่านยาว 1 คำ ตามด้วยยาว 2 คำ ไปเรื่อยๆ สมมติว่าคำไม่ซ้ำกัน สิ่งนี้จะให้ความเป็นไปได้ทั้งหมด :

$N(L) = \sum_{i=1}^L \frac{170000!}{i!}$

โดยที่ L คือความยาววลีรหัสผ่านสูงสุด (จำนวนคำ) ที่เราต้องการลองถอดรหัส

เพื่อให้ได้จำนวนการเรียงสับเปลี่ยนของรอบ $2^{256}$ดังนั้น เราจำเป็นต้องมีข้อความรหัสผ่านอย่างน้อย 18 คำ เมื่อพิจารณาแล้ว $N(15) = 2.85\times10^{78} = 2^{260}$.

ถูกต้องหรือไม่ที่จะสันนิษฐานว่า หากผู้โจมตีรู้ว่า "รหัสผ่าน" เป็นวลีรหัสผ่านที่ประกอบด้วยคีย์ภาษาอังกฤษ วลีรหัสผ่านต้องมีความยาวอย่างน้อย 15 คำเพื่อไม่ให้เป็นลิงก์ที่อ่อนแอกว่าใน รูปแบบการเข้ารหัส AES?

kelalaka avatar
in flag
ทำไมคุณถึงต้องการการคำนวณเช่นนี้? เหตุใดคุณจึงไม่ใช้ Dicewire หรือ Bip39 เพื่อรักษาความปลอดภัยให้กับคีย์ของคุณด้วยอัลกอริธึมการสืบทอดคีย์ที่ดี เช่น Argon2 หรือ Scrypt
Score:2

สมมติว่าคำไม่ซ้ำกัน สิ่งนี้จะให้ความเป็นไปได้ทั้งหมด :
$N(L) = \sum_{i=1}^L {170000 \เลือก i}$

ไม่: นี่คือจำนวนทั้งหมด ชุด ของ $L$ คำ แต่คำต้องเรียงตามลำดับจึงมีค่าตามจริง $N(L) = \sum_{i=1}^L \frac{170000!}{i!}$.

นอกจากนี้ ไม่มีเหตุผลที่จะไม่พูดคำซ้ำ: สิ่งนี้ทำให้วลีรหัสผ่านเดาได้ง่ายขึ้นเล็กน้อย ดังนั้นจำนวนของ $L$- วลีรหัสผ่านเป็นจริง $170000^{L}$. จำนวนข้อความรหัสผ่านของ $1$ ถึง $L$ คำพูดคือ $$N(L) = \sum_{i=1}^L 170000^i$$

จริงๆ แล้วผู้โจมตีค่อนข้างจะรู้จำนวนคำในข้อความรหัสผ่าน แต่สิ่งนี้ไม่ได้เปลี่ยนจำนวนมากนัก

ทำการคำนวณ $N(14) < 2^{256} < N(15)$.

ถูกต้องหรือไม่ที่จะสันนิษฐานว่า หากผู้โจมตีรู้ว่า "รหัสผ่าน" เป็นวลีรหัสผ่านที่ประกอบด้วยคีย์ภาษาอังกฤษ วลีรหัสผ่านจะต้องมีอย่างน้อยที่สุด 18 15- คำยาวเพื่อไม่ให้เป็นลิงค์ที่อ่อนแอกว่าในรูปแบบการเข้ารหัส AES?

ยังไม่มี เนื่องจากค่าใช้จ่ายในการทดสอบข้อความรหัสผ่านสูงกว่าค่าใช้จ่ายในการทดสอบคีย์ ในการทดสอบข้อความรหัสผ่าน ฝ่ายตรงข้ามต้องได้รับรหัสจากข้อความรหัสผ่านก่อน แล้วจึงทดสอบรหัส การได้รับคีย์จากวลีรหัสผ่านนั้นช้าโดยเจตนา: ใช้ a การยืดที่สำคัญ การทำงาน.

การยืดคีย์ที่ช้ากว่ามากน้อยเพียงใดเมื่อเปรียบเทียบกับการคำนวณแฮชนั้นขึ้นอยู่กับตัวเลือกของอัลกอริทึมการยืดคีย์ วิธีการกำหนดพารามิเตอร์ และฮาร์ดแวร์ที่ผู้โจมตีมี สำหรับกำลังที่ดุร้ายในระดับนี้ ต้นทุนของการออกแบบฮาร์ดแวร์นั้นน้อยมาก และค่าใช้จ่ายจะอยู่ที่การใช้พลังงานเป็นหลัก สำหรับฟังก์ชันการยืดคีย์การทำงานซ้ำๆ แบบเดิม เช่น PBKDF2 ปริมาณซิลิคอนที่ใช้จ่ายไฟสำหรับการยืดคีย์จะไม่สูงกว่า AES อย่างมีนัยสำคัญ เป็นเรื่องปกติที่จะเลือกปัจจัยความช้า เช่น การวิ่งหนึ่งครั้งใช้เวลาสองสามในสิบวินาที เทียบกับไม่กี่พันล้านวินาทีสำหรับส่วน AES ซึ่งหมายถึงอัตราส่วนประมาณ $2^{26}$. ด้วยฟังก์ชันการยืดคีย์ที่ทันสมัยซึ่งเป็นฮาร์ดหน่วยความจำ อัตราส่วนจึงสูงขึ้นเนื่องจากคุณต้องจ่ายพลังงานให้กับ RAM ด้วย ฉันจะใช้ $2^{30}$ เป็นอัตราส่วน

ซึ่งหมายความว่าเพื่อให้ AES อ่อนแอกว่าการดุร้ายมากกว่าข้อความรหัสผ่าน เราต้องการ $N(L) \ge 2^{256}/2^{30} = 2^{226}$ซึ่งเป็นความสำเร็จสำหรับ $L \ge 13$.


แต่⦠ตัวเลขนี้ไม่มีความหมาย! ไม่จำเป็นอย่างยิ่งที่การถอดรหัสข้อความรหัสผ่านจะต้องช้ากว่าการถอดรหัส AES เนื่องจากการถอดรหัส AES นั้นเป็นไปไม่ได้อยู่แล้ว หากการถอดรหัสข้อความรหัสผ่านเป็นไปไม่ได้ แต่ “เป็นไปไม่ได้น้อยกว่า” กว่า AES ก็ยังเป็นไปไม่ได้

เครือข่าย Bitcoin ใช้ประมาณ 0.4% ของการผลิตไฟฟ้าทั้งหมดของโลก (ที่มา: € 100 TWh/ปี ออกจาก ค่อนข้างมากกว่า 25,000 TWh/ปี) และคำนวณ â $2^{93}$ แฮช / ปี. สมมติว่าคุณได้รับการดำเนินการเบื้องต้นจำนวนเท่ากันต่อ Wh สำหรับการถอดรหัสข้อความรหัสผ่าน โดยมีความแตกต่างของต้นทุน $2^{30}$ ฉันประมาณไว้ข้างต้น หมายความว่าขอบเขตบนสำหรับการถอดรหัสข้อความรหัสผ่านคือ $2^{63}$ ต่อปี.

ดังนั้นหากคุณต้องการให้คีย์ของคุณปลอดภัยจากศัตรูระดับ NSA สำหรับ หนึ่งพันปี, คุณต้องการ $N(L) \ge 1,000 \cdot 2^{63} \ประมาณ 2^{73}$ซึ่งเป็นความสำเร็จสำหรับ $L \ge 5$.

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

จินตนาการของ Crypto nerd:
[คิวบอลกำลังถือแล็ปท็อป และเพื่อนของเขากำลังตรวจสอบ]
Cueball: แล็ปท็อปของเขาเข้ารหัส มาสร้างคลัสเตอร์มูลค่าล้านดอลลาร์เพื่อถอดรหัสกันเถอะ
เพื่อน: ไม่ดี! RSA 4096 บิต!
คิวบอล: ระเบิด! แผนการร้ายของเราพังทลาย!
สิ่งที่จะเกิดขึ้นจริง:
[คิวบอลถือกระดาษและยื่นประแจให้เพื่อน]
Cueball: แล็ปท็อปของเขาเข้ารหัส วางยาเขาและตีเขาด้วยประแจ \$5 จนกว่าเขาจะบอกรหัสผ่านแก่เรา
เพื่อน : เข้าใจแล้ว

จริง จริง จริงจริง: ผู้โจมตีที่มีแรงจูงใจจริง ๆ จะค้นหาข้อความรหัสผ่านผ่านฟิชชิง หรือ สำหรับ จริงๆ ผู้ใช้ที่ระมัดระวังและผู้โจมตีที่ทรงพลังโดยการติดตั้งกล้องหรือติดตั้งมัลแวร์ (หรือ การรวมกันของมัน.)

fr flag
ขอบคุณ แก้ไขการคำนวณของฉัน ฉันเข้าใจว่าตอนนี้ ในทางปฏิบัติ เราไม่จำเป็นต้องเข้ารหัสทั้งหมดถึง 256 บิตหรือเรียงสับเปลี่ยน 2^256 นั่นคือสิ่งที่ฉันตั้งเป้าไว้ เนื่องจากด้วยควอนตัมคอมพิวติ้งในอนาคตอันไม่ไกล ขั้นตอน $O(\sqrt{N}) โดยใช้การค้นหา Grover ฉันคิดว่าเพื่อให้ควอนตัมต้านทานต่อศัตรูระดับ NSA ที่ไม่จำเป็น แต่ยังคงมีแรงจูงใจ (ขึ้นอยู่กับว่าคอมพิวเตอร์ควอนตัมจะมีราคาเท่าใดผ่านระบบคลาวด์) เราต้องใช้คำประมาณ 12 คำเพื่อให้ตรงกับระดับความปลอดภัยที่คุณพูดถึง
Score:1
ธง in

ดังที่ Gilles บันทึกไว้ หากคุณมีพจนานุกรม 170,000 คำ (ซึ่งอยู่ในระดับสูง) จำนวนวลีรหัสผ่านที่มี $L$ คำคือ: $170000^L$

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

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

เพื่อให้เข้าใจถึงความปลอดภัย คุณสามารถแปลงความยาวของข้อความรหัสผ่านเป็นค่าใช้จ่ายได้

L=1, 170,000 วลีที่เป็นไปได้ ค่าใช้จ่ายต่ำกว่า 1$

L=2, 29B วลีที่เป็นไปได้ ค่าใช้จ่ายคือ ~ $8000

L=3 ค่าใช้จ่ายจะกลายเป็น 1.3 พันล้านเหรียญ ซึ่งไม่สามารถทำได้โดยใช้ระบบคลาวด์สาธารณะ และอาจเป็นไปไม่ได้แม้แต่กับประเทศที่มีฮาร์ดแวร์เฉพาะพิเศษ

fr flag
ขอบคุณ ยังดีมากที่ได้เห็นค่าใช้จ่ายโดยประมาณเพื่อช่วยในมุมมอง! ฉันแค่สงสัยว่าคอมพิวเตอร์ควอนตัมจะมีมูลค่าเท่าไรในอนาคต และสามารถเข้าถึงได้ผ่านระบบคลาวด์ด้วย
Meir Maor avatar
in flag
ไม่มีการคำนวณเชิงควอนตัมที่เกี่ยวข้องในอนาคตอันใกล้นี้ เราอยู่ห่างออกไปหลายก้าว
eckes avatar
us flag
อย่างไรก็ตาม ควรกล่าวว่ารายการรหัสผ่าน 100 ล้านบนสุดนั้นยังอยู่ในช่วงย่อย 1,000$ และครอบคลุมรหัสผ่านที่ไม่รัดกุมจำนวนมาก ดังนั้นหากซอฟต์แวร์ของคุณไม่ใช้การสืบทอดคีย์ที่รัดกุม (การวนซ้ำสูง) ก็จะเป็นอันตรายต่อผู้ใช้ทั่วไปสำหรับการโจมตีแบบออฟไลน์ที่ง่ายดาย หากใช้เพียงแฮชธรรมดาก็ยิ่งแย่ไปอีก คุณสามารถ brutefore ได้ถึง 8 ตัวอักษรบนเครื่องโลคัล

โพสต์คำตอบ

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