AES, Blowfish, and Twofish

امروزه الگوريتم هاي متقارن ديگري نيز براي پاسخگويي به نيازهاي رمزگذاري سازمان ها در دسترس هستند. سه مورد از الگوريتم هاي متقارن که امروزه به صورت گسترده استفاده مي شوند

، استاندارد رمزگذاري پيشرفته يا AES، بلوفيش و توفيش نام دارند. استاندارد رمزگذاري پيشرفته، يا AES، به عنوان يک مسابقه توسط موسسه ملي استاندارد در صنعت رهبري شد. هدف از اين رقابت جايگزيني براي الگوريتم هاي قديمي بود. که داده هاي از رده خارج شده رمزگذاري استاندارد را با يک جايگزين امن تر جا به جا مي کند. رقابت شامل پنج الگوريتم بوده و الگوريتم Rijndael که امروزه آن را با نام AES مي شناسيد برنده رقابت شد. AES نيز مانند DES، از ترکيب توابع جايگزيني يا substitution و جا به جايي يا transposition براي رسيدن به رمزنگاري قوي استفاده مي کند. امروزه استفاده از اين الگوريتم به صورت گسترده بوده و بسياري از برنامه هاي رمزنگاري اعم از امنيت وب وحتي رمزگذاري ارتباطات صوتي، از آن استفاده مي کنند.

حال به نحوه عملکرد AES مي پردازيم. من در اينجا وارد سيستم لينوکس، که قبلا پکيج AES Crypt روي آن نصب شده مي شوم. AES Crypt يک پکيج open-source بوده که بر روي تمام سيستم عامل هاي مدرن فعاليت مي کند و شما در آدرس aescrypt.com قادر به دانلود آن هستيد. یک فایل متنی با نام delcaration.txt ایجاد می کنیم و درون آن محتوای متنی مانند مثال زیر قرار می دهیم. در اینجا قسمتی از اعلاميه استقال  (Declaration of Independent) را قرار داده ایم. حال قصد داريم از برنامه aescrypt استفاده کنيم.

 متن آشکار

 

با تايپ aescrypt تابع را فعال مي کنيم و سپس با استفاده از -E قصد رمزگذاري فايل را داريم. يک پسورد را انتخاب کرده و به آن مي دهيم. الگوريتم متقارن است زيرا همان پسوردي که براي رمزگذاري استفاده کرده ايم، بعدها در رمزگشايي فايل نيز استفاده مي شود. حال يک پسورد مناسب براي اعلاميه استقال  (Declaration of Independent) انتخاب مي نماييم. رمز انتخابي ما independent1776 است. حال مي خواهيم براي خروجي نام declaration.aes  انتخاب کنيم. نام آن را aes گذاشتم تا به ياد داشته باشم که رمزنگاري شده است. به فايلي که مي خواهم آن را رمزگذاري کنم declaration.txt گفته مي شود. Enter را مي زنيم.

aescrypt -e -p Independent1776 -o declaration.aes declaration.txt

 

حال نگاهي به محتويات فهرست فايل ها بياندازيد. همان طور که مي بيننيد اکنون دو فايل وجود دارد، فايل اصلي declaration.txt و يک فايل جديد با نام declaration.aes مي باشد. حال مي خواهم فايل declaration.txt را پاک کرده و محتوياتش را مجددا به شما نمايش دهم. تنها چيزي که برايم باقي مانده فايل رمزگذاري شده است. اگر نگاهي به درون محتويات فايل بياندازيم، به جاي متن واقعي اعلاميه استقال  (Declaration of Independent)،چيزي که ما مي بينيم به نظر نا مفهوم مي رسد. در واقع اين همان نسخه رمزگذاري شده اعلاميه استقال  (Declaration of Independent) است.

 متن رمز شده

 

فايل رمزگذاري شده را داريم حال مي خواهم رمزگشايي آن را امتحان کنم. مجددا از دستور aescrypt استفاده مي کنيم. اين بار قصد دارم استفاده از minus D flag را به شما نمايش داده و رمزگشايي را با آن انجام دهم. مي خواهم پسورد را مشخص کنم،

aescrypt -d -p Independent17706 declaration.aes

 

حالا اگر فهرست را نگاه کنيم فايل جديدي با نام declaration در آن وجود دارد و اگر درون فايل را نگاه کنيم، متن اعلاميه استقال  (Declaration of Independent) درون آن قرار دارد. به ياد داشته باشيد، همانطور که در اينجا نيز مشاهده کرديد در رمزنگاري متقارن از يک کليد براي رمزگذاري و رمزگشايي فايل استفاده مي شود. حال به بررسي مفاهيم کليدي AES مي پردازيم، AES يک رمز متقارن است که با استفاده از رمزنگاري بلوکي يا block cipher عملياتي را بر روي بلوک هاي 128 بيتي اعمال مي کند. AES به شما اجازه انتخاب سه طول متفاوت از بين 128بيت ، 192 بيت و 256 بيت براي کليد را به کاربر مي دهد و هر سه گزينه امروزه امن هستند.

الگوريتم ديگري که در اینجا به آن می پردازیم، بلوفيش است. اين الگوريتم از دامنه کاملا عمومي استفاده مي کند که در سال 1993 توسط کارشناس رمزنگاري، بروس اشناير، به عنوان جايگزيني براي استاندارد رمزگذاري داده توسعه داده شده است. بلوفيش نيز مانند AES و DES، از ساختار فيستل (Feistel) استفاده مي کند که شامل عمليات جايگزيني يا substitution و جا به جايي يا trasposition است. بياييد به حقايق کليدي بلوفيش نگاهي بياندازيم. بلوفيش يک الگوريتم رمزگذاري متقارن است که با استفاده از کليد با طول انتخابي بين 32 تا 448 بيت ( شما طول کليد را انتخاب خواهيد کرد)عملياتي را بر روي بلوک هاي 64 بيتي اعمال مي دارد. بلوفيش به عنوان يک الگوريتم امن در نظر گرفته نمي شود زيرا حملات زيادي بر عليه برخي از کليد هاي رمزگذاري ضعيفي که توسط کاربران ايجاد شده صورت گرفته است.

الگوريتم توفيش که اشناير آن را توصيه کرده، يکي از رقباي AES است که از الگوريتم Rijndael شکست خورد. اشناير رهبر يک تيم بزرگ از افرادي است که توسعه دهنده اين الگوريتم هستند و آن را براي استفاده رايگان همه مردم جهان در يک دامين عمومي قرار دادند. مانند الگوريتم هاي ديگر که تا به اينجا در رابطه با آن صحبت کرده ايم، توفيش نيز براي رمزگذاري از ساختار فيستل (Feistel) استفاده مي کند که شامل عمليات جايگزيني يا substitution و جا به جايي يا transposition است. در اينجا به حقايق کليدي twofish مي پردازيم. توفيش يک الگوريتم رمزنگاري متقارن است که با استفاده از کليد با طول هاي انتخابي 128 ، 192 و 256 بيت، عملياتي را بر روي بلوک هاي 128 بيتي اعمال مي دارد. twofish امروز نيز به عنوان الگوريتم امن شناخته مي شود.

موارد مرتبط

محبوب ترین آموزش ها