मेरे सेंसर ट्रैफ़िक को एन्क्रिप्ट करने की शक्ति का निहितार्थ क्या है?


13

एक विशिष्ट प्रकार के आवेदन को ध्यान में रखते हुए, प्रत्येक 10 मिनट में बैटरी चालित सेंसर रीडिंग (32 बिट वैल्यू) ले रहा है, अगर मैं एक एन्क्रिप्टेड ट्रांसमिशन की तुलना में एक साधारण अन-इनक्रिप्टेड ऑन-एयर प्रोटोकॉल का चयन करूं तो बैटरी लाइफ पर क्या प्रभाव पड़ सकता है?

मान लें कि मेरा डेटा विशेष रूप से गुप्त नहीं है, लेकिन इस प्रश्न के अनुसार मुझे संभवतः इसे एन्क्रिप्ट करने पर विचार करने की आवश्यकता है, इसलिए जब तक वास्तव में एक महत्वपूर्ण डिज़ाइन लागत नहीं है।

सादगी के लिए, मान लें कि मैं एक NRF51822 SoC का उपयोग कर रहा हूं जो BLE स्टैक और एक सरल 2.4 GHz प्रोटोकॉल का समर्थन करता है।

चूंकि मैं एक ऑफ-इंस्टॉलेशन के बजाय एक व्यावसायिक उत्पाद एप्लिकेशन के बारे में सोच रहा हूं, एन्क्रिप्शन को एक साधारण ओफ़्सेकेशन के बजाय तोड़ने के लिए गहन (कम से कम $ 500 क्लाउड कम्प्यूट की) कहना आवश्यक है। डिवाइस फर्मवेयर तक पहुंच के साथ भी कुछ सुरक्षित रहता है।


2
"डिवाइस फर्मवेयर तक पहुंच के साथ भी कुछ सुरक्षित रहता है।" इसका मतलब है कि आपको या तो असममित क्रिप्टोग्राफी का उपयोग करना होगा जो कि रिवर्स करने के लिए कम्प्यूटेशनल रूप से महंगा है, या आपको एक सममित कुंजी संग्रहीत करने की आवश्यकता है जहां इसे पुनर्प्राप्त नहीं किया जा सकता है या पुनर्प्राप्ति के लिए अभ्यास नहीं किया जा सकता है (ज्ञात प्लेटेक्स्ट हमले, आदि)। आमतौर पर बाद के मामले में, उत्पाद की प्रत्येक प्रतिलिपि में एक अद्वितीय कुंजी होती है ताकि एक नमूने से पुनर्प्राप्ति पूरे सिस्टम को न तोड़ सके; लेकिन इसका मतलब है कि आपके रिसीवर को उन सभी कुंजियों को संग्रहीत करने की आवश्यकता है।
क्रिस स्ट्रैटन

जवाबों:


8

आपकी शक्ति के थोक की संभावना आरएफ ट्रांसमिशन पर खर्च की जाएगी, एन्क्रिप्शन एन्क्रिप्शन में खर्च किए गए सीपीयू चक्रों पर नहीं। प्रेषित हर अतिरिक्त बिट आपके द्वारा प्रस्तावित एन्क्रिप्शन की तुलना में अधिक शक्ति खर्च करेगा। इसका मतलब है कि यदि आप एक भोली दृष्टिकोण लेते हैं, जैसे सीबीसी मोड में एईएस का उपयोग करना, तो आप प्रत्येक ब्लॉक में अतिरिक्त बिट्स को ले जाने के लिए संदेश का आकार बढ़ाने का जोखिम उठाते हैं।

यदि आप यह निर्धारित करते हैं कि आपके व्यवसाय को डेटा एन्क्रिप्ट करने की आवश्यकता है, तो स्ट्रीम साइबर बिट्स बनाने के लिए सीटीआर मोड में एईएस का उपयोग करने पर विचार करें । काउंटर मोड उन मामलों से निपटने के लिए व्यावहारिक है जहां रिसेप्शन अविश्वसनीय हो सकता है और पैकेट खो सकते हैं। आपको काउंटरों को सिंक्रनाइज़ रखना होगा, इसलिए ध्यान रखें कि समय-समय पर काउंटर के मूल्य को प्रसारित करने से ओवरहेड में जोड़ दिया जाएगा। और आपको काउंटर होल्ड करने के लिए कुछ बाइट्स राज्य को आरक्षित करने होंगे, क्योंकि एन्क्रिप्टेड बिट स्ट्रीम का पुन: उपयोग करने से डेटा रिकवरी हो सकती है।


