حالت های رمزگذاری AES(قسمت دوم)

Category : دات نت | Sub Category : سی شارپ Posted on 2020-11-02 20:05:48


حالت های رمزگذاری AES(قسمت دوم)


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

رمزنگاری بلوک بلوک های داده با اندازه ثابت را پردازش می کند. معمولاً اندازه یک پیام از اندازه بلوک بزرگتر است. از این رو ، پیام طولانی به یک سری از بلوک های پیام پی در پی تقسیم می شود ، و رمزگذاری یک بار در این بلوک ها کار می کند.


حالت کتاب الکترونیکی (ECB)

این حالت ساده ترین روش برای پردازش یک سری از بلوک های پیام پی در پی ذکر شده است.

عمل
کاربر اولین بلوک متن ساده را می گیرد و آن را با کلید رمزگذاری می کند تا اولین بلوک متن رمزنگاری را تولید کند.

وی سپس بلوک دوم متن ساده را می گیرد و همین روند را با همان کلید و امثالهم دنبال می کند.

حالت ECB قطعی است ، یعنی اگر بلوک ساده P1 ، P2 ، ... ، Pm دو بار با همان کلید رمزگذاری می شوند ، بلوک های رمزنگاری خروجی یکسان خواهند بود.


در حقیقت ، برای یک کلید خاص از لحاظ فنی می توانیم یک کد رمزنگاری برای همه بلاک های متن ساده ایجاد کنیم. رمزگذاری پس از آن مستلزم جستجوی متن ساده موردنظر است و متن متن مربوطه را انتخاب می کند. بنابراین ، این عملیات شبیه به اختصاص واژگان کد در یک دفترچه کد است ، و از این رو نام رسمی - روش عملکرد کد الکترونیکی (ECB) را بدست می آورد. به شرح زیر نشان داده شده است -

 



تجزیه و تحلیل حالت ECB
در واقعیت ، داده های برنامه معمولاً دارای اطلاعات جزئی هستند که می توان حدس زد. مثلاً دامنه حقوق را می توان حدس زد. متن رمزگذاری شده توسط ECB می تواند به مهاجمان اجازه دهد متن پیام را با محاکمه و خطا حدس بزند اگر پیام ساده متن قابل پیش بینی باشد.


به عنوان مثال ، اگر یک متن رمزگذاری شده از حالت ECB برای رمزگذاری رقم حقوق شناخته شده باشد ، در نتیجه تعداد کمی از آزمایشات به یک مهاجم اجازه می دهد تا این رقم را بازیابی کند. به طور کلی ، ما مایل نیستیم که از یک رمزگذار قطعی استفاده کنیم ، و از این رو از حالت ECB نباید در اکثر برنامه ها استفاده شود.


حالت زنجیره بلوک رمزگذاری (CBC)
نحوه عملکرد CBC وابستگی به پیام را برای تولید متن متن فراهم می کند و سیستم را غیر قطعی می کند.


عمل
عملکرد حالت CBC در تصویر زیر نشان داده شده است. مراحل به شرح زیر است -


بردار Initialization n-bit (IV) را در فهرست برتر بارگذاری کنید.


XOR بلوک ساده n-bit با مقدار داده در ثبت نام برتر.


نتیجه عملیات XOR را با رمزنگاری بلوک اصلی با کلید K رمزگذاری کنید.


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


برای رمزگشایی ، داده های IV با اولین رمز رمزگذاری رمزگذاری شده XORed شده است. اولین بلوک رمزنگاری نیز برای ثبت رمز جایگزین IV برای رمزگشایی بلوک رمزنگاری بعدی ثبت شده است.



تجزیه و تحلیل حالت CBC
در حالت CBC ، بلاک plaintext فعلی به بلوک رمزگذاری متن قبلی اضافه می شود و سپس نتیجه با رمز رمزگذاری می شود. رمزگشایی فرآیند معکوس است ، که شامل رمزگشایی رمزنگاری فعلی و سپس اضافه کردن بلوک رمزنگاری قبلی به نتیجه است.


مزیت CBC نسبت به ECB این است که تغییر نتایج IV در متن های متن متفاوت برای پیام یکسان. از طرف نقطه ضعف ، خطا در انتقال به دلیل اثر زنجیر زدن به چند بلوک دیگر در طول رمزگشایی منتقل می شود.


شایان ذکر است که حالت CBC مبنای مکانیسم تأیید هویت منشأ داده را به خوبی می شناسد. بنابراین ، این مزیت برای آن برنامه هایی است که نیاز به رمزگذاری متقارن و تأیید هویت منبع اطلاعات دارند.


بازخورد رمزگذاری (CFB)
در این حالت ، برای جلوگیری از رمزگذاری بلوک ساده متن بعدی ، هر بلوک رمزگذاری مجدداً وارد فرآیند رمزگذاری می شود.


عمل
عملکرد حالت CFB در تصویر زیر نشان داده شده است. به عنوان مثال ، در سیستم فعلی ، یک بلوک پیام دارای اندازه بیت های اندازه است که 1 <s <n. حالت CFB به یک بردار اولیه (IV) به عنوان بلوک ورودی تصادفی n-bit اولیه نیاز دارد. IV نیاز به راز نیست. مراحل کار عبارتند از -


