الگوریتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES – 3DES – AES

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

الگوریتم های رمزنگاری قالبی متقارن

در این بخش مقاله بررسی الگوریتم های رمزنگاری قالبی متقارن را آماده کردیم که بر اساس کتاب اصول امنیت شبکه های کامپیوتری نوشته استالینگز می باشد. در ادامه با ما همراه باشید تا توضیحات مفصلی در رابطه الگوریتم های DES – 3DES – AES ارائه کنیم.

الگوریتم های رمزنگاری قالبی متقارن

معمول ترین الگوریتم های بکار گرفته شده برای رمزنگاری متقارن، رمزهای قالبی هستند. یک رمز قالبی، متن ساده ورودی را در قالب بلوک هائی با اندازه ثابت پردازش کرده و یک بلوک متن رمز شده با همان اندازه را، برای هر بلوک متن ساده تولید می کند. در این بخش سه نوع از مهم ترین رمزهای قالبی متقارن را مورد بررسی قرار می دهیم که شامل موارد زیر می باشد.

  • الگوریتم استاندارد رمزنگاری دیتا (DES)
  • الگوریتم DES سه گانه (۳DES)
  • الگوریتم استاندارد رمزنگاری پیشرفته (AES)

استاندارد رمزنگاری دیتا (Data Encryption Standard – DES)

پراستفاده ترین روش رمزنگاری، بر مبنای استاندارد رمزنگاری دیتا (DES) قرار دارد که در سال ۱۹۷۷ توسط دفتر ملی استانداردها در آمریکا که امروز مؤسسه ملی استانداردها و تکنولوژی (NIST) خوانده می شود، تحت عنوان استاندارد فدرال پردازش اطلاعات ۴۶ (FIP PUB46) پذیرفته شد. از خود الگوریتم، با نام الگوریتم رمزنگاری دیتا (DEA) یاد می شود.

توصیف الگوریتم

متن ساده دارای طول ۶۴ بیت بوده و طول کلید ۵۶ بیت است، متون ساده طویل تر در بلوک های ۶۴ بیتی مورد پردازش قرار می گیرند. ساختار الگوریتم DES تقریبا همان ساختار شبکه Feistel با کمی تغییرات است. ۱۶ دور پردازش وجود دارد؛ از کلید اولیه ۵۴ بیتی، شانزده زیر کلید تولید می شود که هر کدام در یک دور پردازش مورد استفاده قرار می گیرند. نحوه رمزگشایی با الگوریتم DES ضرورتا شبیه نحوه رمزنگاری با آن است. قاعده چنین است: متن رمز شده را به عنوان ورودی الگوریتم DES بکار برده ولی از زیر کلیدها با نظم معکوس استفاده کنید. یعنی در اولین تکرار کلید K16 در دومین تکرار کلید K15، و بهمین نحو جلو رفته و در شانزدهمین و آخرین تکرار کلید K1 را بکار برید.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۲: روند عملکرد الگوریتم DES

توانایی الگوریتم DES

نگرانی نسبت به توانائی روش رمزنگاری DES در دو مقوله جدا قرار دارد: نگرانی در مورد خود الگوریتم و نگرانی در مورد استفاده از یک کلید ۵۴ بیتی، اولین نگرانی، در رابطه با امکان شکستن رمز با استفاده از بکارگیری مشخصه های الگوریتم DES است.

در طول سالیان گذشته، تلاش های بسیاری برای کشف و سوء استفاده از نقاط ضعف الگوریتم DES انجام شده و به همین مناسبت DES الگوریتمی است که بیش از همه مورد مطالعه قرار گرفته است. با وجود تلاش های فراوان، تا کنون (تا سال ۲۰۰۷) کسی نتوانسته است که یک ضعف حیاتی در DES پیدا کند.

نگرانی جدی تر مربوط به طول کلید است؛ با کلیدی با طول ۵۶ بیت، تعداد ۲۵۶ کلید ممکن وجود دارد که تقریبا ۷٫۲ * ۱۰۱۶ کلید است. بنابراین در صورت ظاهر، یک حمله همه جانبه غیر عملی خواهد بود. با فرض اینکه بطور متوسط نصف فضای کلید را بایستی برای یافتن آن جستجو کرد، اگر قرار باشد یک ماشین تنها که در هر میکروثانیه یک فقره رمزگشایی DES را انجام می دهد بکار گرفته شود، بیش از هزار سال طول خواهد کشید تا رمز شکسته شود (جدول زیر را بررسی نمائید).

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۳: ساختار الگوریتم DES

