स्यूडो-रैंडम फ़ंक्शन (पीआरएफ़)

स्यूडो-रैंडम फ़ंक्शन (पीआरएफ़) प्रिमिटिव आपको दिए गए इनपुट के लिए स्थायी, आर्बिट्रेरी लंबाई, सूडो-रैंडम आउटपुट बनाने देता है.

Tink कीसेट पर काम करता है. इसलिए, यह प्रिमिटिव किसी एक पीआरएफ़ के बजाय, उससे जुड़ी PRF का सेट दिखाता है. PRF को 32 बिट कुंजी आईडी से इंडेक्स किया जाता है. इसका इस्तेमाल किसी जानकारी को छिपाने के लिए, उस कुंजी को घुमाने के लिए किया जा सकता है जिसका इस्तेमाल जानकारी को छिपाने के लिए किया जाता है. ऐसा करते समय, पिछले असोसिएशन को जारी रखा जा सकता है.

PRF में ये प्रॉपर्टी हैं:

  • तय करने वाला: किसी दिए गए इनपुट के लिए पीआरएफ़ का हिसाब लगाने से हमेशा एक ही आउटपुट मिलेगा.
  • रैंडमनेस: पीआरएफ़ के आउटपुट को रैंडम बाइट से अलग करके नहीं पहचाना जा सकता है.

कोई कुंजी टाइप चुनें

हमारा सुझाव है कि ज़्यादातर मामलों में, HMAC_SHA256_PRF का इस्तेमाल करें. हालांकि, कई दूसरे विकल्प भी हैं.

आम तौर पर, नीचे दी गई बातें सही होती हैं:

  • HMAC_SHA512_PRF आपके इनपुट साइज़ और इस्तेमाल किए जाने वाले हार्डवेयर की जानकारी के हिसाब से तेज़ हो भी सकता है और नहीं भी.
  • HMAC_SHA512_PRF सबसे कंज़र्वेटिव मोड है, जिसका इस्तेमाल करीब अनगिनत मैसेज के लिए किया जा सकता है.
  • AES_CMAC_PRF उन सिस्टम पर सबसे तेज़ है जो AES-NI हार्डवेयर ऐक्सेलरेशन के साथ काम करते हैं.

सुरक्षा की कम से कम गारंटी

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

इस्तेमाल के उदाहरण

पीआरएफ़ के लिए इस्तेमाल के उदाहरणों में, व्यक्तिगत पहचान से जुड़ी जानकारी (पीआईआई) को छिपाने के लिए तय करने वाले तरीके से हटाना, कीड हैश फ़ंक्शन, और ऐसे सब-आईडी बनाना शामिल हैं जो कुंजी को जाने बिना, ओरिजनल डेटासेट से जुड़ने की अनुमति नहीं देते.

पीआरएफ़ का इस्तेमाल किसी मैसेज की प्रामाणिकता की पुष्टि करने के लिए किया जा सकता है. हालांकि, ऐसे मामले में एमएसी प्रिमिटिव का इस्तेमाल करने का सुझाव दिया जाता है. ऐसा इसलिए किया जाता है, क्योंकि इसमें पुष्टि करने, पुष्टि के दौरान होने वाली सुरक्षा समस्याओं से बचने, और डेटा सुरक्षित करने वाली कुंजी के नए वर्शन के लिए अपने-आप काम करने की सुविधा होती है. यह ऐसे एल्गोरिदम की भी अनुमति देता है जो तय नहीं किए गए हैं.