การโจมตีด้วยกำลัง

[thumb | upright = 1.2|
เครื่องเจาะ[การเข้ารหัสลับดีอีเอสปี1998 มูลค่า ของมูลนิธิ (EFF) มีชิปที่ออกแบบเฉพาะการ 1,800ตัวซึ่งสามารถเจาะกุญแจโดยใช้กำลังเพียงไม่กี่วัน
รูปถ่ายแสดงแผ่นวงจรใส่ชิปที่ชื่อว่า Deep Crack 64ตัวที่แต่ละข้างของแผง โดยชิปจะใส่เข้าทั้งสองข้าง
]]
ในวิทยาการเข้ารหัสลับ **การโจมตีด้วยกำลัง** () เป็นการโจมตีโดยทดลองรหัสผ่านหรือพาสเฟรซเป็นจำนวนมากกับระบบ โดยหวังว่าจะเจอรหัสผ่านที่ถูกต้อง 
คือจะทดลองรหัสผ่านและพาสเฟรซที่เป็นไปได้ทุกตัวอย่างเป็นระบบจนกว่าจะเจอ
หรืออาจเป็นการโจมตีกุญแจเข้ารหัสลับโดยตรงซึ่งกุญแจปกติจะมาจากฟังก์ชันแปลงรหัสผ่านให้เป็นกุญแจ
อย่างหลังเรียกอีกอย่างว่า **exhaustive key search** (การค้นหากุญแจอย่างหมดสิ้น)
วิธีการเช่นนี้ไม่ต้องอาศัยความรู้เกี่ยวกับรหัสผ่านเพราะใช้กำลังค้นหาไปเรื่อยๆ จนกว่าจะเจอ
เป็นวิธีที่ในทางทฤษฎีสามารถถอดรหัสข้อมูลที่เข้ารหัสลับได้ทั้งหมดยกเว้นจะใช้ขั้นตอนวิธีที่ไม่มีทางเจาะได้
เป็นวิธีที่อาจทำเมื่อไม่สามารถหาจุดอ่อนอื่นๆ ของระบบเข้ารหัสลับ

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

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

การโจมตีนี้เป็นการประยุกต์ใช้การค้นหาโดยใช้กำลัง ซึ่งเป็นเทคนิคการแก้ปัญหาทั่วไปด้วยการสร้างค่าที่เป็นไปได้ทุกอย่างแล้วเช็คว่าถูกต้องหรือไม่ 
มีคำอีกคำที่ใช้เรียกในภาษาอังกฤษคือ hammering
ส่วนเทคนิคการต่อต้านก็คือ anti-hammering

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

## ข้อจำกัดทางทฤษฎี
การโจมตีนี้จะใช้ทรัพยากรเพิ่มขึ้นแบบชี้กำลังตามขนาดกุญแจที่เพิ่มขึ้น ไม่ได้เพิ่มแบบเชิงเส้น
แม้กฎหมายการส่งออกของสหรัฐในอดีตจะจำกัดไม่ให้ใช้กุญแจแบบสมมาตรเกิน  (ดังที่พบในมาตรฐานดีอีเอส)
แต่ปัจจุบันข้อจำกัดนี้ก็ไม่ได้ใช้แล้ว ดังนั้น ขนาดกุญแจสมมาตรที่ใช้มักจะมีขนาด 128บิตหรือ 256บิตซึ่งเข้มแข็งกว่ามาก

มีเหตุผลว่ากุญแจสมมาตรขนาด 128บิตจะไม่สามารถโจมตีได้
กฎของ Landauer ซึ่งเป็นไปตามกฎฟิสิกส์ได้กำหนดพลังงานขั้นต่ำที่จำเป็นเพื่อลบข้อมูลหนึ่งหน่วยในการคำนวณ ซึ่งก็คือ 
เมื่อ *T* เป็นอุณหภูมิของเครื่องคำนวณมีหน่วยเป็นองศาเคลวิน, *k* เป็นค่าคงตัวบ็อลทซ์มัน และลอการิทึมธรรมชาติของ 2 อยู่ที่ประมาณ 0.693 (0.6931471805599453)
เครื่องคำนวณที่ผันกลับไม่ได้ (เช่นซีพียู) จะไม่มีทางใช้พลังงานน้อยกว่านี้
ดังนั้นสำหรับกุญแจสมมาตรขนาด 128บิตทุกค่า แม้ยังไม่คิดค่าคำนวณเพื่อเช็คว่าถูกต้องหรือไม่ ก็จะต้องพลิกค่าบิตกลับไปกลับมา สำหรับซีพียูธรรมดา