اما فرض یک رمزنگاری در هر میکروثانیه بیش از حد، محافظه کارانه است. بالاخره و بطور قطعی در ماه جولای سال ۱۹۹۸ اثبات گردید که DES نا امن است. دلیل امر این بود که (Electronic Frontier Foundation – EFF) اعلام کرد که رمز یک DES را با استفاده از یک ماشین مخصوص DES cracker که با هزینه کمتر از ۲۵۰٫۰۰۰ دلار ساخته شده است، شکسته است که این حمله کمتر از سه روز طول کشیده بود.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۴: کرک پسورد

توصیف مفصلی از ماشین مزبور توسط EFF منتشر شد و تا دیگران نیز بتوانند رمز شکن خود را بسازند [EFF98] و البته با توجه به اینکه با افزایش سرعت، قیمت سخت افزارها پائین می آید، DES بطور ضمنی بی ارزش خواهد شد. و مهم است توجه شود که در حمله جستجوی کلید، نکات مهم تری نیز سوای جستجوی همه کلیدها وجود دارد. به غیر از موردی که واقعا یک متن ساده در دسترس باشد، یک تحلیل گر بایستی یک متن ساده را به عنوان متن ساده تشخیص دهد. اگر پیام صرفا یک متن ساده به زبان انگلیسی باشد در این صورت نتیجه به سهولت استخراج خواهد شد، اگرچه وظیفه شناخت زبان انگیسی را باید خودکار نمود.

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

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۵

یک نکته نهائی: اگر تنها فرم ممکن حمله نسبت به یک الگوریتم رمزنگاری، حمله همه جانبه باشد، آنگاه روش مقابله با آن کاملا روشن بوده و آن استفاده از کلیدهای طولانی تر است. برای این که ایده ای نسبت به اندازه کلید مورد نیاز پیدا کنیم، اجازه دهید تا از رمز شکن EFF برای تخمین امر استفاده نمائیم. EFF cracker یک نمونه منحصر بفرد بوده و ما می توانیم فرض کنیم که با تکنولوژی امروز، ساخت یک ماشین سریع تر مقرون بصرفه تر است. اگر فرض کنیم که یک رمز شکن بتواند در هر میکروثانیه یک میلیون رمز گشایی انجام دهد، که نرخی است که در جدول بالا از آن استفاده شده است، آنگاه تقریبا ۱۰ ساعت طول خواهد کشید تا یک رمز DES شکسته شود. سرعت این رمز شکنی تقریبا ۷ برابر بیشتر از نتیجه EFF است. با استفاده از این نرخ، نمودار زیر نشان می دهد که چقدر طول خواهد کشید تا الگوریتمی با فرم DES را بر حسب تابعی از اندازه کلید شکست.

به عنوان مثال برای یک کلید ۱۲۸ بیتی، که در الگوریتم های فعلی (تا سال ۲۰۰۷) مرسوم است، بیش از ۱۰ سال طول خواهد کشید تا بتوان رمزی را، با استفاده از رمز شکن EFF شکست. حتی اگر بتوان سرعت رمزشکن را با فاکتور یک تریلیون (۱۰۱۲) افزایش داد، بازهم یک میلیون سال طول خواهد کشید تا رمز شکسته شود. بنابراین یک کلید ۱۲۸ بیتی برای استفاده در الگوریتمی که در مقابل حمله همه جانبه شکست ناپذیر باشد، یک انتخاب تضمین شده است.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۶: زمان شکستن یک رمز ( با فرض ۱۰۶ رمزگشائی در هر میکروثانیه)

الگوریتم DES سه گانه (Triple DES – 3DES)

الگوریتم DES سه گانه (Triple DES – 3DES) اولین بار در سال ۱۹۸۵ برای استفاده در کاربردهای مالی، با نام X9.17 در استانداردهای ANSI ثبت گردید. روش ۳DES با انتشار FIPS PUB 46.3 در سال ۱۹۹۹ به عنوان بخشی از استاندارد رمزنگاری دیتا (DES) بکار گرفته شد. الگوریتم ۳DES از سه کلید و سه بار اجرای الگوریتم DES استفاده می کند. تابع از یک دنباله رمزنگاری – رمزگشائی – رمزنگاری (EDE) تبعیت می کند (شکل ۷ – بخش الف):

