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

ไฟล์:Board300.jpg|thumb | upright = 1.2|
เครื่องเจาะการเข้ารหัสลับดีอีเอสปี1998 มูลค่า 10.3 ล้านบาทของมูลนิธิพรมแดนอิเล็กทรอนิกส์ (EFF) มีชิปที่ออกแบบเฉพาะการ 1,800ตัวซึ่งสามารถเจาะกุญแจดีอีเอสโดยใช้กำลังเพียงไม่กี่วัน
รูปถ่ายแสดงแผ่นวงจรใส่ชิปที่ชื่อว่า Deep Crack 64ตัวที่แต่ละข้างของแผง โดยชิปจะใส่เข้าทั้งสองข้าง
ในวิทยาการเข้ารหัสลับ การโจมตีด้วยกำลัง ( brute-force attack) เป็นการโจมตีโดยทดลองรหัสผ่านหรือพาสเฟรซเป็นจำนวนมากกับระบบ โดยหวังว่าจะเจอรหัสผ่านที่ถูกต้อง 
คือจะทดลองรหัสผ่านและพาสเฟรซที่เป็นไปได้ทุกตัวอย่างเป็นระบบจนกว่าจะเจอ
หรืออาจเป็นการโจมตีกุญแจเข้ารหัสลับโดยตรงซึ่งกุญแจปกติจะมาจากฟังก์ชันแปลงรหัสผ่านให้เป็นกุญแจ
อย่างหลังเรียกอีกอย่างว่า exhaustive key search (การค้นหากุญแจอย่างหมดสิ้น)
วิธีการเช่นนี้ไม่ต้องอาศัยความรู้เกี่ยวกับรหัสผ่านเพราะใช้กำลังค้นหาไปเรื่อยๆ จนกว่าจะเจอ date = May 2024
เป็นวิธีที่ในทางทฤษฎีสามารถถอดรหัสข้อมูลที่เข้ารหัสลับได้ทั้งหมดยกเว้นจะใช้ขั้นตอนวิธีที่ไม่มีทางเจาะได้ p = 7
เป็นวิธีที่อาจทำเมื่อไม่สามารถหาจุดอ่อนอื่นๆ ของระบบเข้ารหัสลับ
วิธีนี้เร็วมากเมื่อใช้เดารหัสผ่านที่สั้นๆ แต่สำหรับรหัสผ่านที่ยาวกว่าก็มักจะใช้วิธีอื่นๆ เช่น การโจมตีด้วยพจนานุกรม เพราะวิธีนี้ใช้เวลามากเกินไปเนื่องจากรหัสผ่าน พาสเฟรซ หรือกุญแจที่ยาวกว่าอื่นๆ จะมีค่าที่เป็นไปได้มากกว่า ทำให้เจาะได้ยากขึ้นเป็นชี้กำลังเมื่อเทียบกับรหัสผ่านสั้นๆ
การทำข้อมูลดั้งเดิมให้ยุ่งเหยิง (obfuscation) สามารถช่วยลดประสิทธิภาพของการโจมตีนี้ เพราะจะทำให้เช็คยากว่าถอดรหัสได้ข้อมูลที่ถูกต้องหรือไม่ 
ทำให้ต้องทำงานหนักขึ้น
ค่าวัดความเข้มแข็งของระบบการเข้ารหัสลับอย่างหนึ่งก็คือ จะใช้เวลานานเท่าไหร่ในการโจมตีระบบด้วยกำลังได้สำเร็จ
การโจมตีนี้เป็นการประยุกต์ใช้การค้นหาโดยใช้กำลัง ซึ่งเป็นเทคนิคการแก้ปัญหาทั่วไปด้วยการสร้างค่าที่เป็นไปได้ทุกอย่างแล้วเช็คว่าถูกต้องหรือไม่ 
มีคำอีกคำที่ใช้เรียกในภาษาอังกฤษคือ hammering
ส่วนเทคนิคการต่อต้านก็คือ anti-hammering

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

