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

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

رمزنگاری هم‌ریختی جزئی 
در مثال‌های زیر علامت  نشان دهنده رمزنگاری پیام x می‌باشد. مطالب این صفحه از صفحه انگلیسی ویکیپیدیا گرفته شده است.

Unpadded RSA 
اگر رمزنگاری کلید عمومی RSA پیمانه  و توان  باشد، در نتیجه رمزنگاری یک پیام  به صورت  می‌باشد. در نتیجه خصوصیت هم‌ریختی به صورت زیر می‌باشد:

ElGamal 
در ElGamal cryptosystem، در یک گروه ، اگر کلید عمومی  باشد که ، و  کلید رمز باشد، در نتیجه رمزنگاری یک پیام ، به صورت  می‌باشد، که به ازای یک مقدار تصادفی  بدست می‌آید. در نتیجه خصوصیت هم‌ریختی به صورت زیر می‌باشد:

Goldwasser-Micali 
در رمزنگاری گلدواسر-میکالی، اگر کلید عمومی به پیمانه  و quadratic non-residue x, در نتیجه رمزنگاری یک بیت b به صورت  می‌باشد که به ازای مقدار تصادفی  می‌باشد. خصوصیت هم‌ریختی به صورت زیر می‌باشد:

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

Benaloh 
در Benaloh cryptosystem، اگر کلید عمومی در پیمانه m و پایه g و c به عنوان اندازه بلوک، در نتیجه رمزنگاری پیام x به صورت  می‌باشد که به ازای مقدار تصادفی  است. خصوصیت هم‌ریختی به صورت زیر می‌باشد:

Paillier 
اگر در Paillier cryptosystem، اگر کلید عمومی در پیمانه m و پایه g، در نتیجه رمزنگاری پیام x به صورت  می‌باشد که به ازای مقدار تصادفی  است. خصوصیت هم‌ریختی به صورت زیر می‌باشد:

موارد دیگر رمزنگاری هم‌ریختی جزئی 
 Okamoto–Uchiyama cryptosystem
 Naccache–Stern cryptosystem
 Damgård–Jurik cryptosystem
 Boneh–Goh–Nissim cryptosystem

منابع 

پایه رمزنگاری
حریم خصوصی
رمزنگاری کلید عمومی
هومئومورفیسم‌ها
حریم خصوصی داده‌ها