C = E(K3 , D(K3 , E(K1 , P)))

که در آن

متن رمز شده C = (ciphertext)

متن ساده P = (plaintext)

رمزنگاری X با استفاده از کلید E [K,X] = K

رمزگشائی Y با استفاده از کلید D [K,X] = K

رمزگشائی بسادگی همان عملیات قبل است که ترتیب کلیدها در آن عوض شده است. (شکل ۷ – بخش ب):

P = D(K1 , E(K2  , D(K3 , C)))

از نظر رمزنگاری، هیچ ویژگی خاصی در استفاده از رمز گشائی مرحله دوم رمزنگاری ۳DES وجود ندارد. تنها حسن آن این است که به کاربران ۳DES اجازه میدهد تا داده هائی را که توسط فرم قدیمی DES رمزنگاری شده بودند، رمز گشائی نمایند:

C = E(K1 , D(K1 , E(K1 , P))) = E[K , P]

با سه کلید متمایز، ۳DES دارای کلیدی با طول مؤثر ۱۶۸ بیت است. FIPS 46.3 همچنین استفاده از دو کلید، K1 = K3 را اجازه میدهد که در این مورد طول کلید ۱۱۲ بیت خواهد بود. FIPS 46.3 شامل سه دستورالعمل زیر برای ۳DES است:

  • الگوریتم ۳DES روش رمزنگاری متقارن منتخب و تأئید شده توسط FIPS است.
  • الگوریتم DES اولیه که از یک کلید ۵۶ بیتی استفاده می کند و تنها در استاندارد سیستم هائی که وارث آن هستیم مجاز می باشد. ساختار های جدید بایستی از ۳DES حمایت نمایند.
  • توصیه می شود که سازمان های دولتی، سیستم های موروثی DES را با ۳DES تعویض نمایند.
  • پیش بینی می شود که ۳DES و AES در کنار هم، به عنوان الگوریتم های پذیرفته شده FIPS همزیستی داشته و در طول زمان بتدریج ۳DES حذف و AES استاندارد غالب شود.

به سهولت می توان دریافت که ۳DES یک الگوریتم نیرومند است. چون الگوریتم رمزنگاری بستر آن DEA (Data Encryption Algorithm) است، ۳DES می تواند در مقابل تلاش های مربوط به کشف رمز، همان ادعاهای DEA را داشته باشد. علاوه بر آن با یک کلید ۱۶۸ بیتی، حمله همه جانبه به آن عملا غیرممکن است. بالاخره و در نهایت قرار است AES جایگزین ۳DES شود، ولی این تحول سال ها طول خواهد کشید (این نوشته برای ۲۰۰۷ است). NIST پیش بینی می کند که ۳DES برای آینده ای قابل پیش بینی، الگوریتم موفقی باشد.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۷: ساختار کلی Triple DES یا ۳DES

استاندارد رمزنگاری پیشرفته (Advanced Encryption Standard – AES)

الگوریتم ۳DES دارای دو جاذبه است که استفاده گسترده از آن در چند سال آینده را تضمین می کند (این نوشته برای ۲۰۰۷ است). اولا با طول کلید ۱۶۸ بیتی خود، بر آسیب پذیری های ناشی از حمله همه جانبه در DEA غلبه می کند. ثانیا الگوریتم رمزنگاری ۳DES همان DEA است. این الگوریتم بیش از هر الگوریتم رمزنگاری دیگر در طول زمان مورد رسیدگی دقیق قرار گرفته و هیچ نوع آسیب پذیری، بجز مورد حمله همه جانبه، در آن مشاهده نشده است. در نتیجه در مورد مقاومت ۳DES در مقابل کشف رمز اعتماد زیادی وجود دارد. از این رو اگر فقط مسئله امنیت مورد توجه بود، ۳DES الگوریتم انتخابی مناسبی برای رمزنگاری در طول دهه های آینده باقی می ماند.

