ความหมายของพลังงานในการเข้ารหัสทราฟฟิกเซนเซอร์ของฉันคืออะไร?


13

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

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

เพื่อความเรียบง่ายสมมติว่าฉันใช้nRF51822 SoC ซึ่งรองรับ BLE stack และโปรโตคอล 2.4 GHz ที่ง่ายขึ้นเช่นกัน

เนื่องจากฉันกำลังคิดถึงแอพพลิเคชั่นผลิตภัณฑ์เชิงพาณิชย์มากกว่าการติดตั้งเพียงครั้งเดียวการเข้ารหัสจึงต้องมีการคำนวณอย่างเข้มข้นที่จะทำลาย (พูดอย่างน้อย 500 ดอลลาร์ในปี 2559 การคำนวณคลาวด์) แทนที่จะเป็นเรื่องง่าย ๆ บางสิ่งที่ยังคงปลอดภัยแม้จะเข้าถึงเฟิร์มแวร์ของอุปกรณ์


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

คำตอบ:


8

พลังงานส่วนใหญ่ของคุณจะถูกใช้ในการส่งสัญญาณ RF ไม่ใช่รอบการใช้งาน CPU ในการเข้ารหัส การส่งบิตเพิ่มเติมทุกครั้งจะทำให้คุณเสียพลังงานมากกว่าการเข้ารหัสที่คุณเสนอ นั่นหมายความว่าหากคุณใช้วิธีการที่ไร้เดียงสาเช่นการใช้ AES ในโหมด CBC คุณมีความเสี่ยงที่จะเพิ่มขนาดข้อความเพื่อพกพาบิตพิเศษในแต่ละบล็อค

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


ฟังดูน่าเชื่อถือและทำให้เกิดปัญหาที่แตกต่างออกไปซึ่งฉันไม่ได้คิดมากเกินไปเกี่ยวกับเวลานี้
ฌอน Houlihane

2
ระวังว่า CTR ไม่ได้ให้ข้อมูลที่ถูกต้อง คุณควรใช้โหมดการเข้ารหัสที่ได้รับการรับรองความถูกต้องเว้นแต่คุณจะเข้าใจว่าเหตุใดการตรวจสอบความถูกต้องจึงไม่น่ากังวลในแอปพลิเคชันของคุณ
Gilles 'หยุดความชั่วร้าย'

10

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

AES

AESเป็นหนึ่งในอัลกอริทึมการเข้ารหัสคีย์ symmetric ที่นิยมมากที่สุด (ซึ่งหมายความว่าคุณใช้คีย์เดียวกันในการเข้ารหัสและถอดรหัส) ในแง่ของความปลอดภัย AES เป็นเดิมพันที่ปลอดภัย:

เข้ารหัสลับสาธารณะที่ดีที่สุด

การโจมตีได้รับการตีพิมพ์ซึ่งคำนวณได้เร็วกว่าการโจมตีแบบเดรัจฉานแบบบังคับแม้ว่าจะไม่มีใครในปี 2013 ที่เป็นไปได้

- วิกิพีเดีย

กระดาษเข้ารหัสลับ Biclique ของ AES ฉบับเต็มอธิบายว่า AES-128 ต้องการการดำเนินงาน2 126.1ครั้ง AES-192 ต้องการการดำเนินงาน2 189.7และ AES-256 ต้องการการดำเนินงาน2 254.4เพื่อทำลาย บนหน่วยประมวลผล 2.9 GHz สมมติว่าแต่ละการดำเนินงาน 'คือรอบ 1 CPU (อาจจะไม่เป็นความจริง) ที่จะหมด AES-128 จะใช้เวลานานมาก กับ 10 000 ทำงานของพวกเขาก็จะยังคงใช้เวลาเกือบตลอดไป ดังนั้นการรักษาความปลอดภัยจึงไม่เป็นข้อกังวล ลองพิจารณาด้านพลังงาน

