Arduino के लिए एन्क्रिप्शन लाइब्रेरी


9

मैं एक कीपैड को पढ़ने और कीपैड पिन प्रविष्टि पर एक इलेक्ट्रिक स्ट्राइक खोलने के लिए एक Arduino का उपयोग कर रहा हूं। इस स्केच के लिए मैं EEProm में पिनों को संग्रहीत करने के लिए कुछ प्रकार के हल्के एन्क्रिप्शन का उपयोग करना चाहता था। क्या कोई ऐसी लाइब्रेरी के बारे में जानता है? मैंने सुना है यह TwoFish का उपयोग करके संभव हो सकता है।

जवाबों:


12

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

आप स्वयं एन्क्रिप्शन लागू नहीं करना चाहते हैं - आप किसी और के पुस्तकालय का उपयोग करना चाहते हैं, विशेष रूप से एक खुले कार्यान्वयन के साथ जो एक बड़े समुदाय द्वारा परीक्षण किया गया है। एन्क्रिप्शन कठिन है, परीक्षण कठिन है, और एन्क्रिप्शन एन्क्रिप्शन कठिन है, इसलिए किसी और को यह आपके लिए करना मुश्किल है।

आपको एवीआर क्रिप्टो लाइब्रेरी की जांच करनी चाहिए , जिसे जीपीएलवी 3 के साथ लाइसेंस प्राप्त है। AVR के लिए स्कीइन का कार्यान्वयन भी है ।


1
Upvoted - एक अच्छा संसाधन, और इसे प्रश्न के उत्तर के रूप में सेट किया जाना चाहिए।
लो

9

संभवतया उपयोगी होते हुए भी लिंक हिस्टेरोज़ को "एन्क्रिप्शन" के रूप में गिना नहीं जाता। यह वास्तव में केवल "ओबफैसेशन" है।

गणित को जानने वाले लोगों के लिए भी उचित क्रिप्टोग्राफी गलत होना बेहद आसान है।

मूल पोस्ट के जवाब में - क्या हमले के तरीके हैं जो किसी को ईप्रोम में पिन तक पहुंचने देंगे? निश्चित रूप से अगर उन्हें आपके इलेक्ट्रॉनिक्स में वह मिल गया है तो वे केवल "लाल तार को छीन" सकते हैं और दरवाजा खोल सकते हैं?

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


मैं सहमत हूं (और ऊपर सहमत हूं), एक तरीका हैश उपयोगी होगा और यदि आप सिस्टम को प्रोग्रामिंग कर रहे हैं, तो आप पिन को तब तक बना सकते हैं जब तक आप चाहते हैं जैसे 8 अंक 100 000 000 संयोजन देता है, जिसे अधिक समय लेना चाहिए।
आमोस

1

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


1

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


1

यहाँ C में सरल एनक्रिप्शन की एक विधि है जिसे आसानी से Arduino पर पोर्ट किया जा सकता है। यह Arduino के सीमित संसाधनों के साथ डेटा एन्क्रिप्ट करने का सबसे आसान तरीका लगता है।

-EDIT- अपने प्रोग्राम की चाबी को बाहर रखने के लिए आप पिन का आधा हिस्सा बना सकते हैं। इसका मतलब यह है कि आपका प्रोग्राम EEProm में संग्रहीत एन्क्रिप्ट किए गए 1/2 पिन को डिक्रिप्ट करने के लिए पिन का आधा हिस्सा लेता है। यदि EEProm से डिक्रिप्ट की गई कुंजी आपके पिन के उस हिस्से से मेल खाती है जो कुंजी नहीं है, तो दरवाजा अनलॉक होगा। यह केवल उस स्थिति में काम करेगा जहां घुसपैठियों के लिए दरवाजा तोड़ना संभव नहीं है या अरुडिनो को फटकारना नहीं है।


लेकिन अगर उन्हें आपकी चिप तक कोई पहुंच नहीं है, तो आपको पिन को एन्क्रिप्ट करने की आवश्यकता नहीं है।
अमोस

1

मुझे दूसरे से पूछते हुए सवाल का जवाब नहीं देने से नफरत है, लेकिन ...

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

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

मुझे लगता है कि आप एक पेचकश को एक हथौड़ा होने के लिए कह रहे हैं।


1

ये टिप्पणियां वास्तव में हाजिर हैं। एन्क्रिप्शन के बारे में जानने के लिए प्रयोग करने की कोशिश में कुछ भी गलत नहीं है, लेकिन यह वास्तव में ऐसी चीजों को सीखने के लिए एक अच्छी परियोजना नहीं है। आप वास्तव में एक अच्छी पाठ्यपुस्तक और एक कंप्यूटर चाहते हैं, और जैसा @bigiain कहते हैं, गणित गलत होने के लिए कुख्यात है।

क्रिप्टोग्राफी कैसे काम करती है और आप किस चीज के खिलाफ हैं, इसकी बेहतर समझ के लिए, हैंडबुक ऑफ एप्लाइड क्रिप्टोग्राफी उत्कृष्ट और मुफ्त है:

यदि आप अपनी परियोजना को सुरक्षित करना चाहते हैं, तो यह ऐसा करने का एक अक्षम तरीका है। यदि आप क्रिप्टोग्राफी में रुचि रखते हैं, तो इस पुस्तक और कंप्यूटर से शुरू करें।


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

यदि आप स्पष्ट पाठ पिन को संग्रहीत करने से बचना चाहते हैं, तो इस भूमिका में सरल ओफ़्स्क्यूशन विधियों की कोई भी संख्या प्रभावी होगी। ऊपर दिए गए उत्तरदाता केवल यह समझने में मदद करने की कोशिश कर रहे थे कि क्रिप्टोग्राफी क्या करती है और क्या नहीं करती है। यहां एक एईएस पुस्तकालय है: hoozi.com/Articles/AESEnc एन्क्रिप्शन.htm मैं यह भी कहना चाहूंगा कि सिर्फ इसलिए कि आपने 20 साल से प्रोग्राम किया है, इसका मतलब यह नहीं है कि आप क्रिप्टोग्राफी को "समझें"। यह पूरी तरह से अलग क्षेत्र है। एक 20 साल का ऑटो मैकेनिक एक कुशल व्यक्ति है, लेकिन मैं उससे खरोंच से कैन बस डिजाइन करने की उम्मीद नहीं करूंगा। कृपया अपना रवैया देखें।
लो

हे भगवान ... 20 साल कोडिंग और आपको लगता है कि रनटाइम डेटा एन्क्रिप्ट करना संभव है ????? बाहर निकलें।
मिकेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.