เมื่อทำการใกล้ๆ กับอุณหภูมิห้อง คือราวๆ  พลังงานที่ต้องใช้จะอยู่ที่ราวๆ  
ซึ่งเท่ากับการใช้พลังงาน เป็นเวลาหนึ่งปี
เท่ากับพลังงาน 30×109 W×365×24×3600 s = 9.46×1017 จูลหรือ 262.7 TWh 
และเท่ากับ ของพลังงานที่โลกผลิตทั้งหมดต่อปี 
แต่การคำนวณจริงๆ ซึ่งจะต้องตรวจดูว่ากุญแจแต่ละตัวถูกต้องหรือไม่จะใช้พลังงานมากกว่านี้เป็นหลายเท่า 
อนึ่ง นี้กล่าวถึงพลังงานเท่านั้น 
ยังไม่ได้พูดถึงเวลาที่ใช้
แต่การให้เหตุผลเช่นนี้ก็สมมุติว่า ต้องเปลี่ยนค่าเรจิสเตอร์โดยใช้ปฏิบัติการ  และ  ซึ่งย่อมก่อเอนโทรปี (และความร้อน) อย่างแน่นอน
มีการแสดงทางทฤษฎีว่าสามารถสร้างฮาร์ดแวร์คอมพิวเตอร์เพื่อให้ไม่มีอุปสรรคเช่นนี้ แต่คอมพิวเตอร์แบบนี้จริงๆ ก็ไม่เคยสร้าง

[thumb|left|
[จีพียูปัจจุบันใช้ได้ดีในงานที่ทำซ้ำๆ เมื่อใช้เป็นฮาร์ดแวร์ในการเจาะรหัสผ่าน
]] 
หน่วยงานของรัฐได้ใช้ฮาร์ดแวร์แบบเอสิก (ASIC) เพื่อเจาะรหัสผ่าน แต่ต่อมาก็มีเทคโนโลยีที่เอกชนใช้เจาะไซเฟอร์บางอย่างได้โดยเฉพาะๆ เป็นการโจมตีด้วยฮาร์ดแวร์โดยเฉพาะ (custom hardware)
เทคโนโลยีที่ใช้อย่างหนึ่งก็คือหน่วยประมวลผลกราฟิกส์ (จีพียู) รุ่นนำสมัย
เทคโนโลยีอีกอย่างก็คือเอฟพีจีเอ 
ข้อดีของจีพียูก็คือมีวางตลาดขายทั่วไปและมีราคาต่อสมรรถภาพที่ดี ส่วนเอฟพีจีเอจะดีตรงใช้พลังงานน้อย
โดยทั้งสองล้วนปฏิบัติการโดยขนาน
จีพียูอาจมีหน่วยทำการเป็นร้อยๆ และอุปกรณ์เอฟพีจีเอมีเป็นพันๆ จึงใช้เจาะรหัสผ่านได้ดีกว่าซีพียูธรรมดา 
ในปี2022 มีการใช้จีพียู Nvidia RTX 4090 ถึง 8ตัวร่วมกันโดยใช้โปรแกรม Hashcat ซึ่งสามารถเจาะรหัสผ่าน NTLM ขนาด 8ตัวอักษรทั้งหมดคือประมาณ ใน 

มีงานศึกษาทางวิทยาการรหัสลับหลายงานที่ได้พิสูจน์ประสิทธิภาพทางพลังงานของเทคโนโลยีเอฟพีจีเอในปัจจุบัน ยกตัวอย่างเช่น คลัสเตอร์คอมพิวเตอร์ COPACOBANA FPGA ใช้พลังงานเท่ากับคอมพิวเตอร์เครื่องเดียว คือประมาณ 600 วัตต์ แต่มีประสิทธิภาพเท่ากับคอมพิวเตอร์ 2,500ตัวเมื่อใช้คำนวณขั้นตอนวิธีบางอย่าง 
มีบริษัทเอกชนที่ผลิตเครื่องเจาะรหัสผ่านโดยใช้ฮาร์ดแวร์เป็นเอฟพีจีเอ เริ่มตั้งแต่การ์ด PCI Express จนถึงคอมพิวเตอร์ที่ทำด้วย
การเข้ารหัสวายฟายแบบ WPA และ WPA2 พบว่าสามารถโจมตีด้วยกำลังโดยลดพลังงานที่ต้องใช้เป็น 50 ถึงร้อยๆ เท่าเทียบกับเมื่อใช้ซีพียูธรรมดาๆ

การเข้ารหัสลับเออีเอสสามารถเลือกใช้กุญแจขนาด 256บิตได้ 
การเจาะกุญแจขนาดนี้ต้องใช้กำลังคำนวณ 2128 เท่ามากกว่าการเจาะกุญแจ 128บิต
ซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดเครื่องหนึ่งในปี2019 มีความเร็วถึง ซึ่งในทางทฤษฎีสามารถตรวจกุญแจเออีเอสได้ (1014) โดยสมมติว่าต้องมีปฏิบัติการ  แต่ก็ยังต้องใช้เวลาเป็น เพื่อจะตรวจสอบกุญแจขนาด 256บิตได้ทั้งหมด 

