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