IV را در رجیستری برتر بارگذاری کنید.


با استفاده از کلید رمزگذاری شده ، کد داده را در رجیستری بالا رمزگذاری کنید.


فقط تعداد قابل توجه ترین بیت ها (بیت های چپ) خروجی فرآیند رمزگذاری را بدست آورید و XOR را با بلوک پیام ساده بیت بفرستید تا بلاک متن رمزگذاری ایجاد شود.


با جابجایی داده های موجود در سمت چپ ، بلوک رمز متن را به رجیستر تبدیل کنید و عملیات را تا زمان پردازش تمام بلوک های متن ساده ادامه دهید.


در اصل ، بلوک رمزنگاری قبلی با کلید رمزگذاری می شود ، و سپس نتیجه XORed به بلوک ساده متن فعلی انجام می شود.


مراحل مشابه برای رمزگشایی دنبال می شوند. IV قبل از تصمیم گیری در ابتدا در ابتدای رمزگشایی بارگیری می شود.


 


 



 


 


تجزیه و تحلیل حالت CFB
حالت CFB به طور قابل توجهی با حالت ECB متفاوت است ، متن متن متن مربوط به یک بلوک متن مشخص داده شده نه تنها به بلوک متن ساده و کلید بستگی دارد ، بلکه به بلوک رمزنگاری قبلی نیز بستگی دارد. به عبارت دیگر ، بلوک متن متن بستگی به پیام دارد.


CFB یک ویژگی بسیار عجیب دارد. در این حالت کاربر رمزگذاری رمزگذاری متن را تنها با استفاده از فرایند رمزنگاری رمزنگاری بلوک انجام می دهد. الگوریتم رمزگشایی رمزنگاری بلوک زیرین هرگز مورد استفاده قرار نمی گیرد.


ظاهرا ، حالت CFB در حال تبدیل رمز بلوک به نوعی رمزنگاری جریان است. از الگوریتم رمزگذاری به عنوان ژنراتور جریان اصلی برای تولید جریان اصلی استفاده می شود که در رجیستر پایین قرار دارد. این جریان اصلی با متن ساده مانند موارد رمزنگاری شده XORed شده است.


با تبدیل رمزنگاری بلوک به رمزنگاری جریان ، حالت CFB برخی خصوصیات سودمند رمزنگار جریان را در عین حفظ خصوصیات سودمند رمزنگاری بلوک فراهم می کند.


در طرف تلنگر ، خطای انتقال به دلیل تغییر بلوک ها پخش می شود.


بازخورد خروجی (OFB) حالت
این شامل تغذیه بلوک های خروجی پی در پی از رمز بلوک زیرین به آن است. این بلوک های بازخورد رشته ای از بیت ها را برای تغذیه الگوریتم رمزگذاری فراهم می کند که در حالت حالت CFB به عنوان مولد کلید جریان عمل می کند.


جریان کلیدی تولید شده XOR-ed با بلوک های متن ساده است. حالت OFB نیاز به یک IV به عنوان بلوک ورودی تصادفی n-bit اولیه دارد. IV نیاز به راز نیست.


این عملیات در تصویر زیر به تصویر کشیده شده است -




 


حالت شمارنده (CTR)
این می تواند به عنوان یک نسخه متضاد از حالت CFB بدون بازخورد در نظر گرفته شود. در این حالت ، هم فرستنده و هم گیرنده باید به یک پیشخوان قابل اعتماد دسترسی پیدا کنند ، که هر بار یک بلوک متن رمزنگاری مبادله می شود ، ارزش مشترک جدیدی را محاسبه می کند. این پیشخوان مشترک لزوماً یک مقدار پنهانی نیست ، اما چالش این است که هر دو طرف باید پیشخوان را هماهنگ نگه دارند.


عمل
رمزگذاری و رمزگشایی هر دو در حالت CTR در تصویر زیر نشان داده شده است. مراحل کار عبارتند از -


بارگذاری مقدار پیشخوان اولیه در ثبت بالا هم برای فرستنده و هم برای گیرنده یکسان است. این همان نقش IV را در حالت CFB (و CBC) ایفا می کند.


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


اولین بلوک ساده P1 و XOR را به محتویات ثبت پایین ببرید. نتیجه این C1 است. C1 را به گیرنده بفرستید و پیشخوان را به روز کنید. به روزرسانی پیشخوان جایگزین بازخورد متن متن در حالت CFB می شود.


به این روش ادامه دهید تا اینکه آخرین بلاگ plaintext رمزگذاری شود.


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



 


 


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


مانند حالت CFB ، حالت CTR شامل فرایند رمزگشایی رمزنگاری بلوک نیست. این امر به این دلیل است که حالت CTR در واقع از رمزنگاری بلوک برای تولید یک جریان اصلی استفاده می کند ، که با استفاده از عملکرد XOR رمزگذاری می شود. به عبارت دیگر ، حالت CTR همچنین یک رمز بلوک را به رمزنگاری جریان تبدیل می کند.


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


با این حال ، حالت CTR تقریباً تمام مزایای حالت CFB را دارد. علاوه بر این ، به هیچ وجه خطای انتقال را نمایش نمیدهد .


 


 


 


 

نظر بده: