به سایت آموزش ریاضیات و رمزنگاری خوش آمدید

صفحه اصلی تماس با ما درباره ما نقشه سایت
>> الگوریتم های کلاسیک >> الگوریتم رمز هیل

رمزنگاری به روش هیل

رمز هیل
در رمزهایی نظیر سزار,ویگنر و . . . از یک تابع ریاضی برای رمزنگاری داده استفاده میشد . وظیفه این تابع اخذ ورودی و در قبال آن تولید خروجی متناظر با آن بود هر کاراکتر بر اساس قواعد الگوریتم با کاراکتر متناظر خود جابجا می شد.
رمزنگاری در روش هیل با استفاده از ماتریس صورت می پذیرد. در این روش از یک ماتریس دو در دو بعنوان ابزار استفاده شده و متن اولیه که نیاز است رمزنگاری بر روی آن انجام شود با شرایط خاص به این ماتریس خورانده می شود. ماتریس مورد نظر باید دارای دترمینان مخالف صفر باشد. وجود این شرط باعث میشود ماتریس مورد استفاده وارون پذیر بوده و با استفاده از وارون ماتریس مورد نظر متن رمز شده از حالت رمز خارج شود. در این روش از جبر خطی و محاسبات ماتریسی برای رمزنگاری استفاده میشود.
مثال: فرض کنید میخواهیم متنی را به روش هیل رمزنگاری کنیم. به دلیل سهولت از حروف الفبای لاتین استفاده می کنیم. به حرف a عدد 0 و به ترتیب به سایر حروف عدد 1 الی 25 را نسبت می دهیم. این امر باعث میشود در محاسبات مورد نیاز بتوانیم به سهولت اقدام به انجام عملیات ریاضی کنیم

ساخت ماتریس اولیه
برای ساخت ماتریس اولیه از یک ماتریس دودوئی استفاده میکنیم از خصوصیات این ماتریس مخالف صفر بودن دترمینان آن می باشد. ماتریس مورد استفاده به شرح زیر است
hill

hill
ماتریس مورد استفاده دارای وارون بوده و دترمینان آن مخالف صفر است. این قسمت ماتریس اولیه مساله ساخته شده است
hill
تا این مرحله ماتریس اولیه برای رمزنمودن متن ایجاد شده است

ساخت ماتریس وارون
هدف از ساخت این ماتریس اماده سازی ابزار مورد نیاز برای رمزگشائی از داده رمز شده می باشد برای ساخت این ماتریس محاسبات زیر را انجام میدهیم . ابتدا دترمینان وارون ماتریس اولیه را در پیمانه 26 محاسبه میکنیم
hill
hill
hill
عدد بدست امده دترمینان وارون ماتریس اولیه به پیمانه 26 می باشد.
سپس ساختار ماتریس را براساس فرمول زیرمحاسبه کرده و برای حذف علامت منفی عدد مورد نظر را به پیمانه 26 انتقال میدهیم

hill

در مرحله بعد محاسبه را با ترکیب فرمول زیر ادامه میدهیم

hill

در مرحله بعد ماتریس بدست آمده را در پیمانه 26 ساده می کنیم

hill

تا این مرحله کار ساخت ماتریس معکوس به پایان رسیده است. در ادامه میتوانیم رمزنگاری و رمزگشایی را به سهولت انجام دهیم

مراحل رمزنگاری
فرض کنید بخواهیم کلمه book را از حالت اولیه به حالت رمزشده تبدیل کنیم مراحل انجام کار به شرح زیر است
مرحله اول
ابتدا بر اساس رشته حروف الفبای لاتین هرکدام از حروف کلمه book مقدار عددی انرا استخراج میکنیم پس از استخراج مقادیر عددی, مقادیر بدست امده را به ترتیب در یک ماتریس 2*1 قرار میدهیم

hill

پس از استخراج مقادیر عددی, مقادیر بدست امده را به ترتیب در یک ماتریس 2*1 قرار میدهیم
hill

همانگونه که مشاهده میکنید اعداد بدست آمده به ترتیب از چپ به راست در ماتریس 2*1 درج شده اند

مرحله دوم
ماتریس های بدست آمده در مرحله دوم را در ماتریس اولیه ضرب نموده و مقادیر بدست امده را در پیمانه 26 ساده می نمائیم

hill

hill

مرحله سوم
مقادیر بدست آمده از مرحله دوم را به الفبای لاتین تبدیل می کنیم

hill

رشته zbah که حاصل محاسبات انجام شده است به عنوان خروجی این مرحله می باشد.

مراحل رمزگشایی
مرحله دیگر از کارگشودن متن رمز شده می باشد. دریافت کننده پیام که ماتریس اصلی و یا ماتریس ترانهاده در اختیار او می باشد باید به روشی خاص بتواند متن اولیه را استخراج نماید مراحل انجام کار به شرح زیر است.

مرحله اول
ابتدا متن رمز شده را دریافت کرده و آنرا به مقدار عددی تبدیل میکنیم

hill

مقادیر عددی را به ترتیب در یک ماتریس 2*1 درج میکنیم
hill

مرحله دوم
ماتریس های بدست آمده در مرحله اول را در ماتریس وارون ضرب نموده و مقادیر بدست امده را در پیمانه 26 ساده می نمائیم.

hill

hill

منابع و مراجع
برای مطالعه بیشتر میتوانید به آدرس های زیر مراجعه کنید
آشنائی بار رمزگشایی به روش ریاضی
آبراهام سینکوف
رمزنگاری هیل


تاریخ بروزرسانی
1397/02/15

advertise
advertise
advertise
advertise

نظرات و پیشنهادات خود را با آدرس admin[@]ircrypt(.)com با ما در میان بگذارید
رتبه سالانه
رتبه در سایت الکسا
نقل مطالب سایت با درج منبع بلا مانع است