समझाने पर लगता है, और समस्या पर एक अलग स्पिन डालता है, जो मैंने इस समय के बारे में बहुत ज्यादा नहीं सोचा था।
शॉन हुलिएन

2
खबरदार कि CTR डेटा प्रामाणिकता प्रदान नहीं करता है। आपको एक प्रमाणित एन्क्रिप्शन मोड का उपयोग करना चाहिए जब तक आप यह नहीं समझते कि आपके आवेदन में प्रामाणिकता चिंता का विषय क्यों नहीं है।
गाइल्स का SO- बुराई को रोकना '

10

कई प्रकार की एन्क्रिप्शन विधियाँ हैं जिनका उपयोग आप अपने ट्रैफ़िक को सुरक्षित करने के लिए कर सकते हैं, और हर एक में थोड़ा अलग शक्ति उपयोग होता है, इसलिए मैं कुछ लोकप्रिय विकल्पों को चुनने जा रहा हूँ। प्रत्येक पद्धति का मूल्यांकन करने के लिए मैं जिस पद्धति का उपयोग करता हूं वह किसी भी अन्य सिफर पर लागू होनी चाहिए जो आप पाते हैं और तुलना करना चाहते हैं।

एईएस

एईएस सबसे लोकप्रिय सममित-कुंजी एन्क्रिप्शन एल्गोरिदम में से एक है (जिसका अर्थ है कि आप एन्क्रिप्ट और डिक्रिप्ट करने के लिए एक ही कुंजी का उपयोग करते हैं)। सुरक्षा के संदर्भ में, एईएस एक सुरक्षित शर्त है:

सर्वश्रेष्ठ सार्वजनिक क्रिप्टोकरेंसी

हमलों को प्रकाशित किया गया है जो एक पूर्ण जानवर बल हमले की तुलना में कम्प्यूटेशनल रूप से तेज़ हैं, हालांकि 2013 तक कोई भी कम्प्यूटेशनल रूप से संभव नहीं है।

- विकिपीडिया

पूर्ण एईएस के पेपर बाइक्लिक क्रिप्टानालिसिस का वर्णन है कि एईएस -128 को 2 126.1 संचालन की आवश्यकता है , एईएस -192 को 2 189.7 संचालन की आवश्यकता है , और एईएस -252 को तोड़ने के लिए 2 254.4 संचालन की आवश्यकता है । 2.9 गीगाहर्ट्ज़ प्रोसेसर पर, प्रत्येक 'ऑपरेशन' को 1 सीपीयू चक्र (शायद सच नहीं है) मानते हुए, एईएस -128 को तोड़ने में बहुत लंबा समय लगेगा । उनमें से 10 000 के साथ, यह अभी भी लगभग हमेशा के लिए ले जाएगा । इसलिए, यहां सुरक्षा चिंता का विषय नहीं है; आइए शक्ति पहलू पर विचार करें।

यह पेपर दिखाता है (पृष्ठ 15 पर) कि एईएस के साथ एक ब्लॉक को एन्क्रिप्ट करना 351 पीजे का उपयोग करता है। कुछ अन्य सामान्य एल्गोरिदम के बारे में बात करने के बाद मैं इसकी तुलना करूंगा।

साइमन

मैंने पहले सिमन और स्पेक के बारे में एक सवाल पूछा , जो एक पढ़ने लायक है। जहाँ SIMON एक्सेल उन स्थितियों में होता है जहाँ आपको बार-बार थोड़ा-थोड़ा डेटा एन्क्रिप्ट करने की आवश्यकता होती है । जिस पेपर को मैंने पहले जोड़ा था वह बताता है कि SIMON 64/96 64 बिट्स के लिए 213 pJ का उपयोग करता है, जो कि व्यावहारिक है जब आपको केवल 32 बिट्स पेलोड भेजने की आवश्यकता होती है।

