'''رمز قالبی''' نوعی [[الگوریتمهای کلید متقارن |رمز کلید متقارن]] است که در آن ابتدا بیتهایبیتهای متن اصلی به بلوکهاییبلوکهایی مجزا تقسیمبندیتقسیمبندی میشود،میشود، سپس الگوریتم رمزگذاری روی هر بلوک اعمال میگرددمیگردد. طبق تعریف ریاضی، رمز قالبی تابعی است که n بیت متن اصلی را تحت کنترل کلید K، به n بیت [[متن رمزشده]] تبدیل میکندمیکند و نیز n بیت متـن رمزشده را تحت کنترل کلیـد K، به n بیت متـن اصلی تبدیل میکندمیکند. قالبهایقالبهای متن اصلی و متن رمزشده تعداد بیت یکسانی دارند. اندازه قالب را با n یا b نمایش میدهند،میدهند، که همان تعداد بیتهایبیتهای آن قالب است.
تابع رمزنگاری برای قالبهایقالبهای n بیتی متن رمزشده، و قالبهایقالبهای n بیتی متن اصلی همراه با کلید ثابت(k)، یک تابع یک به یک و پوشا است. یعنی اگر تابع [[رمزگذاری]](E) را تحت کنترل کلید (k) به یک قالب از متن اصلی(M) اعمال کنیم، یک قالب از متن رمزشده(c) بدست میآیدمیآید. حال اگر تابع رمزگشایی(D) را تحت کنترل همان کلید(k) به این قالب متن رمز شده(c) اعمال کنیم، متن اصلی(M) دوباره بازیابی میشودمیشود:
{{چپچین}}
E(D(M)) = M.
{{پایان چپچین}}
همچنین اگر تابع [[رمزگشایی]](D) را تحت کنترل کلید (k) به یک قالب از متن رمزشده(C) اعمال کنیم، یک قالب از متن اصلی(M) بدست میآیدمیآید. حال اگر تابع رمزگذاری(E) را تحت کنترل همان کلید(k) به این قالب متن اصلی(M) اعمال کنیم، متن رمزشده(C) دوباره بازیابی میشودمیشود:
{{چپچین}}
D(E(C)) = C.<ref> A. Menezes, P. van Oorschot and S. Vanstone, “Handbook of Applied Cryptography”, ۱۹۹۷,PP ۱۹۱-۲۸۲. http://www.cacr.math.uwaterloo.ca/hac</ref>
{{پایان چپچین}}
ساختار مبتنی بر شبکه جابجایی- جانشینی: مانند رمز AES.
البته همه رمزهای بلوکی لزوماً از این دو ساختار تبعیت نمیکنند،نمیکنند، بلکه رمزهای بلوکی دیگری نیز هستند که ساختارهای منحصربهفردی دارند؛ مانند الگوریتم رمز Keeloq که رمز بلوکی مبتنی بر ساختار NLFSR (شیفترحیسترهایشیفترحیسترهای غیرخطی) است.<ref>[https://sites.google.com/site/sidechannela/ sidechannelattack<!-- عنوان تصحیح شده توسط ربات -->]</ref>
== ساختار مبتنی بر شبکه جابجایی - جانشینی ==
این ساختار از دو اصل در هم پیچیدگی و انتشار شانون تبعیت میکندمیکند. با استفاده از در هم پیچیدگی، رابطه بین بیتهایبیتهای کلید و بیتهایبیتهای متن رمزشده، غیرخطی و پیچیده میگرددمیگردد. با استفاده از انتشار، [[افزونگی]] موجود در متن اصلی پس از رمزکردن در متن رمز شده پخش میشودمیشود.
در این ساختار از شبکههای جابجایی- جانشینی بصورت متوالی در چند دور استفاده میگرددمیگردد. در هر دور، بیتهایبیتهای کلید دور با بیتهایبیتهای متن اصلی XOR میشودمیشود. همچنین S_BOXها بیتهایبیتهای یک بلوک از متن اصلی را با بیتهایبیتهای دیگر جایگزین کرده P_BOXها بیتهایبیتهای خروجی از S_BOXهای یک دور را با یکدیگر جابجا میکنند. درواقع درهمپیچیدگیدرهمپیچیدگی توسط S_BOX و انتشار توسط P_BOX انجام میگیردمیگیرد. در دور آخر جابجایی بیتی صورت نمیگیردنمیگیرد. نحوه رمزگشایی نیز ماندد رمزگذاری است با این تفاوت که در رمزگشایی نحوه اعمال زیرکلید برعکس رمزگذاری است.
اگر یک بیت از متن اصلی تغییر کند، بواسطه S_BOXها چندین بیت از خروجی تغییر خواهد نمود. سپس این تغییرات توسط P_BOXها در S_BOXهای بعدی منتشر خواهد شد. در یک سیستم رمز بلوکی خوب، P_BOXها بیتهایبیتهای مربوط به خروجی یک S_BOX را بطور کامل در S_BOXهای بعدی پراکنده میسازدمیسازد. بدین ترتیب با تغییر یک بیت از متن اصلی، احتمال این که یک بیت خاص از متن رمزشده تغییر کند، ۰٫۵ است. به این خاصیت، خاصیت بهمنی میگویندمیگویند.
از رمزهای بلوکی معروف مبتنی بر شبکه شبکه جابجایی- جانشینی میتوانمیتوان رمزهای زیر را نام برد:
{{چپچین}}
AES، ABC، ۳way، Akelarre، Anubis، ARIA، BaseKing، BEAR and LION، CRYPTON
== ساختار مبتنی بر شبکه فیستل ==
در این ساختار برای رمزگذاری، ابتدا متن اصلی به دو قسمت تقسیم میشودمیشود. سپس بر روی قسمت سمت راست ساختار، با استفاده از تابع F عملیات رمزگذاری صورت گرفته، خروجی تابع F (یا به نحوی تغییر یافته آن) با قسمت سمت چپ XOR میشودمیشود. سپس برای دور بعدی مکان دو قسمت سمت راست و چپ با یکدیگر جابجا میشوندمیشوند:
{{چپچین}}
R_(i+۱) = L_i ⊕ F(R_i,K_i)
L_(i+۱) = R_i
{{پایان چپچین}}
نحوة رمزگشایی نیز مانند نحوة رمزگذاری است با این تفاوت که در رمزگشایی نحوه اعمال زیرکلید، برعکس حالت رمزگذاری است. در این ساختار برای رمزگشایی نیز مانند حالت رمزگذاری ابتدا متن رمزشده به دو قسمت تقسیم میشود،میشود، سپس بر روی قسمت سمت راست ساختار با استفاده از تابع F، عملیات رمزگشایی صورت گرفته، خروجی تابع F (یـا بـه نحوی تغییر یافته آن) بـا قسمت سمت چپ XOR میشودمیشود. سپس برای دور بعدی مکان دو قسمت سمت راست و چپ با یکدیگر جابجا میشودمیشود:
{{چپچین}}
R_i = L_(i+۱)
L_i = R_(i+۱) ⊕ F(L_(i+۱),K_i)
{{پایان چپچین}}
تفاوت این ساختار بــا ساختار مبتنی بــر شبکه جابجایی- جانشینی این است که، تابع F در این ساختار لزوماً معکوس پذیر نیست. همچنین این ساختار برای رمزگذاری و یا رمزگشایی به دو قسمت تقسیم شده است، در حالی که در ساختار جابجایی- جانشینی برای رمزگذاری و یا رمزگشایی نیازی به تقسیمبندیتقسیمبندی متن اصلی نیست.
از رمزهای بلوکی معروف مبتنی بر شبکه فیستل میتوانمیتوان رمزهای زیر را نام برد:
{{چپچین}}
DES،Blowfish،Camellia , CAST-۱۲۸،FEAL،ICE، KASUMI،LOKI۹۷، Lucifer، MARS، MAGENTA، MISTY۱، RC۵، TEA، Triple DES، Twofish.
== حالات مختلف کاری رمزهای بلوکی ==
برای استفاده از رمزهای بلوکی، بسته به نوع نیاز از حالات مختلفی استفاده می¬کنیم. هر حالت مزایا و معایب خود را دارد. هیچ حالتی را نمیتواننمیتوان یافت که کلیه مزایا را داشته باشد، و هیچ مشکلی نداشته باشد. بر این اساس، با توجه به نوع نیاز و نیز محدودیتهاییمحدودیتهایی چون سرعت، حافظه، تعداد بیتهایبیتهای متن اصلی، اندازة برد سختافزاریسختافزاری و یا میزان هزینة مورد نیاز برای عمل رمزنگاری و یا رمزگشایی و...، از حالت بهینه استفاده میکنیممیکنیم[۶].
بر طبق استاندارد NIST، رمزهای قالبی از لحاظ کاربردی ۳ حالت دارند:
حالت گالوا/ شمارنده.
حالات «زنجیرة بلوک رمز»، «فیدبک خروجی»، و «فیدبک رمز» علاوه بر متن اصلی و [[کلید رمز]]، به یک بردار مقدار اولیه نیز بعنوان ورودی نیاز دارند. این بردار مقدار اولیه برای هر حالت اجرایی از عملیات رمزنگاری و رمزگشایی، بعنوان اولین بلوک ورودی به تابع رمز استفاده میشوندمیشوند. لزومی ندارد بردار مقدار اولیه را مخفی نگه داریم، اما این بردار در حالت کلی، نباید از طریق خود الگوریتم رمزنگاری و یا رمزگشایی، قابل تعیین و یا قابل پیشگویی باشد. البته در حالت «فیدبک خروجی» چنانچه بردار مقدار اولیه غیرقابل پیشگویی باشد، در امنیت سیستم رمز، مشکلی بوجود نمیآیدنمیآید. بنابراین برای هر قسمت از متن رمزشدة ارسالی، باید بردار مقدار اولیه یا اطلاعاتی که برای محاسبة آن مورد نیاز است، در دسترس باشد؛ زیرا ما برای هر قسمت از متن رمزشدة ارسالی برای ایجاد محرمانگی، به یک بردار مقدار اولیه یکتا نیاز داریم.
برای کلیه حالات، بلوکهابلوکها یا بندهای متن اصلی به بلوکهابلوکها یا بندهای متن رمز شده متناظر، با طول بیتی یکسان تبدیل میشوندمیشوند.
== منابع ==
|