ข้อสมมุติพื้นฐานของการโจมตีด้วยกำลังก็คือ ลูกผสมของกุญแจทั้งหมดมีโอกาสเลือกเท่าๆ กัน ซึ่งอาศัยการมีตัวสร้างเลขสุ่มที่มีประสิทธิภาพโดยไม่มีปัญหาทางขั้นตอนวิธีหรือการทำให้เกิดผล 
มีระบบบางระบบที่ตอนแรกคิดว่าไม่สามารถเจาะได้ด้วยกำลัง แต่ก็ถูกเจาะไปเรียบร้อยแล้วเพราะจำนวนรหัสผ่านที่ต้องสืบหาจริงๆ น้อยกว่าที่คาดไว้ เพราะตัวสร้างรหัสสุ่มเสมือนที่ใช้ไม่มีเอนโทรปีจริงๆ 
ตัวอย่างรวมทั้งการทำให้เกิดผลของบริษัทเน็ตสเคป (พบในปี1995) และคลังโปรแกรมของระบบปฏิบัติการเดเบียนและอูบุนตู (พบในปี2008)
การไร้เอนโทรปีของเครื่องเอนิกมาก็ทำให้ถูกเจาะได้ในช่วงสงครามโลกครั้งที่ 2 เช่นกัน

## การนำข้อมูลบัญชีกลับไปใช้อีก
การนำข้อมูลบัญชีกลับไปใช้อีก (credential recycling) เป็นวิธีการแฮ็กที่นำชื่อบัญชีและรหัสผ่านที่ได้จากการโจมตีด้วยกำลังครั้งก่อนๆ ไปใช้อีก 
รูปแบบย่อยอย่างหนึ่งก็คือการส่งค่าแฮชรหัสผ่าน (pass the hash) ที่ไม่ได้คำนวณรวมค่าซอลต์เพื่อแฮ็กเข้าบัญชีของอีกระบบหนึ่ง ซึ่งใช้ได้เลยโดยไม่ต้องเจาะรหัสผ่านโดยใช้กำลัง

## รหัสลับที่เจาะไม่ได้
การเข้ารหัสลับบางอย่างจะเจาะไม่ได้ด้วยกำลังเพราะคุณสมบัติทางคณิตศาสตร์ 
ตัวอย่างหนึ่งก็คือการเข้ารหัสโดยวันไทม์แพด (one-time pad) 
ที่ข้อมูลเปล่าทุกๆ หน่วยจะมีกุญแจของตัวเองจากรายการกุญแจ (ที่เรียกว่าแพด) และกุญแจจะสร้างขึ้นโดยสุ่มจริงๆ 
สายอักขระที่เข้ารหัสด้วยซึ่งยาว 140ตัว เมื่อถูกโจมตีด้วยกำลัง ก็จะได้สายอักขระยาว 140ตัวที่เป็นไปได้ทั้งหมดซึ่งรวมข้อมูลที่ถูกต้องดั้งเดิมด้วย แต่ก็ไม่มีทางรู้ว่าสายไหนถูกต้อง 
การเจาะระบบเช่นนี้ได้ดังเช่นที่ทำในโปรเจ็กต์ Venona ของสหรัฐต่อสหภาพโซเวียต ทั่วไปจะไม่ใช้วิทยาการเข้ารหัสลับเพียงอย่างเดียว แต่ต้องพบข้อผิดพลาดต่างๆ เช่น แพดกุญแจไม่ได้ทำโดยสุ่มจริงๆ หรือดักขโมยเอาแพดได้ หรือผู้เข้ารหัสหรือถอดรหัสทำการผิดพลาด

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

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

## ดูเพิ่ม
* การขุดหาเหรียญบิตคอยน์
* ฟังก์ชันแปลงให้เป็นกุญแจ
* โครงการเมทาสปลอยต์
* ซีเคียวร์เชลล์

## เชิงอรรถและอ้างอิง

## ข้อมูลอื่นๆ

* 
* 
*
* 
*
*
*
*
* 
* 
*
*
*
* 
*
* 
*RSA-sponsored DES-III cracking contest
*Demonstration of a brute-force device designed to guess the passcode of locked iPhones running iOS 10.3.3
*How We Cracked the Code Book Ciphers  - Essay by the winning team of the challenge in The Code Book

หมวดหมู่:การโจมตีทางวิทยาการเข้ารหัสลับ