دانلود مقاله استاندارد رمزنگاری پیشرفته (AES) و طرز کار آن با فرمت ورد ودر 11 صفحه قابل ویرایش
قسمتی از متن مقاله
چکیده:
رمزنگاری یکی از حوزههای جالب فناوری است که به وسیلهی مبهم کردن دادهها کار میکند و بدین ترتیب دادهها به صورت غیرقابل خواندن برای افراد ناخواسته در میآیند. استاندارد رمزنگاری پیشرفته (AES)، که همچنین با نام Rijndael (نام اصلی الگوریتم AES) نیز شناخته میشود، در واقع شرح فنی رمزنگاری دادههای الکترونیکی است. رمزنگاری فرآیندی از کدگذاری پیامها یا اطلاعات حساس و مهم به صورتی است که تنها افراد قانونی[1] توانایی خواندن این دادهها را داشته باشند. رمزنگاری به خودی خود مانع از شنود نمیشود، ولی اطلاعات را برای فرد شنودکننده مبهم و غیرقابل دسترس میسازد. رمزنگاری به عبارت سادهتر به معنی تولید یک متن رمز شده است که میتواند تنها توسط افرادی خوانده شود که کلید رمزگشایی آن را داشته باشند. یکی از چنین روشهای رمزنگاری که برای محافظت از دادههای آنلاین در برابر هر گونه تهدیدات مخرب مورد استفاده قرار میگیرد، الگوریتم استاندارد رمزنگاری پیشرفته (AES) است. به طور کلی رمزنگاری از روشهای رمزنگاری با کلید متقارن یا روشهای رمزنگاری با کلید عمومی استفاده میکند. این روشها نیز در ادامه مورد بحث قرار میگیرند.
کلمات کلیدی:Rijndael، رمز شده، رمزگشایی، رمزنگاری، داده، کدگذاری[2]، قانونی، مخرب، کلید متقارن، کلید عمومی.
1. مقدمه
AES شامل سه بلاک[3] رمز است که عبارتند از AES-128، AES-192، و AES-256. هر یک از این سه رمز، دادهها را به صورت بلاکهای 128 بیتی و به ترتیب با استفاده از کلیدهای رمزنگاری 128، 192 و 256 بیتی رمزنگاری و رمزگشایی میکنند. رمزهای متقارن یا کلید-مخفی از یک کلید یکسان هم برای رمزنگاری و هم برای رمزگشایی استفاده میکنند، بنابراین هم فرستنده و هم گیرنده باید از کلید مخفی یکسان اطلاع داشته و از آن استفاده کنند. هر سه طول کلید برای حفاظت از اطلاعات کافی میباشند ولی برای محافظت از اطلاعاتی که در سطح "مخفی" و "بسیار مخفی" طبقهبندی میشوند، کلیدهای 192 یا 256 بیتی موردنیاز هستند.
1-1. کلید متقارن یا مخفی چیست؟
سیستمهای رمزنگاری کلید متقارن از یک کلید یکسان برای رمزنگاری متن آشکار و رمزگشایی متن رمزی استفاده میکنند. سیستمهای کلید متقارن از مزیت ساده و سریع بودن برخوردار هستند. با این حال، عامل مهمی که باید در نظر گرفته شود، این است که طرفین انتقال باید کلید را به صورت امنی مبادله نمایند.
شکل 1. روش کلید مخفی
شکل بالا روش کلید مخفی یا متقارن را نشان میدهد.
1-2. کلید عمومی چیست؟
در مقایسه با کلید متقارن، سیستمهای رمزنگاری کلید عمومی از کلیدهای مختلفی برای رمزنگاری متن آشکار و رمزگشایی متن رمزی استفاده میکنند.
کلید عمومی از 2 کلید متفاوت – یک کلید عمومی برای رمزنگاری و یک کلید خصوصی برای رمزگشایی- استفاده میکند. با استفاده از این سیستم رمزنگاری، کلید عمومی میتواند به صورت غیر-امنی توزیع شود. کلی خصوصی هرگز منتقل نمیشود و تنها در سمت دریافتکنندهی پیام قرار دارد. از آنجایی که کلیدها متفاوت هستند، رمزگشایی متن رمزی به گونهای در نظر گرفته میشود که از نظر محاسباتی بدون کلید خصوصی ممکن نباشد.
شکل 2. روش کلید عمومی
AES مبتنی بر یک اصل طراحی است که با نام شبکهی جایگزینی- جایگشت شناخته میشود و ترکیبی از جایگزینی و جایگشت میباشد، و از نظر نرمافزاری و سختافزاری سریع است. بر خلاف روش قبلی که شرح داده شد یعنی DES، الگوریتم AES از یک شبکهی فایستل[4] استفاده نمیکند. AES نوعی از Rijndael است که یک اندازهی بلاکی ثابت برابر با 128 بیت، و اندازهی کلیدی برابر با 128، 192، یا 256 بیت دارد.
AES بر روی یک ماتریس 4 4 بر حسب بایت عمل میکند که حالت نامیده شده و به صورت ستونی در نظر گرفته میشود[5]، اگر چه برخی از انواع Rijndael اندازهی بلاک بزرگتر و ستونهای بیشتری در ماتریس حالت دارند. اکثر محاسبات AES در یک میدان محدود مخصوصی[6] انجام میشوند.
به عنوان مثال، اگر 16 بایت به صورت ، ، ...، وجود داشته باشند، آنگاه این بایتها به صورت ماتریس زیر نمایش داده میشوند:
اندازهی کلید استفاده شده برای یک رمز AES، تعداد تکرارهای دورهای تبدیل را مشخص میکند، که برای تبدیل فایل ورودی (با نام متن آشکار) به فایل خروجی نهایی (با نام متن رمز شده) اعمال میشوند. تعداد چرخههای تکرار به صورت زیر هستند:
هر دور شامل مراحل پردازش متعددی است که هر یک شامل چهار مرحلهی مشابه ولی در عین حال متفاوت هستند، که یکی از این مراحل به خود کلید رمزنگاری بستگی دارد. مجموعهای از دورهای معکوس برای تبدیل متن رمز شده به متن آشکار اصلی با استفاده از همان کلید رمزنگاری به کار گرفته میشوند.
طرح کلی ساختار AES در شکل زیر نشان داده شده است:
شکل 3. ساختار AES
2. فرآیند رمزنگاری
رمزنگاری دادهها با استفاده از AES شامل هفت دور است که به بلاکهای رمز یعنی AES-128، AES-192 و AES-256 بستگی دارند. یک دور معمولی در رمزنگاری AES شامل 4 زیرفرآیند[7] است. فرآیند اولین دور در شکل زیر نشان داده شده است:
شکل 4. زیرفرآیندهای دور 1
شکل بالا زیرفرآیندهای موجود در دورهای میانی را نشان میدهد، دور اولیه و دور نهایی شامل فرآیندهای اندکی متفاوت هستند.
AES به صورت 4 مرحلهی زیر کار میکند:
2-1. اضافه کردن کلید دور (AddRoundKey)
3-1. جایگزینی بایتها (SubBytes)
3-2. جابهجایی سطرها (ShiftRows)
3-3. در هم ریختن ستونها (MixColumns)
3-4. اضافه کردن کلید دور (AddRoundKey)
دیدگاه خود را ثبت کنید