ऐसिमेट्रिक कुंजी एन्क्रिप्शन: यह एक क्रिप्टोग्राफ़िक सिस्टम है, जो डेटा को एन्क्रिप्ट (सुरक्षित) और डिक्रिप्ट करने के लिए, जोड़ी गई कुंजियों (सार्वजनिक और निजी) का इस्तेमाल करता है. सार्वजनिक कुंजियों का इस्तेमाल डेटा एन्क्रिप्ट करने के लिए किया जाता है और इसे शेयर किया जा सकता है. निजी कुंजियों का इस्तेमाल डेटा को डिक्रिप्ट करने के लिए किया जाता है और इनकी जानकारी सिर्फ़ मालिक के पास होती है.
Ciphertext: एल्गोरिदम का इस्तेमाल करके, सादे टेक्स्ट पर एन्क्रिप्ट (सुरक्षित) किए गए एन्क्रिप्शन का नतीजा. साइफ़रटेक्स्ट तब तक समझ में नहीं आता, जब तक कि उसे एक कुंजी का इस्तेमाल करके वापस सादे टेक्स्ट में न बदल दिया जाए.
एक जैसा व्यवहार: इसका मतलब है कि Tink सभी प्रोग्रामिंग भाषाओं में "एक जैसा" व्यवहार करता है. उदाहरण के लिए Tink, आकलन को एक जैसा बनाता है. इसका मतलब है कि किसी दिए गए कीसेट के लिए, अगर प्रिमिटिव क्रिएशन दो भाषाओं में काम करता है, तो प्रिमिटिव एक जैसा व्यवहार करते हैं.
कुंजी: डेटा को एन्क्रिप्ट या डिक्रिप्ट करने के लिए आवश्यक जानकारी का एक हिस्सा (उदाहरण के लिए, कोई स्ट्रिंग). इन्हें कैसे दिखाया जाता है, यह जानने के लिए मुख्य ऑब्जेक्ट देखें.
कीसेट और कीसेट हैंडल: Tink, कुंजियों को मैनेज करने के लिए, कीसेट का इस्तेमाल करता है. कीसेट, कुंजियों का एक ऐसा सेट है जो बटन को घुमाने की सुविधा देता है. कीसेट की अहम प्रॉपर्टी ये हैं:
- कीसेट में मौजूद हर कुंजी का एक यूनीक आईडी होता है, जो कीसेट में यूनीक होता है. आम तौर पर, इस आईडी को बनाए गए हर सादे टेक्स्ट, हस्ताक्षर या टैग में प्रीफ़िक्स के तौर पर जोड़ा जाता है. इससे पता चलता है कि किस कुंजी का इस्तेमाल किया गया है (ज़्यादा जानकारी के लिए, देखें कि कैसे टैग साइफ़रटेक्स्ट का इस्तेमाल किया जाता है).
- कीसेट में एक बार में सिर्फ़ एक कुंजी प्राइमरी होती है. कीसेट में एक प्राथमिक कुंजी मौजूदा समय में "इस्तेमाल में है" कुंजी होती है.
- किसी भी कुंजी के सेट में मौजूद सभी कुंजियों का इस्तेमाल, एक ही प्रिमिटिव (जैसे कि AEAD) पर किया जाना चाहिए. हालांकि, उनकी कुंजी के टाइप अलग-अलग हो सकते हैं, जैसे कि AES-GCM और XCHACHA20-POLY1305 कुंजी.
लागू की गई हर Tink की सुविधा, कीसेट बनाने या उनमें बदलाव करने के लिए एपीआई उपलब्ध कराती है. हालांकि, हमारा सुझाव है कि आप अपने सीएलआई टूल के लिए, Tinkey का इस्तेमाल करें.
उपयोगकर्ता कीसेट हैंडल का इस्तेमाल करके, कीसेट पर ऑपरेट करते हैं. कीसेट हैंडल, संवेदनशील कुंजी के असल कॉन्टेंट को
एक्सपोज़र को सीमित करता है. यह एक कीसेट को भी ऐब्स्ट्रैक्ट करता है, जिससे उपयोगकर्ता एक प्रिमिटिव हासिल कर सकते हैं, जो पूरे कीसेट को "रैप" करता है. उदाहरण
के लिए, आप N
कुंजियों वाले किसी कीसेट का AEAD प्रिमिटिव पा सकते हैं. इसके बाद,
आपको मिले प्रिमिटिव के साथ एन्क्रिप्शन और डिक्रिप्शन, फिर कीसेट में प्राथमिक कुंजी का इस्तेमाल करता है.
की मैनेजमेंट सिस्टम (केएमएस): यह एक ऐसा सिस्टम है जिसका इस्तेमाल क्रिप्टोग्राफ़िक कुंजियों को मैनेज करने के लिए किया जाता है. इनमें क्रिप्टोग्राफ़िक पासकोड बनाना, उन्हें सेव करना, इस्तेमाल करना, घुमाना, बिगाड़ना, और उन्हें बदलना शामिल है.
मुख्य टाइप: कुंजी टाइप, खास प्रिमिटिव को लागू करती है. ज़्यादातर प्रिमिटिव में कई तरह की कुंजी होती हैं. आप इनमें से किसी को भी चुन सकते हैं. यह सुरक्षा, रनटाइम, और स्पेस की आपकी ज़रूरतों पर निर्भर करता है. उदाहरण के लिए, AES128_GCM एक AEAD है, जो तेज़ और ज़्यादातर ज़रूरतों के लिए असरदार है. भाषा के हिसाब से, इस्तेमाल की जा सकने वाली कुंजी के टाइप पर ज़्यादा जानकारी देखें.
पैरामीटर: इसमें कुंजी बनाने के लिए ज़रूरी जानकारी के बारे में पूरी जानकारी दी गई है. इसमें मुख्य सामग्री और कुंजी आईडी शामिल नहीं हैं. पैरामीटर ऑब्जेक्ट देखें और जानें कि उन्हें कैसे दिखाया जाता है.
सामान्य टेक्स्ट: एन्क्रिप्ट (सुरक्षित) किए गए टेक्स्ट या उसमें शामिल एलिमेंट का ऐसा इनपुट, जिसे समझने में आसानी होती है.
Primitive: Tink, प्रिमिटिव का इस्तेमाल क्रिप्टोग्राफ़िक बिल्डिंग ब्लॉक के तौर पर करता है. ये किसी एल्गोरिदम को मैनेज करते हैं, ताकि उपयोगकर्ता सुरक्षित तरीके से क्रिप्टोग्राफ़िक टास्क कर सकें. प्रिमिटिव, क्रिप्टोग्राफ़िक एल्गोरिदम और कुंजी के टाइप की जानकारी देता है.
Tink के साथ काम करने वाले प्रिमिटिव:
- असोसिएट किए गए डेटा के साथ पुष्टि किया हुआ एन्क्रिप्शन (AEAD): डेटा एन्क्रिप्ट (सुरक्षित) करने के लिए सबसे सामान्य प्रिमिटिव; ज़्यादातर एन्क्रिप्शन ज़रूरतों के लिए सही. AEAD, सादे टेक्स्ट की गोपनीयता बनाए देता है. साथ ही, इसकी प्रामाणिकता और प्रामाणिकता की पुष्टि करता है. असोसिएट किए गए डेटा के साथ पुष्टि किया गया एन्क्रिप्ट (सुरक्षित) करने का तरीका (AEAD) देखें.
- तय करने वाला एन्क्रिप्शन: एक ऐसा प्रिमिटिव जो किसी दिए गए सादे टेक्स्ट और कुंजी के लिए, हमेशा एक ही सादे टेक्स्ट को बनाता है. यह जोखिम भरा हो सकता है, क्योंकि हमला करने वाले को इसकी पहचान करने के लिए सिर्फ़ यह पता लगाना होता है कि कौनसा सादे टेक्स्ट इनपुट, कौनसा सादे टेक्स्ट वाला है. तय करने वाला AEAD देखें.
- डिजिटल सिग्नेचर: साइन किए गए डेटा की प्रामाणिकता और उसके रखरखाव की पुष्टि करने के लिए, एक ऐसिमेट्रिक (एसिमेट्रिक की एन्क्रिप्शन देखें) . डिजिटल हस्ताक्षर देखें.
- हाइब्रिड एन्क्रिप्शन: एक ऐसा प्रिमिटिव जो एसिमेट्रिक की एन्क्रिप्शन और सिमेट्रिक की एन्क्रिप्शन को जोड़ता है. एसिमेट्रिक कुंजी एन्क्रिप्शन और सिमेट्रिक कुंजी एन्क्रिप्शन देखें. हाइब्रिड एन्क्रिप्शन, सार्वजनिक-कुंजी एन्क्रिप्शन की सुविधा के साथ सिमेट्रिक एन्क्रिप्शन की क्षमता को जोड़ता है. किसी मैसेज को एन्क्रिप्ट (सुरक्षित) करने के लिए, एक नई सिमेट्रिक कुंजी जनरेट की जाती है और उसका इस्तेमाल सादे टेक्स्ट वाले डेटा को एन्क्रिप्ट करने के लिए किया जाता है. वहीं, मैसेज पाने वाले की सार्वजनिक कुंजी का इस्तेमाल सिर्फ़ सिमेट्रिक कुंजी को एन्क्रिप्ट (सुरक्षित) करने के लिए किया जाता है. अंतिम साइफ़रटेक्स्ट में सिमेट्रिक साइफ़रटेक्स्ट और एन्क्रिप्ट की गई सिमेट्रिक कुंजी शामिल होती है. हाइब्रिड एन्क्रिप्शन देखें.
- मैसेज की पुष्टि करने वाला कोड (MAC): डेटा की प्रामाणिकता और उसकी प्रामाणिकता की पुष्टि करने के लिए एक सिमेट्रिक (सिमेट्रिक कुंजी एन्क्रिप्ट करने का तरीका देखें) है. मैसेज की पुष्टि करने वाला कोड (MAC) देखें.
- स्ट्रीमिंग AEAD: स्ट्रीमिंग डेटा के लिए पुष्टि किया गया एन्क्रिप्शन देने वाला शुरुआती डेटा; यह तब काम आता है, जब एन्क्रिप्ट (सुरक्षित) किया जाने वाला डेटा इतना बड़ा हो कि एक चरण में प्रोसेस नहीं किया जा सकता. स्ट्रीमिंग AEAD देखें.
काम करने की जानकारी के लिए, भाषा के हिसाब से इस्तेमाल किए जा सकने वाले प्रिमिटिव देखें.
Registry: Tink में मौजूद एक ग्लोबल इकाई, जिसे नई कुंजियों और प्रिमिटिव को जनरेट करने का तरीका पता है. रजिस्ट्रेशन से जुड़ी गड़बड़ियों को डीबग करने के लिए, दिशा-निर्देश भी देखें.
सिमेट्रिक की एन्क्रिप्शन: एक क्रिप्टोग्राफ़िक एल्गोरिदम, जो सादे टेक्स्ट को एन्क्रिप्ट (सुरक्षित) करने और साइफ़रटेक्स्ट को डिक्रिप्ट करने के लिए, एक ही कुंजी का इस्तेमाल करता है.