رمزنگاری هم‌ریختی

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از رمزنگاری تک ریختی)
پرش به: ناوبری، جستجو

رمزنگاری هم‌ریختی نوعی از رمزنگاری است که به وسیله آن می توان بر روی متن رمز، عملیات خاص ریاضی انجام داد و عملیات ریاضی انجام شده عیناً بر روی متن آشکار پیاده می شود. برای مثال یک نفر می تواند دو عدد رمزشده را با هم جمع کند، و رمزگشایی نتیجه، جمع آن دو عدد را نشان خواهد داد. از جمله کاربردهای رمزنگاری هم‌ریختی می توان به سیستم های رای امن و بازیابی اطلاعات مخفی اشاره کرد. [۱]

رمزنگاری هم‌ریختی جزئی[ویرایش]

در مثال های زیر علامت \mathcal{E}(x) نشان دهنده رمزنگاری پیام x می باشد. مطالب این صفحه از صفحه انگلیسی ویکیپیدیا گرفته شده است.[۲]

Unpadded RSA[ویرایش]

اگر رمزنگاری کلید عمومی RSA پیمانه m و توان e باشد، در نتیجه رمزنگاری یک پیام x به صورت \mathcal{E}(x) = x^e \;\bmod\; m می باشد. در نتیجه خصوصیت هم‌ریختی به صورت زیر می باشد:

\mathcal{E}(x_1) \cdot \mathcal{E}(x_2) = x_1^e x_2^e \;\bmod\; m = (x_1x_2)^e \;\bmod\; m = \mathcal{E}(x_1 \cdot x_2)

ElGamal[ویرایش]

در ElGamal cryptosystem، در یک گروه G، اگر کلید عمومی (G, q, g, h) باشد که h = g^x، و x کلید رمز باشد، در نتیجه رمزنگاری یک پیام m، به صورت \mathcal{E}(m) = (g^r,m\cdot h^r) می باشد، که به ازای یک مقدار تصادفی r \in  \{0, \ldots, q-1\} بدست می آید. در نتیجه خصوصیت هم‌ریختی به صورت زیر می باشد:

\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)

Goldwasser-Micali[ویرایش]

در رمزنگاری گلدواسر-میکالی، اگر کلید عمومی به پیمانه m و quadratic non-residue x, در نتیجه رمزنگاری یک بیت b به صورت \mathcal{E}(b) = x^b r^2 \;\bmod\; m می باشد که به ازای مقدار تصادفی r \in  \{0, \ldots, m-1\} می باشد. خصوصیت هم‌ریختی به صورت زیر می باشد:

\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_1r_2)^2 = \mathcal{E}(b_1 \oplus b_2)

\oplus نشان دهنده جمع به پیمانه ۲ یا exclusive-or می باشد.

Benaloh[ویرایش]

در Benaloh cryptosystem، اگر کلید عمومی در پیمانه m و پایه g و c به عنوان اندازه بلوک، در نتیجه رمزنگاری پیام x به صورت \mathcal{E}(x) = g^x r^c \;\bmod\; m می باشد که به ازای مقدار تصادفی r \in  \{0, \ldots, m-1\} است. خصوصیت هم‌ریختی به صورت زیر می باشد:

\mathcal{E}(x_1) \cdot \mathcal{E}(x_2) = (g^{x_1} r_1^c)(g^{x_2} r_2^c) = g^{x_1+x_2} (r_1r_2)^c = \mathcal{E}(x_1 + x_2 \;\bmod\; c )

Paillier[ویرایش]

اگر در Paillier cryptosystem، اگر کلید عمومی در پیمانه m و پایه g، در نتیجه رمزنگاری پیام x به صورت \mathcal{E}(x) = g^x r^m \;\bmod\; m^2 می باشد که به ازای مقدار تصادفی r \in  \{0, \ldots, m-1\} است. خصوصیت هم‌ریختی به صورت زیر می باشد:

\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_1r_2)^m = \mathcal{E}( x_1 + x_2 \;\bmod\; m)

موارد دیگر رمزنگاری هم‌ریختی جزئی[ویرایش]

منابع[ویرایش]