बेनलोह क्रिप्टोसिस्टम

बेनालोह क्रिप्टोसिस्टम जोश (कोहेन) बेनालोह द्वारा 1985 में बनाए गए गोल्डवेसर-माइकली क्रिप्टोसिस्टम (जीएम) का विस्तार है। जीएम पर बेनालोह क्रिप्टोसिस्टम का मुख्य सुधार यह है कि डेटा के लंबे ब्लॉक को एक बार में एन्क्रिप्ट किया जा सकता है, जबकि जीएम में प्रत्येक बिट को व्यक्तिगत रूप से एन्क्रिप्ट किया जाता है।

योजना परिभाषा
कई सार्वजनिक कुंजी क्रिप्टोसिस्टम्स की तरह योजना समूह में काम करती है $$(\mathbb{Z}/n\mathbb{Z})^*$$ जहाँ n दो बड़ी अभाज्य संख्याओं का गुणनफल है। यह योजना समरूप है।

मुख्य जनरेशन
दिए गए ब्लॉक आकार r, a सार्वजनिक/निजी कुंजी जोड़ी निम्नानुसार उत्पन्न होती है:


 * 1) बड़े अभाज्य p और q ऐसे चुनें कि $$r \vert (p-1), \operatorname{gcd}(r, (p-1)/r)=1,$$ और $$\operatorname{gcd}(r, (q-1))=1$$
 * 2) समुच्चय $$n=pq, \phi=(p-1)(q-1)$$
 * 3) चुनना $$y \in \mathbb{Z}^*_n$$ ऐसा है कि $$y^{\phi/r} \not \equiv 1 \mod n$$.
 * नोट: यदि r सम्मिश्र है, तो यह Fousse et al द्वारा इंगित किया गया था। 2011 में कि उपरोक्त शर्तें (अर्थात, जो मूल पेपर में बताई गई हैं) सही डिक्रिप्शन की गारंटी देने के लिए अपर्याप्त हैं, यानी यह गारंटी देने के लिए कि $$D(E(m)) = m$$ सभी मामलों में (जैसा होना चाहिए)। इसे संबोधित करने के लिए, लेखक निम्नलिखित जांच का प्रस्ताव करते हैं: चलो $$r=p_1p_2\dots p_k$$ आर का प्रमुख गुणनखंड हो। चुनना $$y \in \mathbb{Z}^*_n$$ ऐसा कि प्रत्येक कारक के लिए $$p_i$$, आलम यह है कि $$y^{\phi/p_i}\ne 1\mod n$$.

सार्वजनिक कुंजी तब है $$y,n$$, और निजी कुंजी है $$\phi,x$$.
 * 1) तय करना $$x=y^{\phi/r}\mod n$$

संदेश एन्क्रिप्शन
संदेश एन्क्रिप्ट करने के लिए $$m\in\mathbb{Z}_r$$:


 * 1) एक यादृच्छिक चुनें $$u \in \mathbb{Z}^*_n$$
 * 2) तय करना $$E_r(m) = y^m u^r \mod n$$

संदेश डिक्रिप्शन
एक सिफरटेक्स्ट को डिक्रिप्ट करने के लिए $$c\in\mathbb{Z}^*_n$$:

डिक्रिप्शन को समझने के लिए, पहले ध्यान दें कि किसी के लिए $$m\in\mathbb{Z}_r$$ और $$u\in\mathbb{Z}^*_n$$ अपने पास:
 * 1) गणना करें $$a=c^{\phi/r}\mod n$$
 * 2) आउटपुट $$m=\log_x(a)$$, अर्थात्, m को ऐसे ज्ञात कीजिए कि $$x^m\equiv a \mod n$$


 * $$a = (c)^{\phi/r} \equiv (y^m u^r)^{\phi/r} \equiv (y^{m})^{\phi/r}(u^r)^{\phi/r} \equiv (y^{\phi/r})^m(u)^{\phi} \equiv (x)^m (u)^0 \equiv x^m \mod n$$

m को a से पुनर्प्राप्त करने के लिए, हम आधार x का असतत लॉग लेते हैं। यदि r छोटा है, तो हम एक विस्तृत खोज द्वारा m को पुनः प्राप्त कर सकते हैं, अर्थात यदि जाँच कर रहे हैं $$x^i\equiv a \mod n$$ सभी के लिए $$0\dots (r-1)$$. आर के बड़े मूल्यों के लिए, बेबी-स्टेप जाइंट-स्टेप  एल्गोरिदम का उपयोग एम को पुनर्प्राप्त करने के लिए किया जा सकता है $$O(\sqrt{r})$$ समय और स्थान।

सुरक्षा
इस योजना की सुरक्षा उच्च अवशिष्टता समस्या पर टिकी हुई है, विशेष रूप से, z,r और n जहां n का गुणन अज्ञात है, यह कम्प्यूटेशनल रूप से यह निर्धारित करने के लिए संभव है कि क्या z एक rth अवशेष मॉड n है, अर्थात यदि कोई x ऐसा मौजूद है वह $$z \equiv x^r \mod n$$.