رمز مستوی

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

رمز مستوی از دستهٔ رمزنگاری جانشینی می‌باشد. در این روش هر حرف به عدد متناظر با آن تصویر شده، سپس با استفاده از یک تابع ساده ریاضی رمز می‌شود و در نهایت عدد بدست آمده دوباره به حروف تبدیل می‌شود. به عبارت دیگر در این روش هر حرف به حرف دیگری متناظر شده و سپس در رمزگشایی نیز حرف متناظر شده به حرف اول تبدیل می‌شود. در رمز نگاری نیازمند این است که روش مشخصی وجود داشته باشد که مشخص کند کدام حرف به کدام حرف متناظر می‌شود. برای مثال، در این روش که از ضعیفترین روش‌های رمزنگاری جانشینی می‌باشد هر حرف به وسیله تابع (ax+b)\mod(26) رمز گذاری می‌شود که در اینجا b اندازه مقدار تغییر می‌باشد.

شرح[ویرایش]

در رمزنگاری مستوی در ابتدا حروف الفبایی به طول m به اعداد صحیح از ۰ تا  m-1 متناظر می‌شود. سپس با استفاده از حساب‌های در مبنای m هر کدام از عددهای بدست آمده از حروف را به عددهای دیگری که نمایانگر حروف دیگر می‌باشند تبدیل می‌کنند. تابع رمز گذاری برای یک حرف تنها همانند زیر می‌باشد:

\mbox{E}(x)=(ax+b)\mod{m},

که در اینجا m اندازهٔ مجموعه الفبای زبان و a و b کلیدهای سیستم رمزنگاری می‌باشند. مقدار a باید به صورتی انتخاب شود که اعداد a و m نسبت به هم اول باشند. تابع رمزگشایی نیز به صورت زیر می‌باشد:

\mbox{D}(x)=a^{-1}(x-b)\mod{m},

در اینجا a^{-1} وارون ضربی a به پیمانهٔ m می‌باشد که عبارت زیر را ارضا می‌کند

1 = a a^{-1}\mod{m}.

وارون ضربی a تنها در صورتی وجود دارد که اعداد a و m نسبت به هم اول باشند. از این رو بدون محدودیت داشتن بر روی a احتمال دارد عملیات رمزگشایی غیر ممکن باشد. می‌توان نشان داد که تابع رمزگشایی وارون تابع رمزگذاری می‌باشد:

\begin{align}
\mbox{D}(\mbox{E}(x)) &= a^{-1}(\mbox{E}(x)-b)\mod{m}\\
  &= a^{-1}(((ax+b)\mod{m})-b)\mod{m} \\
  &= a^{-1}(ax+b-b)\mod{m} \\
  &= a^{-1}ax \mod{m}\\
  &= x\mod{m}.
\end{align}

نقاط ضعف[ویرایش]

از آنجایی که رمز مستوی از دسته رمزهای جانشینی می‌باشد، نقاط ضعف آن‌ها را نیز به ارث برده است. رمز سزار رمز مستوی می‌باشد که در آن a=1 است. با در نظر گرفتن حروف الفبای انگلیسی (m=26، تعداد رمزهای مستوی نابدیهی به ۲۸۶ عدد می‌رسد که بیشتر از رمزهای سزار که ۲۶ عدد بود می‌باشد. این عدد از آنجا می‌آید که تعداد حالت‌هایی که می‌توان برای a در نظر گرفت یا به عبارتی تعداد عددهایی که نسبت به ۲۶ اول بوده و کوچکتر از ۲۶ باشند ۱۲ می‌یاشد. به ازای هرکدام از مقادیر a می‌توان ۲۶ مقدار برای b قرار داد.

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

http://www.math.cornell.edu/~kozdron/Teaching/Cornell/135Summer06/Handouts/affine.pdf [۱]

پیوند به بیرون[ویرایش]