بخشی از مقاله
چکیده - در این مقاله با استفاده از ادغام تابع ماتریس جانشینی با مد عملیاتی حالت شمارنده ، مد عملیاتی جدیدی با عنوان ماتریس جانشینی بلوک رمز2 ارائه شده است که می توان آن را حالت ارتقا یافته مد عملیاتی حالت شمارنده دانست. در این مد پیشنهادی سعی شده است تا علاوه بر رفع مشکلات مد عملیاتی حالت شمارنده ، ساختار این مد عملیاتی تا حد امکان تغییر نیابد ، چرا که بتوان از این الگوریتم نوین با کمترین هزینه به صورت عملی و کاربردی استفاده کرد. در ادامه به بررسی و مقایسه هر یک از مد های عملیاتی بلوک رمز استاندارد با مد عملیاتی نوین پرداخته می شود و در انتها نتیجه می گیریم که مد عملیاتی ارائه شده در برابر حملات Chosen Plaintext و Keystream Reuse مقاوم بوده و همچنین ویژگی های منحصر به فرد مد عملیاتی حالت شمارنده را نیز حفظ کرده است.
-1 کلیات تحقیق
-1-1 مقدمه - ضرورت انجام پژوهش
هدف اصلی در واحد های رمزنگاری و مد های عملیاتی، تامین محرمانگی مورد نیاز شبکه های کامپیوتری است. به گونه ای که اطلاعات بتواند به آسانی بر روی محیط نا امن شبکه منتقل شود و در ضمن انتقال آن، افراد و موجودیت های غیر مجاز نتوانند به اصل اطلاعات مذکور دستیابی پیدا کنند. سیستم های رمزنگاری علاوه بر تامین محرمانگی باید از لحاظ کارایی به گونه ای طراحی شده باشند تا سربار زیادی را به شبکه های کامپیوتری وارد نسازند. در این مقاله مد عملیاتی جدیدی به عنوان بخشی از سیستم های رمزنگاری ارائه شده است که در ضمن تامین محرمانگی و نیازهای سیستم های رمزنگاری، سربار قابل توجهی نیز به شبکه وارد نمی سازد.
در مد عملیاتی پیشنهادی با نام CBSM-2 از تابع ماتریس جانشینی به عنوان محور اصلی این مد استفاده می شود. هدف از طراحی این تابع این است که به ازای دریافت ورودی، بتوان تعدادی مشخص از اعداد به عنوان خروجی تولید کرد که این اعداد همگی در بازه ای مشخص قرار بگیرند. در نهایت از مقادیر خروجی این تابع مجموعه ای از اعداد به دست خواهند آمد که می توان آن ها را به عنوان درایه های یک ماتریس - ماتریس جانشینی - استفاده کرد. مهم ترین نکته قابل توجه در تابع ماتریس جانشینی، برگشت ناپذیر بودن این تابع است. به این معنا که هزینه ی دستیابی به اطلاعات بیش از ارزش آن اطلاعات باشد.
-2-1 مروری بر سوابق
-1-2-1 مد عملیاتی زنجیر سازی بلوک رمز
در این مد عملیاتی از خروجی هر واحد رمزنگاری به عنوان بازخورد در ورودی بلوک بعدی استفاده می شود. تحقیقات نشان داده اند که مد های عملیاتی دارای بازخورد موجب افزایش امنیت متون رمز شده در برابر حملات می شوند.[1] در شکل 1 نحوه رمزنگاری این مد عملیاتی نشان داده شده است.[2,3,4] جهت رمزگشایی این مد عملیاتی در مرحله اول، بلوک رمز اول به همراه کلید وارد واحد رمزگشایی شده و سپس با بردار اولیه XOR می شود. در مراحل بعدی، بلوک رمز یک مرحله قبل، جایگزین بردار اولیه می شود - شکل. - 2
-2-2-1 مد عملیاتی حالت شمارنده :
مد عملیاتی Counter Mode یا به اختصار CTR از یک شمارنده برای منحصر به فرد کردن کلید استفاده می کند. در این روش حاصل جمع بردار اولیه و یک مقدار صحیح، با متن داده اصلی XOR می شود. بدین ترتیب هر بلوک بدون وابستگی به بلوک های قبلی رمز شده که امکان دسترسی تصادفی - دسترسی مستقیم به یک بلوک رمز بدون نیاز به بلوک های قبلی - را فراهم می کند. مد عملیاتی حالت شمارنده و مد عملیاتی زنجیره سازی بلوک رمز به دلیل مزایای نسبتا خوب به عنوان کارآمد ترین مد های عملیاتی استاندارد شناخته می شوند.[2,3,4,5] در مرحله ی رمزگشایی، متن رمز شده جایگزین متن داده شده و سایر موارد عینا تکرار می شوند. شکل 3 و 4 مراحل رمزنگاری و رمزگشایی این مد عملیاتی را نشان می دهند.
-3-2-1 تابع ماتریس جانشینی
در تابع ماتریس جانشینی از یک کلید و یک بردار اولیه - IV - به عنوان ورودی های این تابع استفاده می شود و خروجی حاصل از این تابع، ماتریس جانشینی - به اختصار - SM نام دارد. در طراحی این تابع برای تولید کلید های متفاوت در هر مرحله، از یک شیفت رجیستر حلقوی استفاده می شود .[6]در این پیاده سازی از الگوریتم Rijndael استفاده می شود که امروزه به عنوان الگوریتم پیشرفته رمزنگاری شناخته شده و مورد استفاده ی وسیعی قرار گرفته است. [7] تابع ماتریس جانشینی، مقدار شیفت رجیستر مورد نظر که باید حداقل به طول 896 بیت باشد - با توجه به این که واحد BCE انتخاب شده 128 بیتی می باشد - را گرفته و این رشته بیت را از چپ به راست به 128 رشته ی هفت بیتی افراز می کند. رشته های هفت بیتی بدست آمده با نماد R i نشان داده می شوند که این رشته ها از R 0 شروع شده و تا R 127 ادامه می یابند.[6]
-4-2-1 ماتریس جانشینی بلوک رمز 1
در این مد عملیاتی در اولین مرحله، بردار IV و Key 1 وارد تابع SM می شوند و خروجی مورد نظر که ماتریس SM است تولید می شود. پس از آن ماتریس SM به عنوان کلید واحد BCE به همراه متن داده ، بلوک متن رمز شده ی مرحله اول را تولید می کند. برای تولید بازخورد مراحل بعدی به ازای مرحله i که 1 < i، از Ciphertext تولید شده ی مرحله ی قبل آن به عنوان جایگزین بردار IV استفاده می شود. همچون مرحله ی ابتدایی، ماتریس SM به عنوان کلید نهایی واحد BCE استفاده می شود.
شمای کلی مد عملیاتی CBSM-1 در شکل 5 نشان داده شده است :
مراحل رمزنگاری در مد عملیاتی CBSM-1
در فرآیند رمزگشایی CBSM-1 در اولین مرحله، بردار IV و Key 1 وارد تابع SM می شوند و خروجی مورد نظر به عنوان کلید نهایی واحد رمزگشایی استفاده شده و Ciphertext مرحله ی ابتدایی را به متن داده تبدیل می کند. در مراحل بعدی، ابتدا Ciphertext مرحله ی قبل به همراه Key i وارد تابع SM شده و سپس خروجی تابع SM به عنوان کلید واحد BCE ، Ciphertext مورد نظر را رمزگشایی می کند. شمای کلی رمزگشایی در مرحله i که 1 < i ، به صورت شکل 6 است :
مراحل رمزگشایی در مد عملیاتی CBSM-1
ثابت شد که مهم ترین مزیت این مد عملیاتی مصون بودن در برابر حمله Chosen plaintext است.[6] دو چالش CBSM-1 که با توجه به ساختار کلی CBC ، عدم امکان موازی سازی رمزنگاری و دسترسی مستقیم به بلوک های داده است. بروز دو چالش ذکر شده بالا در CBSM-1 باعث شد تا در این مقاله مد عملیاتی جدیدی به نام CBSM-2 ارائه کنیم تا بتواند ضمن حفظ مزیت های CBSM-1، معایب آن و همچنین معایب مد های عملیاتی قبلی را تا حد امکان پوشش دهد.