सिमोन 64/96 एईएस की तुलना में तोड़ने के लिए काफी आसान है , हालांकि; मेरे द्वारा जोड़ा गया कागज एक 2 63.9 संचालन का सुझाव देता है , इसलिए हमारे 10 000 CPU सेटअप केवल कुछ वर्षों में एन्क्रिप्शन को दरार कर सकते हैं , जैसा कि लाखों सहस्राब्दियों के विपरीत है।

क्या यह वास्तव में मायने रखता है?

जिस दर पर आप संचारित करने की योजना बनाते हैं, उत्तर लगभग निश्चित रूप से नहीं है ; क्रिप्टोग्राफी से ऊर्जा का उपयोग पूरी तरह से नगण्य होगा। एईएस के लिए, आप प्रति दिन 50 544 पीजे का उपयोग करेंगे , इसलिए ऊर्जा का 2340 जे के साथ एक सस्ती कार्बन-जस्ता एए बैटरी डिवाइस के जीवनकाल से बहुत दूर तक चलेगी । आप साइमन के साथ गणना फिर से मूल्यांकन करते हैं, तो आप पाते हैं यह है कि यह भी एक है बहुत लंबे जीवनकाल

संक्षेप में, जब तक आप बहुत बार संचारित नहीं होते, तब तक रेडियो शक्ति के लिए एक चिंता का विषय हैविकिपीडिया 0.01 और 0.5 W के बीच बिजली के उपयोग को उद्धृत करता है। यदि आप 0.01 W पर 1 सेकंड के लिए संचारित करते हैं , तो आपने पहले ही दिन में AES की तुलना में अधिक शक्ति का उपयोग किया है

BLE के लिए, हालाँकि, आप शायद डिफ़ॉल्ट सुरक्षा पर निर्भर होने के लिए ठीक हैं; BLE लिंक-लेयर सुरक्षा के लिए डिफ़ॉल्ट रूप से AES-CCM का उपयोग करता है :

कम ऊर्जा के साथ ब्लूटूथ में एन्क्रिप्शन AES-CCM क्रिप्टोग्राफी का उपयोग करता है। BR / EDR की तरह, LE नियंत्रक एन्क्रिप्शन फ़ंक्शन करेगा। यह फ़ंक्शन 128-बिट कुंजी से 128-बिट एनक्रिप्टेडडाटा और 128-बिट प्लेनटेक्स्टडाटा से एईएस -128-बिट-ब्लॉक साइबरफ़ेयर का उपयोग करके उत्पन्न होता है जैसा कि FIPS-1971 में परिभाषित किया गया है।

हालांकि कुछ चिंताएं हैं कि लिंक-लेयर सुरक्षा के BLE के कार्यान्वयन के साथ सुरक्षा खामियां हैं; यह एईएस में दोष नहीं है; बल्कि ब्लूटूथ एसआईजी ने 4.0 और 4.1 में अपने स्वयं के प्रमुख विनिमय तंत्र को रोल करने का फैसला किया । मुद्दा अब 4.2 में हल हो गया है क्योंकि एलिप्टिकल कर्व हेलमैन-डिफी अब समर्थित है।


1
"2.9 गीगाहर्ट्ज के प्रोसेसर पर, प्रत्येक 'ऑपरेशन' को 1 सीपीयू चक्र (शायद सच नहीं है) मान लिया जाता है - - शायद समानांतर प्रोसेसर (जैसे जीपीयू) द्वारा कम गति से चल रहा है, लेकिन प्रति चक्र [और यहां तक ​​कि सीपीयू IIRC पर कई परिणाम उत्पन्न कर सकते हैं] सिंगल कोर पर 1 ऑपरेशन / क्लॉक के करीब] प्राप्त करें। यह परिमाण के आदेशों को बहुत अधिक नहीं बदलता है।
मैकीज पीचोटका