مشکل اصلی ۳DES این است که این الگوریتم از نظر نرم افزاری لخت است. DEA اولیه برای تجهیزات سخت افزاری سالهای میانه ۱۹۷۰ طراحی شده بود و کد نرم افزاری بهره وری را تولید نمی کند. ۳DES که سه برابر DES عملیات اجرائی دارد، حتما کندتر خواهد بود. مشکل دوم این است که DEA و ۳DES هر دو از یک بلوک دیتا با اندازه ۶۴ بیت استفاده می کنند، به دلایلی که هم مربوط به بهره وری و هم مربوط به مسائل امنیتی می شود، استفاده از بلوکی با اندازه بزرگتر مطلوب تر است.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۸: رمزگذاری و رمزگشائی

بعلت این مشکلات، ۳DES در دراز مدت کاندیدای معقولی نیست. برای جانشینی آن با انتخاب بهتری، NIST در سال ۱۹۹۷، فراخوانی برای طراحی یک استاندارد رمزنگاری پیشرفته (AES) منتشر کرد که بایستی دارای توان امنیتی برابر و یا بهتر از ۳DES و بهره وری قابل ملاحظه ای می بود. علاوه بر بیان نیازهای کلی، NIST مشخص نمود که AES بایستی یک رمز قالبی متقارن با طول بلوک ۱۲۸ بیت بوده و از کلیدهائی با طول ۱۲۸، ۱۹۲، و ۲۵۶ بیت پشتیبانی نماید. نکات مورد ارزیابی شامل امنیت، بهره وری محاسباتی، نیازهای مربوط به حافظه، تناسب سخت افزار و نرم افزار و قابلیت انعطاف اعلام گردید.

در اولین دور ارزیابی، ۱۵ الگوریتم از بین پیشنهادها انتخاب شدند. در دور بعدی، ۵ الگوریتم پذیرفته شدند. بالاخره NIST ارزیابی خود را به پایان رسانده و یک استاندارد نهائی (FIPS PUB 197) را در نوامبر سال ۲۰۰۱ منتشر نمود. Rijndael به عنوان الگوریتم انتخابی AES پذیرفته شد. در پژوهشگری که Rijndael را تهیه و ارائه کردند هر دو رمزنگارانی از بلژیک به نام های Dr. Joan Daemen و Dr. Vincent Rijmen بودند.

بررسی الگوریتم

الگوریتم AES از یک بلوک دیتا با طول ۱۲۸ بیت و یک کلید که می تواند ۱۲۸، ۱۹۲، و یا ۲۵۶ بیت باشد استفاده می کند. در این بررسی طول کلید را ۱۲۸ بیت فرض می کنیم که احتمالا یکی از پر استفاده ترین آنها خواهد بود. شکل ۹ که در زیر آمده است، ساختار کلی AES را نشان می دهد که ورودی الگوریتم های رمزنگاری و رمزگشائی یک بلوک منفرد ۱۲۸ بیتی است. در ۱۹۷ FIPS PUB این بلوک به صورت یک ماتریس مربعی از بایت ها تعریف شده است. این بلوک در رشته state کپی شده که در هر مرحله رمزنگاری یا رمزگشائی تعدیل می شود. بعد از آخرین مرحله، state در ماتریس خروجی کپی می شود. بطریق مشابه، کلید ۱۲۸ بیتی به صورت یک ماتریس مربعی از بایت ها تعریف می شود. این کلید سپس بر اساس برنامه کلید (key schedule) گسترش می یابد. هر کلمه شامل ۴ بایت بوده و کل برنامه کلید، ۴۴ کلمه برای یک کلید ۱۲۸ بیتی را تولید می کند.

نظم بایت ها در یک ماتریس، ستونی است، بنابراین برای مثال چهار بایت اول ورودی متن ساده ۱۲۸ بیتی به رمزنگار، اولین ستون ماتریس ورودی، چهار بایت دوم ستون دوم و غیره را تشکیل می دهد. بطریق مشابه، اولین ۴ بایت کلید گسترش یافته که یک کلمه را تشکیل می دهد، اولین ستون ماتریس w را می سازد.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۹: رمزنگاری و رمزگشائی AES

