Opensl pkeyutl -sign और Opensl rsautl -sign के बीच क्या अंतर है


0

बीच क्या अंतर है openssl pkeyutl -sign -pkeyopt digest:sha256और openssl rsautl -sign? क्या वे भी यही काम करते हैं?


मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह क्रिप्टोग्राफिक सॉफ़्टवेयर के एक विशिष्ट टुकड़े के उपयोग के बारे में है।

जवाबों:


9

pkeyutl -signRSA कुंजी के साथ (और rsa_padding_modeडिफ़ॉल्ट रूप से pkcs1जिसका अर्थ विशेष रूप से pkcs1-v1_5 है) और -pkeyopt digest:$hashrfc3447 के खंड 9.2 में EMSA-PKCS1-v1_5-ENCODE के 2-6 चरणों को करता है, फिर धारा 8.2 में RSASSA-PKCS1-v1_5-SIGN के चरण 2 को भरें। दूसरे शब्दों में, यह सब कुछ करता है लेकिन हैश डेटा (लेकिन यह इनपुट हैश की लंबाई की जांच करता है )। ध्यान दें कि यदि आपके द्वारा निर्दिष्ट हैश नाम आपके द्वारा उपयोग किए गए हैश से भिन्न है, तो परिणामस्वरूप हस्ताक्षर सही तरीके से सत्यापित नहीं होंगे।

rsautl -sign(इसी तरह से डिफ़ॉल्ट) केवल 4-6 और स्टेप 2 करता है। दूसरे शब्दों में, यह ASN.1 को एल्गोरिथ्म एडिटर को कच्चे हैश में एन्कोडिंग में नहीं जोड़ता है, इसलिए आपको यह करने की आवश्यकता है कि यदि आप चाहते हैं कि आपके हस्ताक्षर समझे जाएं और स्वीकार किए जाएं। दूसरों के द्वारा। pkeyutl -signबिना -pkeyopt digestभी ASN.1 एन्कोडिंग को छोड़ देता है।

पूर्णता के लिए, dgst -$hash -signया $hash -signRSA कुंजी के साथ इसका संक्षिप्त रूप संपूर्ण कार्य करता है: हैश, ASN.1 सांकेतिक शब्दों में बदलना, पैड 01FF..00, और मोडएक्सपी।

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