**ข้อจำกัดทางทฤษฎี**
การโจมตีนี้จะใช้ทรัพยากรเพิ่มขึ้นแบบชี้กำลังตามขนาดกุญแจที่เพิ่มขึ้น ไม่ได้เพิ่มแบบเชิงเส้น
แม้กฎหมายการส่งออกของสหรัฐในอดีตจะจำกัดไม่ให้ใช้กุญแจแบบสมมาตรเกิน nowrap |56 บิต (ดังที่พบในมาตรฐานดีอีเอส)
แต่ปัจจุบันข้อจำกัดนี้ก็ไม่ได้ใช้แล้ว ดังนั้น ขนาดกุญแจสมมาตรที่ใช้มักจะมีขนาด 128บิตหรือ 256บิตซึ่งเข้มแข็งกว่ามาก
มีเหตุผลว่ากุญแจสมมาตรขนาด 128บิตจะไม่สามารถโจมตีได้
กฎของ Landauer ซึ่งเป็นไปตามกฎฟิสิกส์ได้กำหนดพลังงานขั้นต่ำที่จำเป็นเพื่อลบข้อมูลหนึ่งหน่วยในการคำนวณ ซึ่งก็คือ 
เมื่อ T เป็นอุณหภูมิของเครื่องคำนวณมีหน่วยเป็นองศาเคลวิน, k เป็นค่าคงตัวบ็อลทซ์มัน และลอการิทึมธรรมชาติของ 2 อยู่ที่ประมาณ 0.693 (0.6931471805599453)
เครื่องคำนวณที่ผันกลับไม่ได้ (เช่นซีพียู) จะไม่มีทางใช้พลังงานน้อยกว่านี้ p = 183-191
ดังนั้นสำหรับกุญแจสมมาตรขนาด 128บิตทุกค่า แม้ยังไม่คิดค่าคำนวณเพื่อเช็คว่าถูกต้องหรือไม่ ก็จะต้องพลิกค่าบิตกลับไปกลับมา 2128 − 1 ครั้งสำหรับซีพียูธรรมดา
เมื่อทำการใกล้ๆ กับอุณหภูมิห้อง คือราวๆ 300 องศาเคลวิน พลังงานที่ต้องใช้จะอยู่ที่ราวๆ nowrap |1018 จูล 
ซึ่งเท่ากับการใช้พลังงาน 30,000 ล้านวัตต์เป็นเวลาหนึ่งปี
เท่ากับพลังงาน 30×109 W×365×24×3600 s = 9.46×1017 จูลหรือ 262.7 TWh 
และเท่ากับร้อยละ 0.1 ของพลังงานที่โลกผลิตทั้งหมดต่อปี 
แต่การคำนวณจริงๆ ซึ่งจะต้องตรวจดูว่ากุญแจแต่ละตัวถูกต้องหรือไม่จะใช้พลังงานมากกว่านี้เป็นหลายเท่า 
อนึ่ง นี้กล่าวถึงพลังงานเท่านั้น 
ยังไม่ได้พูดถึงเวลาที่ใช้ date = September 2010
แต่การให้เหตุผลเช่นนี้ก็สมมุติว่า ต้องเปลี่ยนค่าเรจิสเตอร์โดยใช้ปฏิบัติการ set และ clear ซึ่งย่อมก่อเอนโทรปี (และความร้อน) อย่างแน่นอน
มีการแสดงทางทฤษฎีว่าสามารถสร้างฮาร์ดแวร์คอมพิวเตอร์เพื่อให้ไม่มีอุปสรรคเช่นนี้ แต่คอมพิวเตอร์แบบนี้จริงๆ ก็ไม่เคยสร้าง date = September 2010
ไฟล์:ATI Radeon HD 5770 Graphics Card-oblique view.jpg|thumb|left|
จีพียูปัจจุบันใช้ได้ดีในงานที่ทำซ้ำๆ เมื่อใช้เป็นฮาร์ดแวร์ในการเจาะรหัสผ่าน

หน่วยงานของรัฐได้ใช้ฮาร์ดแวร์แบบเอสิก (ASIC) เพื่อเจาะรหัสผ่าน แต่ต่อมาก็มีเทคโนโลยีที่เอกชนใช้เจาะไซเฟอร์บางอย่างได้โดยเฉพาะๆ เป็นการโจมตีด้วยฮาร์ดแวร์โดยเฉพาะ (custom hardware)
เทคโนโลยีที่ใช้อย่างหนึ่งก็คือหน่วยประมวลผลกราฟิกส์ (จีพียู) รุ่นนำสมัย2011 
เทคโนโลยีอีกอย่างก็คือเอฟพีจีเอ 
ข้อดีของจีพียูก็คือมีวางตลาดขายทั่วไปและมีราคาต่อสมรรถภาพที่ดี ส่วนเอฟพีจีเอจะดีตรงใช้พลังงานน้อย
โดยทั้งสองล้วนปฏิบัติการโดยขนาน
จีพียูอาจมีหน่วยทำการเป็นร้อยๆ และอุปกรณ์เอฟพีจีเอมีเป็นพันๆ จึงใช้เจาะรหัสผ่านได้ดีกว่าซีพียูธรรมดา 
ในปี2022 มีการใช้จีพียู Nvidia RTX 4090 ถึง 8ตัวร่วมกันโดยใช้โปรแกรม Hashcat ซึ่งสามารถเจาะรหัสผ่าน NTLM ขนาด 8ตัวอักษรทั้งหมดคือประมาณ 2 แสนล้านรหัสใน 48 นาที
มีงานศึกษาทางวิทยาการรหัสลับหลายงานที่ได้พิสูจน์ประสิทธิภาพทางพลังงานของเทคโนโลยีเอฟพีจีเอในปัจจุบัน ยกตัวอย่างเช่น คลัสเตอร์คอมพิวเตอร์ COPACOBANA FPGA ใช้พลังงานเท่ากับคอมพิวเตอร์เครื่องเดียว คือประมาณ 600 วัตต์ แต่มีประสิทธิภาพเท่ากับคอมพิวเตอร์ 2,500ตัวเมื่อใช้คำนวณขั้นตอนวิธีบางอย่าง 
มีบริษัทเอกชนที่ผลิตเครื่องเจาะรหัสผ่านโดยใช้ฮาร์ดแวร์เป็นเอฟพีจีเอ เริ่มตั้งแต่การ์ด PCI Express จนถึงคอมพิวเตอร์ที่ทำด้วยเอฟพีจีเอ
การเข้ารหัสวายฟายแบบ WPA และ WPA2 พบว่าสามารถโจมตีด้วยกำลังโดยลดพลังงานที่ต้องใช้เป็น 50 ถึงร้อยๆ เท่าเทียบกับเมื่อใช้ซีพียูธรรมดาๆ2008
การเข้ารหัสลับเออีเอสสามารถเลือกใช้กุญแจขนาด 256บิตได้ 
การเจาะกุญแจขนาดนี้ต้องใช้กำลังคำนวณ 2128 เท่ามากกว่าการเจาะกุญแจ 128บิต
ซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดเครื่องหนึ่งในปี2019 มีความเร็วถึง nowrap |100 เพทาฟล็อปส์ซึ่งในทางทฤษฎีสามารถตรวจกุญแจเออีเอสได้หนึ่งร้อยล้าน (1014) ตัวต่อวินาทีโดยสมมติว่าต้องมีปฏิบัติการ 1,000 ครั้งต่อการตรวจ แต่ก็ยังต้องใช้เวลาเป็น 3.67×1055 ปีเพื่อจะตรวจสอบกุญแจขนาด 256บิตได้ทั้งหมด 
ข้อสมมุติพื้นฐานของการโจมตีด้วยกำลังก็คือ ลูกผสมของกุญแจทั้งหมดมีโอกาสเลือกเท่าๆ กัน ซึ่งอาศัยการมีตัวสร้างเลขสุ่มที่มีประสิทธิภาพโดยไม่มีปัญหาทางขั้นตอนวิธีหรือการทำให้เกิดผล 
มีระบบบางระบบที่ตอนแรกคิดว่าไม่สามารถเจาะได้ด้วยกำลัง แต่ก็ถูกเจาะไปเรียบร้อยแล้วเพราะจำนวนรหัสผ่านที่ต้องสืบหาจริงๆ น้อยกว่าที่คาดไว้ เพราะตัวสร้างรหัสสุ่มเสมือนที่ใช้ไม่มีเอนโทรปีจริงๆ 
ตัวอย่างรวมทั้งการทำให้โพรโทคอลเกิดผลของบริษัทเน็ตสเคป (พบในปี1995) และคลังโปรแกรมnowrap |โอเพนเอสเอสแอลของระบบปฏิบัติการเดเบียนและอูบุนตู (พบในปี2008) p = 18
การไร้เอนโทรปีของเครื่องเอนิกมาก็ทำให้ถูกเจาะได้ในช่วงสงครามโลกครั้งที่ 2 เช่นกัน2005

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

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

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

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

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

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

**ข้อมูลอื่นๆ**
  date = June 10-12, 1996-  url = https://archive.org/details/crackingdes00elec - isbn = 1-932266-65-8 -  s2cid = 2412454- url-status = dead - publisher = Plus Magazine - publisher = Symantec - date = 2008-10-12 -  archive-date = 2016-03-03 -  isbn = 978-3-642-04100-6 - location = Jacksonville, FL - isbn = 978-1-907117-02-2 - publisher = O'Reilly -  year = 1996- 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 date=2011-08-13  - Essay by the winning team of the challenge in The Code Book
หมวดหมู่:การโจมตีทางวิทยาการเข้ารหัสลับ