openssl hmac एईएस-256-सीबीसी का उपयोग कर




aes (2)

आप सीबीसी-मैक के बारे में पूछ सकते हैं इसके लिए, मुझे लगता है कि आप केवल अपना संदेश या फ़ाइल को चतुर्थ संख्या के साथ एन्क्रिप्ट करते हैं और फिर अंतिम ब्लॉक (एईएस 256 सीसीसी के लिए 16 बाइट्स) लेते हैं। मुझे एक ब्लॉग पोस्ट मिली जो यह बताता है कि इसे OpenSSL के साथ कैसे करें:

openssl enc -e -aes-256-cbc -K 0123456789ABCDEF -iv 0000000000000000 < file | tail -c 16 | od -A n
  • -K जहां आप अपनी कुंजी प्रदान करते हैं, जिस पर विकी पृष्ठ का कहना है कि आप फ़ाइल को एन्क्रिप्ट करने के लिए क्या उपयोग कर रहे हैं, यदि आप इसे एन्क्रिप्ट कर रहे हैं, तो इससे अलग होना चाहिए।
  • -iv स्पष्ट रूप से एक सर्व-शून्य चतुर्थ प्रदान करता है, जो सीबीसी-मैक के लिए महत्वपूर्ण है।
  • tail -c 16 को अंतिम एईएस -256-सीबीसी ब्लॉक प्राप्त करना है, जो कि 16-बाइट्स लंबा है।
  • od इसे हेक्स में परिवर्तित करना है, जो कि वेब साइट कहती है आम है। अन्यथा od -A n स्थान पर आप base64 कर सकते हैं यदि यह अधिक लागू हो, या इसे केवल पूरी तरह से कच्चे बाइट्स के पास छोड़ दें।

आप किसी फ़ाइल के एईएस एचएमएसी नहीं ले सकते क्योंकि एईएस 256-सीसीसी एक ब्लॉक सिफर है, नहीं हैशिंग एल्गोरिदम एईएस 256-सीसीसी फ़ाइल को एन्क्रिप्ट करने और डिक्रिप्ट करने के लिए है। एचएमएसी एक फ़ाइल की अखंडता की पुष्टि करने के लिए है और उसके मूल में एक हैश एल्गोरिथम की आवश्यकता है जैसे कि SHA-1 या MD5

क्या आप एक फ़ाइल को हस्ताक्षर करने या सत्यापित करने का प्रयास कर रहे हैं, या इसे एन्क्रिप्ट कर रहे हैं? हस्ताक्षर करने के लिए, ओपनएसएसएल डीजीएसटी कमांड की जांच करें और साधारण एचएमएसी का प्रयोग करें जैसे एमडी 5 या एसएचए-1, या सभी बाहर जाएं और डीएसएस / डीएसए से डिजिटल हस्ताक्षर करें।

इसके अलावा, मुझे विश्वास है कि एक ब्लॉक सिफर का उपयोग कर मैक के रूप में एक ईएमएसी कहा जाता है, लेकिन ओपनएसएसएल ईएमएसी के रूप में मुझे नहीं जानता। ईएमएसी सिर्फ एक एन्क्रिप्टेड फ़ाइल का अंतिम ब्लॉक लेता है और इसे एक मैक बनाने के लिए एनक्रिप्ट करता है।

मैं लिनक्स पर openssl कमांड लाइन प्रोग्राम का उपयोग कर फ़ाइल के एईएस एचएमएसी लेने की कोशिश कर रहा हूं। मैं मैन पेज को देख रहा हूं लेकिन यह समझ नहीं पा रहा कि सफलतापूर्वक एक एचएमएसी कैसे बना सकता है। मैं openssl साथ enc कमांड का उपयोग कर फ़ाइल को एन्क्रिप्ट कर सकता हूं, लेकिन मैं एक एचएमएसी बनाने के लिए प्रतीत नहीं कर सकता एन्क्रिप्शन निम्न की तरह दिखता है:

openssl enc -aes-256-cbc -in plaintext -out ciphertext

कोई सलाह या ट्यूटोरियल अद्भुत होगा


एचएमएसी के इनपुट के रूप में आप एईएस कुंजी का उपयोग कर फ़ाइल के एक एचएमएसी कर सकते हैं।

आप चाहते हैं कि किसी भी एईएस एल्गोरिदम का उपयोग कर फ़ाइल एन्क्रिप्ट करें (इस उदाहरण में -aes-256-cbc); पासवर्ड के आधार पर एईएस कुंजी उत्पन्न करें (अपने पासवर्ड में "पासवर्ड" बदलें) और नमक, कुंजी को डंप करने के लिए -p स्विच का उपयोग करें, और iv एन्क्रिप्ट करने के लिए उपयोग किया जाता है।

openssl enc -e -k password -p -aes-256-cbc -in plaintext -out ciphertext
salt=A2402067B9BFD4A1
key=EB3A88115C30F26C3987F1AB2577DF5B58C80EBEEA623506517FAD843C64E1FC
iv =B382453BCBF579CE14C0726D343F40E2

अपनी पसंद के एक हैश एल्गोरिथ्म और एईएस कुंजी का उपयोग कर किसी भी ऑब्जेक्ट / फ़ाइल का एक एचएमएसी बनाएँ जो फ़ाइल को एन्क्रिप्ट करने के लिए उपयोग किया गया था:

openssl dgst -hmac EB3A88115C30F26C3987F1AB2577DF5B58C80EBEEA623506517FAD843C64E1FC -sha256 ciphertext
HMAC-SHA256(ciphertext)= fa3fb9c9c743f35ba81793e2704c3fc9737cd2675011110cb1655ea7ceed2914

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