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

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

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

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


 * 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$$.
 * नोट: यदि 'आर' समग्र है, तो यह फ़ौसे एट अल द्वारा इंगित किया गया था। 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$$.