سلام

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

الگوریتم رمزنگاری متقارن محبوب تر و بسیار گسترده تر که احتمالاً امروزه با آن روبرو می شوید ، استاندارد رمزگذاری پیشرفته (AES) است. قبلا تو ایـــن لینک کمی توضیح دادم و حداقل شش برابر سریعتر از DES سه گانه یافت می شود.

جایگزینی برای DES لازم بود زیرا اندازه کلیدی آن خیلی کوچک بود. با افزایش قدرت محاسباتی ، در برابر حمله جستجوی کلیدی کلیدی آسیب پذیر تلقی می شد. Triple DES برای غلبه بر این اشکال طراحی شده بود اما آرام یافت.

ویژگی های AES به شرح زیر است -

رمزگذار بلوک متقارن کلید متقارن
داده های 128 بیتی ، کلیدهای 128/192/256 بیتی
قوی تر و سریعتر از Triple-DES
مشخصات کامل و جزئیات طراحی را ارائه دهید
نرم افزارهای قابل اجرا در C و Java

AES به جای رمزگذاری فیستل ، یک تکرار است. این مبتنی بر "شبکه جایگزینی " است. این مجموعه شامل یک سری عملیات مرتبط است که برخی از آنها شامل جایگزین کردن ورودی ها با خروجی های خاص (تعویض) و برخی دیگر شامل جابجایی بیت های اطراف (جابجایی) است.

جالب است که AES تمام محاسبات خود را بر روی بایت انجام می دهد تا بیت. از این رو ، AES با 128 بیت بلوک ساده به عنوان 16 بایت رفتار می کند. این 16 بایت در چهار ستون و چهار ردیف برای پردازش به عنوان ماتریس مرتب شده اند


-

بر خلاف DES ، تعداد دور در AES متغیر است و بستگی به طول کلید دارد. AES از 10 دور برای کلیدهای 128 بیتی ، 12 دور برای کلیدهای 192 بیتی و 14 دور برای کلیدهای 256 بیتی استفاده می کند. هر یک از این دورها از یک کلید گرد 128 بیتی متفاوت استفاده می کنند که از کلید اصلی AES محاسبه می شود.

طرح کلی ساختار AES در تصویر زیر آورده شده است -

 

 

 

 

فرآیند رمزگذاری
در اینجا ، به شرح دور معمولی رمزگذاری AES محدود می کنیم. هر دور از چهار فرایند فرعی تشکیل شده است. روند دور اول در زیر نشان داده شده است -

 

 

 

تعویض بایت (SubBytes)
16 بایت ورودی با جستجو در یک جدول ثابت (جعبه S) ارائه شده در طراحی جایگزین می شوند. نتیجه در یک ماتریس از چهار ردیف و چهار ستون است.

شیفت ها
هر یک از چهار ردیف ماتریس به سمت چپ منتقل می شود. هر ورودی که "بیاد پایین" در سمت راست سطر دوباره وارد می شود. شیفت به شرح زیر انجام می شود -

ردیف اول جابجا نشده است.

ردیف دوم یک موقعیت (بایت) به سمت چپ منتقل می شود.

ردیف سوم دو موقعیت به سمت چپ منتقل می شود.

ردیف چهارم سه موقعیت را به سمت چپ منتقل می کند.

نتیجه یک ماتریس جدید است که از همان 16 بایت تشکیل شده اما با احترام به یکدیگر تغییر یافته است.

 

MixColumns
هر ستون از چهار بایت اکنون با استفاده از یک عملکرد ویژه ریاضی تبدیل شده است. این عملکرد چهار بایت یک ستون را وارد می کند و چهار بایت کاملاً جدید را جایگزین ستون اصلی می کند. نتیجه یک ماتریس جدید دیگر است که از 16 بایت جدید تشکیل شده است. لازم به ذکر است که این مرحله در آخرین مرحله انجام نمی شود.

Addroundkey
16 بایت ماتریس اکنون 128 بیت در نظر گرفته شده است و با 128 بیتی از کلید دور XORed شده است. اگر این آخرین دور باشد ، خروجی متن رمزگذاری شده است. در غیر این صورت ، 128 بیت حاصل به عنوان 16 بایت تعبیر می شود و دور مشابه دیگری را شروع می کنیم.

 

فرآیند رمزگشایی
روند رمزگشایی رمزنگاری AES مشابه روند رمزگذاری به ترتیب معکوس است. هر دور شامل چهار فرآیند انجام شده به ترتیب معکوس است -

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

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

با این حال ، فقط در مورد DES ، امنیت AES تنها در صورت اجرای صحیح و مدیریت کلید خوب استفاده می شود.

پایان قسمت اول