เอกสารนี้แสดง (หน้า 15) ว่าการเข้ารหัสบล็อกด้วย AES ใช้ 351 pJ ฉันจะเปรียบเทียบสิ่งนี้ในภายหลังหลังจากพูดคุยเกี่ยวกับอัลกอริทึมทั่วไปอื่น ๆ

SIMON

ฉันถามคำถามเกี่ยวกับSIMON และ SPECKก่อนหน้าซึ่งคุ้มค่าที่จะอ่าน ที่ไหน excels SIMON อยู่ในสถานการณ์ที่คุณต้องเข้ารหัสนิด ๆ หน่อย ๆ ของข้อมูลที่พบบ่อย กระดาษที่ฉันเชื่อมโยงก่อนหน้านี้ระบุว่า SIMON 64/96 ใช้ 213 pJ สำหรับ 64 บิตซึ่งเป็นประโยชน์เมื่อคุณต้องการส่งข้อมูล 32 บิตเท่านั้น

SIMON 64/96 นั้นง่ายกว่าการแบ่ง AES อย่างมาก กระดาษที่ฉันเชื่อมโยงนั้นแนะนำการดำเนินการ2 63.9ดังนั้นการตั้งค่า CPU 10 000 ของเราสามารถถอดรหัสได้ในเวลาเพียงไม่กี่ปีเมื่อเทียบกับหลายล้านล้านครั้ง

มันสำคัญจริงๆหรือ

อัตราที่คุณวางแผนที่จะส่งคำตอบคือเกือบจะแน่นอนไม่มี ; การใช้พลังงานจากการเข้ารหัสจะเล็กน้อยมาก สำหรับ AES, คุณจะใช้ 50 544 PJ ต่อวันดังนั้นคาร์บอนสังกะสีแบตเตอรี่ AA ราคาถูกกับ 2340 J ของพลังงานจะมีอายุไกลเกินอายุการใช้งานของอุปกรณ์ หากคุณประเมินอีกครั้งกับการคำนวณ SIMON คุณจะพบว่ามันยังมีมากอายุการใช้งานนาน

ในระยะสั้นถ้าคุณกำลังส่งมากบ่อยวิทยุอยู่ไกลมากขึ้นของความกังวลสำหรับพลังงาน วิกิพีเดียคำพูดการใช้พลังงานระหว่าง 0.01 และ 0.5 W. หากคุณส่งสำหรับ1 วินาทีที่ 0.01 W , คุณเคยใช้แล้วพลังงานมากกว่า AES ได้มากกว่าทั้งวัน

สำหรับ BLE คุณอาจจะสบายดีขึ้นอยู่กับความปลอดภัยเริ่มต้น BLE ใช้ AES-CCM เป็นค่าเริ่มต้นสำหรับการรักษาความปลอดภัยลิงค์เลเยอร์ :

การเข้ารหัสใน Bluetooth ที่ใช้พลังงานต่ำใช้การเข้ารหัส AES-CCM เช่นเดียวกับ BR / EDR ตัวควบคุม LE จะทำหน้าที่เข้ารหัส ฟังก์ชั่นนี้สร้าง 128-bit encryptionData จากคีย์ 128- บิตและ plaintextData คีย์ 128- บิตโดยใช้ AES-128- บิตบล็อก cypher ตามที่กำหนดใน FIPS-1971

มีข้อกังวลว่ามีข้อบกพร่องด้านความปลอดภัยที่มีการใช้งานของความปลอดภัย link-layer แม้ว่า; นี่ไม่ใช่ข้อบกพร่องใน AES; ค่อนข้าง Bluetooth SIG ตัดสินใจที่จะม้วนกลไกการแลกเปลี่ยนสำคัญของพวกเขาเองใน 4.0 และ 4.1 ขณะนี้ปัญหาได้รับการแก้ไขใน 4.2 เนื่องจาก Elliptical Curve Hellman-Diffie ได้รับการสนับสนุนแล้ว


1
"สำหรับโปรเซสเซอร์ 2.9 GHz สมมติว่าแต่ละการดำเนินการคือ 1 รอบการทำงานของ CPU (อาจไม่เป็นจริง)" - อาจได้รับการชดเชยด้วยตัวประมวลผลแบบขนาน (เช่น GPU) ที่ทำงานด้วยความเร็วต่ำ แต่ให้ผลลัพธ์ที่หลากหลายต่อรอบ บรรลุถึง 1 การทำงาน / นาฬิกาบนแกนเดียว] มันไม่เปลี่ยนลำดับความสำคัญมากเกินไป
Maciej Piechotka

@MaciejPiechotka นั่นเป็นจุดที่ดี ตามที่คุณแนะนำลำดับความสำคัญไม่ควรได้รับผลกระทบมากเกินไปและในระดับที่เรากำลังทำอยู่ปัจจัย 10 ยังคงไม่สำคัญ (10 ^ 33 วันเทียบกับ 10 ^ 32 วันจะไม่สำคัญ แย่มาก!)
Aurora0001

1
ระบบสมมาตรเช่น AES นั้นมีปัญหาเว้นแต่ว่าแต่ละอุปกรณ์จะมีรหัสที่ไม่ซ้ำกัน - มิฉะนั้นการทำให้มันออกมาจากตัวอย่างที่ผ่าหนึ่งครั้งจะทำให้ทั้งระบบพัง
Chris Stratton

4

เว้นแต่ว่าคุณกำลังทำ crypto ที่เร่งด้วยฮาร์ดแวร์ค่าใช้จ่ายด้านพลังงานมีแนวโน้มที่จะสูงตามที่คุณมีหน่วยประมวลผลที่มีกำลังเพียงพอสำหรับความต้องการพื้นฐาน (ไม่ใช่ crypto) อย่างไรก็ตามในกรณีส่วนใหญ่เป็นการใช้วิทยุที่ใช้พลังงานมากที่สุดอยู่ดี

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

เส้นทางอื่นและอาจเป็นเส้นทางที่ 'ดีที่สุด' หากคุณต้องการให้แน่ใจว่าไม่มีใครสามารถรับกุญแจของคุณแม้ว่าพวกเขาจะแยกชิ้นส่วนอุปกรณ์ เพื่อรวมชิป TPM เช่นOPTIGA TPMซึ่งมีชิป I2C และ SPI TPM ที่ได้รับการสนับสนุนโดยเคอร์เนล Linux

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


2
คำถามแสดงให้เห็นถึง 2.5GHz SoC และส่งค่า 32- บิตทุก ๆ 10 นาที จำนวนของการคำนวณที่จำเป็นสำหรับการเข้ารหัสลับนั้นเล็กน้อยมาก ได้รับแล้วว่า SoC ดูเหมือนจะสู้เพื่องานนี้ แต่สำหรับ 32 บิตทุก ๆ 10 นาทีตัวประมวลผลพื้นฐานที่ถูกที่สุดที่คุณสามารถหาได้นั้นก็เพียงพอแล้ว
Gilles 'หยุดความชั่วร้าย'

3
กับช่วงเวลา 10 นาทีก็ไม่ได้สำคัญเท่าไหร่เวลาที่ใช้ในการเข้ารหัสก็เพียงเรื่องเท่าใดพลังงาน คุณต้องดูรายละเอียดการใช้งานเช่นกาฝากโหลดเพื่อตรวจสอบว่าชิปเร็วที่ทำใน 1 ms หรือช้าที่ใช้ 500ms จะชนะในการใช้พลังงานสมมติว่าทั้งสองนอนหลับได้อย่างมีประสิทธิภาพเมื่อไม่ยุ่ง โปรแกรมฮาร์ดแวร์อาจดีกว่าซอฟต์แวร์ แต่เพื่อประสิทธิภาพการใช้พลังงาน - การทำให้งานเสร็จเร็วขึ้นนั้นไม่เกี่ยวข้อง
Chris Stratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.