موارد ذیل، نکاتی در مورد الگوریتم AES را روشن می سازد:
  1. یکی از خصوصیات قابل توجه این ساختار این است که یک ساختار Feistel نیست. بخاطر آورید که در ساختار کلاسیک Feistel یک نیمه از بلوک دیتا برای تغییر نیمه دیگر بکار میرفت و آنگاه دو نیمه جای خود را عوض می کردند. روش AES از ساختار Feistel استفاده نکرده بلکه در هر دور، کل بلوک دیتا را بصورت موازی بکار گرفته و جایگزینی و جابجائی را در آن انجام می دهد.
  2. کلیدی که در ورودی فراهم میشود، بصورت یک رشته ۴۴ تائی از کلمات ۳۲ بیتی [i]w گسترش می یابد. در هر دور ۴ کلمه مجزا (۱۲۸ بیت) بعنوان کلید دور مورد استفاده قرار می گیرد.
  3. از چهار عمل مختلف که یکی از آنها جابجائی و سه تای دیگر جایگزینی است استفاده می شود:
  • بایت ها جابجا شوند: از یک جدول که S-box نامیده می شود استفاده کرده تا بایت به بایت بلوک را جابجا کند.
  • سطرها شیفت داده شوند: یک جابجائی ساده که ردیف به ردیف انجام می شود.
  • ستون ها مخلوط شوند: یک جابجائی که هر بایت یک ستون را بصورت تابعی از تمام بایتهای همان ستون تغییر می دهد.
  • کلید دور اضافه شود: یک XOR ساده که بیتهای بلوک فعلی را با بخشی از کلید گسترش یافته XOR نماید.
  1. ساختار کاملا ساده است، هم برای رمزنگاری و هم برای رمزگشائی، رمز با یک مرحله اضافه کردن کلید دور (Add Round Key) شروع شده و بدنبال آن با نه دور دیگر که هر کدام شامل چهار مرحله است ادامه یافته و در انتها با سه مرحله در دور دهم خاتمه می یابد. شکل ۱۰ که در زیر آمده است، سازمان یک دور رمزنگاری کامل را نشان میدهد.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۱۰: یک دور عملیاتی AES

  1. تنها مرحله Add Round Key از کلید استفاده می کند، بهمین دلیل رمز با مرحله Add Round Key شروع و خاتمه می یابد. هر مرحله دیگر بدون نیاز به کلید قابل برگشت بوده و بنابراین چیزی به امنیت اضافه نمی کند.
  2. مرحله Add Round Key به تنهائی نیرومند نیست؛ سه مرحله دیگر بیت ها را مخلوط کرده ولی خود امنیتی را ایجاد نمی نمایند، زیرا از کلید استفاده نمی کنند. میتوان رمز را بصورت رمزنگاری (Add Round Key – XOR) یک بلوک و پس از آن در هم ریختن بلوک (سه مرحله دیگر) و بدنبال آن رمزنگاری XOR و غیره در نظر گرفت. این روش هم بهره ور و هم بغایت امن است.

الگوريتم های رمزنگاری قالبی متقارن | بررسی الگوریتم های DES   3DES   AES

شکل ۱۱: مرحله Add Round Key

  1. هر مرحله به آسانی برگشت پذیر است. برای مراحل جابجائی بایت، شیفت ردیف، و مخلوط کردن ستون، یک تابع معکوس در الگوریتم رمز گشائی بکار رفته است. برای مرحله Add Round Key عمل عکس با XOR کردن همان کلید دور به بلوک حاصل می گردد زیرا A+A+B = B است.
  2. همانند اکثر رمزهای قالبی، الگوریتم رمز گشایی از کلید گسترش یافته با نظم معکوس استفاده می کند. با وجود این الگوریتم رمز گشایی شبیه الگوریتم رمزنگاری نیست. این نتیجه ساختار خاص AES است.
  3. وقتی روشن شد که هر چهار مرحله باز گشت پذیر هستند، آنگاه تأئید اینکه رمز گشائی متن ساده را احیاء خواهد کرد، آسان خواهد بود. شکل ۸ رمزنگاری و رمز گشائی را در دو ستون کنار هم با جهت های مختلف نشان داده است. در هر سطح افقی (مثل خط چین ها در شکل)، state برای هم رمزنگاری و هم رمز گشائی یکی است.
  4. دور نهائی چه در عمل رمزنگاری و چه در عمل رمزگشائی فقط دارای سه مرحله است. بازهم این نتیجه ساختار خاص AES است و لازم است چنین باشد تا رمز باز گشت پذیر باشد.

منبع: کتاب اصول امنیت شبکه های کامپیوتری استالینگز


مشاهده ویدئو در این باره

خوشحال خواهیم شد اگر نظر خودتون رو درباره این مطلب ثبت کنید

خطا!دکمه ریفریش را بزنید