رمزنگاری الجمال (به انگلیسی: ElGamal encryption) در رمزنگاری سیستم رمزنگاری الجمل یک الگوریتم رمزنگاری کلید عمومی است که بر پایه پروتکل تبادل کلید دیفی-هلمن ساخته شدهاست. این الگوریتم توسط طاهر الجمل در سال ۱۹۸۴ معرفی شد. الگوریتم الجمل در برنامههایی مانند گنو پرایوسی گارد یا نسخههای اخیر PGP و سایر نرمافزارهای رمزنگاری استفاده میشود.
الگوریتم الجمل میتواند بر روی هر گروه دوری مانند تعریف شود. امنیت آن بستگی به سختی مسئلهای خاص در مربوط به محاسبۀ لگاریتم گسسته دارد.
الگوریتم
الگوریتم الجمل از سه قسمت تشکیل شدهاست.
- تولید کلید
- الگوریتم رمزنگاری
- الگوریتم رمزگشایی
تولید کلید
مولد کلید اینگونه کار میکند:
- آلیس توسط مولد یک گروه دوری ضربی بهینۀ با مرتبۀ تولید میکند.این گروه باید شرایطی داشته باشد که در ادامه به آنها اشاره میکنیم.
- آلیس به تصادف یک از انتخاب میکند.
- آلیس را محاسبه میکند.
- آلیس را به همراه ، و به عنوان کلید عمومی منتشر میکند و را به عنوان کلید خصوصی نزد خود نگه میدارد.
الگوریتم رمزنگاری
برای رمز کردن پیام تحت کلید اینگونه عمل میکنیم:
- باب به تصادف یک از انتخاب میکند و را حساب میکند.
- باب رمز مشترک (که باید مخفی بماند) را محاسبه میکند.
- باب پیام را به یک عضو از مثل تبدیل میکند.
- باب سپس را محاسبه میکند.
- باب در نهایت پیام رمزشدۀ را برای آلیس میفرستد.
در اینجا اگر شخصی را بداند بهراحتی میتواند را بهدست آورد. به همین دلیل برای بالا بردن امنیت برای هر پیغام، یک جدید تولید میشود که به آن کلید موقتی یا کلید بیدوام (به انگلیسی: ephemeral key) میگویند.
الگوریتم رمزگشایی
برای رمزگشایی پیام رمزی بهوسیلۀ کلید خصوصی اینگونه عمل میکنیم:
- آلیس رمز مشترک را محاسبه میکند:
- سپس آلیس را محاسبه میکند که به وسیلۀ آن میتواند را بهدست آورد. در اینجا عضو وارون در میباشد.
این الگوریتم درست کار میکند زیرا:
امنیت
امنیت سیستم رمزنگاری الجمل به شرایط گروه و همچنین روش پد کردن پیغام بستگی دارد.
اگر فرض دیفی-هلمن محاسباتی(CDH) بر روی گروه دوری برقرار باشد، آنگاه تابع رمزنگاری یکطرفه است. اگر فرض دیفی-هلمن تصمیمی(DDH) بر روی برقرار باشد، آنگاه الجمل دارای امنیت معنایی خواهد بود. امنیت معنایی را نمیتوان به تنهایی از فرض دیفی-هلمن محاسباتی بهدست آورد.
رمزنگاری الجمل نرمشپذیر است، بنابراین در برابر حملۀ متن رمزی انتخابی امن نیست. برای مثال توسط متن رمزی از پیام میتوان بهراحتی پیام را توسط بهدست آورد.
برای بهدست آوردن امنیت متن رمزی انتخابی باید روش رمزنگاری را تغییر دهیم، یا اینکه از یک روش پد مناسب استفاده کنیم. بسته به نوع تغییرات فرض دیفی-هلمن تصمیمی میتواند مورد نیاز باشد یا نباشد.
کاربرد عملی
سیستم رمزنگاری الجمل معمولاً در سیستمهای رمزنگاری هیبریدی استفاده میشود. برای مثال، پیام توسط یک سیستم رمزنگاری متقارن رمز میشود و سپس از سیستم الجمل برای رمز کردن کلید متقارن استفاده میشود. زیرا سیستمهای رمزنگاری نامتقارن مثل الجمل نسبت به سیستمهای متقارن معمولاً سرعت پایینتری دارند و بنابراین با توجه به اینکه نسبت اندازۀ کلید به متن بسیار کوچکتر است این کار از لحاظ زمانی بسیار بهینهتر است.
کارایی
الگوریتم الجمل احتمالاتی کار میکند؛ بهاین معنی که رمزشدۀ یک متن ثابت، میتواند متنهای متفاوتی باشد و دلیل آنهم انتخاب تصادفی مقدار در مرحلۀ رمزگذاری میباشد.
رمزنگاری
برای رمز کردن یک متن توسط الجمل به دو عنصر و نیاز داریم که با توجه به این که این عناصر مستقل از متن هستند، میتوان آنها را از قبل محاسبه کرد.
رمزگشایی
در مرحلۀ رمزگشایی برای بهدست آوردن متن اصلی از متن رمزی بهوسیلۀ کلید خصوصی ، ما نیاز به داشتیم. برای بهدست آوردن بهینۀ میتوان از روش زیر استفاده کرد:
(در اینجا محاسبات توانی به پیمانۀ انجام شدهاند). حالا با توجه بهاینکه پس:
جستارهای وابستهمنابعپیوند به بیرون