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

बेनालोह क्रिप्टोसिस्टम जोश (कोहेन) बेनालोह द्वारा 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 सम्मिश्र संख्या है, तो यह फूसे एट अल द्वारा इंगित किया गया था। 2011 में कि उपरोक्त शर्तें (अर्थात, जो मूल पेपर में बताई गई हैं) सही डिक्रिप्शन की गारंटी देने के लिए अपर्याप्त हैं, यानी यह गारंटी देने के लिए कि $$D(E(m)) = m$$ सभी प्रारूपो में एक जैसा होना चाहिए। इसे सिद्थ करने के लिए, लेखक निम्नलिखित जांच का प्रस्ताव करते हैं: चलो $$r=p_1p_2\dots p_k$$, r का प्रमुख अभाज्य गुणनखंड हो। चुनना $$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)$$. r के बड़े मात्राओं  के लिए, बेबी-स्टेप जाइंट-स्टेप एल्गोरिदम का उपयोग m में  $$O(\sqrt{r})$$ समय और स्थान को पुनर्प्राप्त करने के लिए किया जा सकता है।

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