X
تبلیغات
رایتل
صفحه اول تماس با ما RSS                     قالب وبلاگ
  
فناوری اطلاعات و ارتباطات
Information & Communication Technology
««« مقایسه الگوریتم های رمزنگاری متقارن و نامتقارن »»»


الگوریتم های رمزنگاری بسیار متعدد هستند ، اما تنها تعداد اندکی از آن‌ها به صورت استاندارد درآمده‌اند که ما در اینجا به مقایسه الگوریتم های متقارن و نامتقارن می پردازیم.

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

نمونه هایی از الگوریتم های متقارن محبوب و شناخته شده عبارتند از Twofish ، Serpent ، AES (Rijndael) ، Blowfish ، CAST5 ، RC4 ، 3DES و IDEA .


در اینجا به عنوان مثال به بررسی الگوریتم متقارن AES می پردازیم.

مؤسسه NIST سالها با گروههای رمزنگاری همکاری کرد تا استاندارد رمزنگاری پیشرفته ای را تدوین نماید. هدف کلی توسعه استانداردی بود که توانایی محافظت از اطلاعات حساس را برای حداقل یک دهه دارا باشد. مسابقات بسیاری انجام شد تا الگوریتمی که باید پایه استاندارد رمزنگاری پیشرفته (AES) باشد ، معین گردد. بالاخره در سال 1999 ، بین پنج الگوریتمی که به فاینال رسیدند ، الگوریتم Rijndael انتخاب شد که توسط Joan Daemon و Vincent Rijmen نوشته شده بود. الگوریتم هایی که به فاینال راه پیدا کرده بودند عبارتند از: MARS ، RC6 ، Rijndael Serpent و Twofish. استاندارد FIPS-197 در همین رابطه تهیه شده است و الگوریتم مذکور را به عنوان یک رمزنگاری متقارن تعریف می کند که سازمان های دولتی آمریکا باید با استفاده از آن ، اطلاعات حساس را رمزنگاری کنند. از آنجایی که اثبات قابل اعتماد بودن الگوریتم مذکور کار بسیار دشواری بود ، بسیاری از کشورها و ملیت های دیگر نیز به پروژه AES پیوستند و به آزمایش این الگوریتم پرداختند و از آنجایی که مشکلی در این مورد پیدا نشد ، الگوریتم مذکور روز به روز قابلیت اعتماد بیشتری را کسب کرد.


طرز کار AES


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

* SubBytes
در پروسه جابجایی ، بایت های متن ورودی در یک جعبه جابجایی به نام S-box قرار می گیرند که یک ماتریس 16×16 است. هر بایت در یک تقاطع سطر و ستون این ماتریس جا می گیرد. برای پیدا کردن جای هر بایت اولین عدد صحیح مبنای 16 (nibble) در یک بایت متن اصلی گرفته شده و از آن برای مشخص کردن سطر S-box استفاده می شود و سپس از دومین nibble برای مشخص کردن ستون استفاده می شود. کاراکتری که در تقاطع سطر و ستون انتخاب شده ذخیره می گردد به عنوان SubByte برای متن اصلی شناخته می شود. این پروسه برای هر 16 بایت در ماتریس تکرار می شود.



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

* کلیدهای Round
در مرحله بعدی یک کلید round به هر ستون اضافه می شود. این کلید در واقع یک تکه کوچک از یک کلید محرمانه است که برای مراحل بعدی رمزنگاری تزریق می شود.

* تکرار
این تبدیل ها 9 بار دیگر تکرار می شوند. در تکرار آخر ترکیب ستون ها وجود ندارد و با اضافه کردن کلید round متن رمزنگاری شده به دست می آید. کلید نیز به نوبه خود شیفت پیدا می کند، گرد می شود و به خودش اضافه می شود.

رمزنگاری کلید نامتقارن در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد. در این نوع از رمزنگاری ، به جای یک کلید مشترک ، از یک زوج کلید به نام‌های کلید عمومی و کلید خصوصی استفاده می‌شود. کلید خصوصی تنها در اختیار دارنده ی آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیه ی کسانی که با دارنده ی آن در ارتباط هستند قرار داده می‌شود.
برخی الگوریتم‌های روش نامتقارن عبارتند از: 
Elliptic Curve Cryptography
RSA
Blind Signatures
 
Diffie-Hellman الگوریتم DH
Elgamal Discrete log Cryptosystem
Zero-knowledge Proofs


درباره الگوریتم نامتقارن RSA در پُست قبلی به طور مفصل صحبت کردیم.
 
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته می‌شوند مانند ElGamal و Diffie-Hellman و سایر طرحهای چندجمله ‌ای و منحنی‌ های بیضوی. بسیاری از این طرحها عملکردهای یک‌ طرفه‌ای دارند که اجازه تأیید هویت را می ‌دهند اما رمزنگاری ندارند. به مرور زمان ، به غیر از حل مشکل انتقال کلید در روش متقارن ، کاربردهای متعددی برای این نوع از رمزنگاری مطرح گردیده‌ است. در سیستم‌های رمزنگاری نامتقارن ، بسته به کاربرد و پروتکل مورد نظر ، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده می‌شود و گاهی نیز ، بر عکس ، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار می‌رود.

دو کلید عمومی و خصوصی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاضی محاسبه می‌گردند. رابطه ی ریاضی بین این دو کلید به گونه‌ای است که کشف کلید خصوصی با در اختیار داشتن کلید عمومی ، عملاً ناممکن است.

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

منابع :
www.irmeta.com

www.certcc.ir

پیچک