@MaciejPiechotka यह एक अच्छी बात है। जैसा कि आप सुझाव देते हैं, परिमाण का क्रम बहुत अधिक प्रभावित नहीं होना चाहिए, और जिस तराजू पर हम काम कर रहे हैं, 10 का एक कारक अभी भी काफी महत्वहीन है (10 ^ 33 दिन बनाम 10 ^ 32 दिन कोई फर्क नहीं पड़ेगा बहुत खराब!)।
अरोरा ०००१

1
एईएस जैसी सममित प्रणाली तब तक समस्याग्रस्त है जब तक कि प्रत्येक डिवाइस में एक अद्वितीय कुंजी न हो - अन्यथा इसे केवल एक विच्छेदित नमूने से बाहर निकालने से पूरी प्रणाली टूट जाती है।
क्रिस स्ट्रैटन

4

जब तक आप हार्डवेयर त्वरित क्रिप्टो कर रहे हैं, तब तक बिजली की लागत अधिक होने की संभावना है क्योंकि आप एक प्रोसेसर है जो मूल रूप से (क्रिप्टो नहीं) जरूरतों के लिए जरूरी है। हालांकि, ज्यादातर मामलों में यह रेडियो का उपयोग है जो वैसे भी सबसे अधिक बिजली की खपत करता है।

चूंकि आप विशेष रूप से एक ब्लूटूथ एसओसी देख रहे हैं, बीजीएम -१११ पर विचार करें , जिसमें चिप पर हार्डवेयर-त्वरित क्रिप्टो है। मैंने इस चिप के साथ खेला है और यह अच्छा लगता है, हालांकि मैंने क्रिप्टो कार्यों को विशेष रूप से नहीं देखा है।

एक अन्य मार्ग, और संभवतः 'सर्वश्रेष्ठ' मार्ग यदि आप यह सुनिश्चित करना चाहते हैं कि कोई भी आपकी कुंजी प्राप्त नहीं कर सकता है, भले ही वे उपकरण को अलग कर दें। इसमें ऑप्टिमा टीपीएम की तरह एक टीपीएम चिप शामिल है , जिसमें आई 2 सी और एसपीआई टीपीएम चिप्स हैं जो लिनक्स कर्नेल द्वारा समर्थित हैं।

संक्षेप में, आप विशिष्ट हार्डवेयर क्रिप्टो बिना बैटरी के माध्यम से जलाएंगे। या तो एक टीपीएम चिप के साथ एक बोर्ड का निर्माण करें, या अधिक आधुनिक एसओसी चुनें जिसमें हार्डवेयर क्रिप्टो पहले से ही अंतर्निहित हो।


2
सवाल 2.5GHz SoC और हर 10 मिनट में 32-बिट मान भेजने का सुझाव देता है। क्रिप्टो के लिए आवश्यक गणना की मात्रा पूरी तरह से नगण्य है। दी, कि एसओसी कार्य के लिए प्रबल लगता है। लेकिन हर 10 मिनट में 32 बिट्स के लिए, सबसे सस्ता आधार प्रोसेसर जो आप पा सकते हैं, पर्याप्त से अधिक होगा।
गिल्स एसओ- बुराई को रोकना '

3
10 मिनट के अंतराल के साथ, यह कोई फर्क नहीं पड़ता कि एन्क्रिप्ट करने में कितना समय लगता है, यह केवल मायने रखता है कि कितनी ऊर्जा है । आपको परजीवी भार जैसे कार्यान्वयन विवरणों को देखना होगा कि क्या एक तेज़ चिप जो 1 एमएस में करता है या एक धीमी गति से जो 500ms लेता है वह बिजली की खपत पर जीत जाएगा, यह मानते हुए कि व्यस्त नहीं होने पर दोनों प्रभावी ढंग से सोते हैं। एक हार्डवेयर इंजन अच्छी तरह से सॉफ्टवेयर से बेहतर हो सकता है, लेकिन ऊर्जा दक्षता के लिए - कि यह तेजी से किया गया काम अप्रासंगिक है।
क्रिस स्ट्रैटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.