رمزنگاری همریختی نوعی از رمزنگاری است که به وسیله آن میتوان بر روی متن رمز، عملیات خاص ریاضی انجام داد و عملیات ریاضی انجام شده عیناً بر روی متن آشکار پیاده میشود. برای مثال یک نفر میتواند دو عدد رمزشده را با هم جمع کند، و رمزگشایی نتیجه، جمع آن دو عدد را نشان خواهد داد. از جمله کاربردهای رمزنگاری همریختی میتوان به سیستمهای رای امن و بازیابی اطلاعات مخفی اشاره کرد.[۱]
رمزنگاری همریختی جزئی[ویرایش]
در مثالهای زیر علامت
نشان دهنده رمزنگاری پیام x میباشد. مطالب این صفحه از صفحه انگلیسی ویکیپیدیا گرفته شده است.[۱]
Unpadded RSA[ویرایش]
اگر رمزنگاری کلید عمومی RSA پیمانه
و توان
باشد، در نتیجه رمزنگاری یک پیام
به صورت
میباشد. در نتیجه خصوصیت همریختی به صورت زیر میباشد:
![{\displaystyle {\mathcal {E}}(x_{1})\cdot {\mathcal {E}}(x_{2})=x_{1}^{e}x_{2}^{e}\;{\bmod {\;}}m=(x_{1}x_{2})^{e}\;{\bmod {\;}}m={\mathcal {E}}(x_{1}\cdot x_{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/469e1a27f47c03e3f8a993c46440eec9d52aa54b)
در ElGamal cryptosystem، در یک گروه
، اگر کلید عمومی
باشد که
، و
کلید رمز باشد، در نتیجه رمزنگاری یک پیام
، به صورت
میباشد، که به ازای یک مقدار تصادفی
بدست میآید. در نتیجه خصوصیت همریختی به صورت زیر میباشد:
![{\displaystyle {\mathcal {E}}(x_{1})\cdot {\mathcal {E}}(x_{2})=(g^{r_{1}},x_{1}\cdot h^{r_{1}})(g^{r_{2}},x_{2}\cdot h^{r_{2}})=(g^{r_{1}+r_{2}},(x_{1}\cdot x_{2})h^{r_{1}+r_{2}})={\mathcal {E}}(x_{1}\cdot x_{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/406bf6e5af85bfec7020df0119780fdb49e95511)
Goldwasser-Micali[ویرایش]
در رمزنگاری گلدواسر-میکالی، اگر کلید عمومی به پیمانه
و quadratic non-residue x, در نتیجه رمزنگاری یک بیت b به صورت
میباشد که به ازای مقدار تصادفی
میباشد. خصوصیت همریختی به صورت زیر میباشد:
![{\displaystyle {\mathcal {E}}(b_{1})\cdot {\mathcal {E}}(b_{2})=x^{b_{1}}r_{1}^{2}x^{b_{2}}r_{2}^{2}=x^{b_{1}+b_{2}}(r_{1}r_{2})^{2}={\mathcal {E}}(b_{1}\oplus b_{2})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/752876f28a97a05e96df2bde30379dda45936b35)
نشان دهنده جمع به پیمانه ۲ یا exclusive-or میباشد.
در Benaloh cryptosystem، اگر کلید عمومی در پیمانه m و پایه g و c به عنوان اندازه بلوک، در نتیجه رمزنگاری پیام x به صورت
میباشد که به ازای مقدار تصادفی
است. خصوصیت همریختی به صورت زیر میباشد:
اگر در Paillier cryptosystem، اگر کلید عمومی در پیمانه m و پایه g، در نتیجه رمزنگاری پیام x به صورت
میباشد که به ازای مقدار تصادفی
است. خصوصیت همریختی به صورت زیر میباشد:
![{\displaystyle {\mathcal {E}}(x_{1})\cdot {\mathcal {E}}(x_{2})=(g^{x_{1}}r_{1}^{m})(g^{x_{2}}r_{2}^{m})=g^{x_{1}+x_{2}}(r_{1}r_{2})^{m}={\mathcal {E}}(x_{1}+x_{2}\;{\bmod {\;}}m)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/61e2f29c6c142842dcc0e8c85167c5ffbc109689)
موارد دیگر رمزنگاری همریختی جزئی[ویرایش]