Û±- معرÙÛŒ Ùˆ اصطلاØات
رمزنگاری علم کدها Ùˆ رمزهاست. یک هنر قدیمی است Ùˆ برای قرنها بمنظور Ù…ØاÙظت از پیغامهایی Ú©Ù‡ بین Ùرماندهان، جاسوسان،‌ عشاق Ùˆ دیگران ردوبدل می‌شده، استÙاده شده است تا پیغامهای آنها Ù…Øرمانه بماند.
هنگامی Ú©Ù‡ با امنیت دیتا سروکار داریم، نیاز به اثبات هویت Ùرستنده Ùˆ گیرنده پیغام داریم Ùˆ در ضمن باید از عدم تغییر Ù…Øتوای پیغام مطمئن شویم. این سه موضوع یعنی Ù…Øرمانگی، تصدیق هویت Ùˆ جامعیت در قلب امنیت ارتباطات دیتای مدرن قرار دارند Ùˆ می‌توانند از رمزنگاری استÙاده کنند.
اغلب این مساله باید تضمین شود Ú©Ù‡ یک پیغام Ùقط میتواند توسط کسانی خوانده شود Ú©Ù‡ پیغام برای آنها ارسال شده است Ùˆ دیگران این اجازه را ندارند. روشی Ú©Ù‡ تامین کننده این مساله باشد "رمزنگاری" نام دارد. رمزنگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریاÙت کننده موردنظر نتواند Ù…Øتوای پیغام را بخواند.
رمزنگاری مخÙÙ‌ها Ùˆ اصطلاØات مخصوص به خود را دارد. برای درک عمیق‌تر به مقداری از دانش ریاضیات نیاز است. برای Ù…ØاÙظت از دیتای اصلی ( Ú©Ù‡ بعنوان plaintext شناخته می‌شود)ØŒ آنرا با استÙاده از یک کلید (رشته‌ای Ù…Øدود از بیتها) بصورت رمز در می‌آوریم تا کسی Ú©Ù‡ دیتای Øاصله را می‌خواند قادر به درک آن نباشد. دیتای رمزشده (Ú©Ù‡ بعنوان ciphertext شناخته می‌شود) بصورت یک سری بی‌معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می‌رسد. برای Øصول متن اولیه دریاÙت‌کننده آنرا رمزگشایی می‌کند. یک شخص ثالت (مثلا یک هکر) می‌تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد، کش٠رمز‌نوشته (cryptanalysis) کند. بخاطرداشتن وجود این شخص ثالث بسیار مهم است.
رمزنگاری دو جزء اصلی دارد، یک الگوریتم Ùˆ یک کلید. الگوریتم یک مبدل یا Ùرمول ریاضی است. تعداد Ú©Ù…ÛŒ الگوریتم قدرتمند وجود دارد Ú©Ù‡ بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده‌اند. کلید، یک رشته از ارقام دودویی (صÙر Ùˆ یک) است Ú©Ù‡ بخودی‌خود بی‌معنی است. رمزنگاری مدرن Ùرض می‌کند Ú©Ù‡ الگوریتم شناخته شده است یا می‌تواند کش٠شود. کلید است Ú©Ù‡ باید مخÙÛŒ نگاه داشته شود Ùˆ کلید است Ú©Ù‡ در هر مرØله پیاده‌سازی تغییر می‌کند. رمزگشایی ممکن است از همان جÙت الگوریتم Ùˆ کلید یا جÙت متÙاوتی استÙاده کند.
دیتای اولیه اغلب قبل از رمزشدن بازچینی می‌شود؛ این عمل عموما بعنوان scrambling شناخته می‌شود. بصورت مشخص‌تر، hash functionها بلوکی از دیتا را (Ú©Ù‡ می‌تواند هر اندازه‌ای داشته باشد) به طول از پیش مشخص‌شده کاهش می‌دهد. البته دیتای اولیه نمی‌تواند از hashed value بازسازی شود. Hash functionها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه‌ای از پیام (شامل مهم‌ترین قسمتها مانند شماره پیام، تاریخ Ùˆ ساعت، Ùˆ نواØÛŒ مهم دیتا) قبل از رمزنگاری خود پیام، ساخته ‌و hash می‌شود.
یک Ú†Ú© تایید پیام (Message Authentication Check) یا MAC یک الگوریتم ثابت با تولید یک امضاء برروی پیام با استÙاده از یک کلید متقارن است. هد٠آن نشان دادن این مطلب است Ú©Ù‡ پیام بین ارسال Ùˆ دریاÙت تغییر نکرده است. هنگامی Ú©Ù‡ رمزنگاری توسط کلید عمومی برای تایید هویت Ùرستنده پیام استÙاده می‌شود، منجر به ایجاد امضای دیجیتال (digital signature) می‌شود.
۲- الگوریتم‌ها
طراØÛŒ الگوریتمهای رمزنگاری مقوله‌ای برای متخصصان ریاضی است. طراØان سیستمهایی Ú©Ù‡ در آنها از رمزنگاری استÙاده می‌شود، باید از نقاط قوت Ùˆ ضع٠الگوریتمهای موجود مطلع باشند Ùˆ برای تعیین الگوریتم مناسب قدرت تصمیم‌گیری داشته باشند. اگرچه رمزنگاری از اولین کارهای شانون (Shannon) در اواخر دهه Û´Û° Ùˆ اوایل دهه ÛµÛ° بشدت پیشرÙت کرده است، اما کش٠رمز نیز پابه‌پای رمزنگاری به پیش آمده است Ùˆ الگوریتمهای Ú©Ù…ÛŒ هنوز با گذشت زمان ارزش خود را ØÙظ کرده‌اند. بنابراین تعداد الگوریتمهای استÙاده شده در سیستمهای کامپیوتری عملی Ùˆ در سیستمهای برپایه کارت هوشمند بسیار Ú©Ù… است.
۱-۲ سیستمهای کلید متقارن
یک الگوریتم متقارن از یک کلید برای رمزنگاری Ùˆ رمزگشایی استÙاده می‌کند. بیشترین Ø´Ú©Ù„ استÙاده از رمزنگاری Ú©Ù‡ در کارتهای هوشمند Ùˆ البته در بیشتر سیستمهای امنیت اطلاعات وجود دارد data encryption algorithm یا DEA است Ú©Ù‡ بیشتر بعنوان DES‌ ‌ ‌ شناخته می‌شود. DES یک Ù…Øصول دولت ایالات متØده است Ú©Ù‡ امروزه بطور وسیعی بعنوان یک استاندارد بین‌المللی شناخته ‌می‌شود. بلوکهای ۶۴بیتی دیتا توسط یک کلید تنها Ú©Ù‡ معمولا ۵۶بیت طول دارد، رمزنگاری Ùˆ رمزگشایی می‌شوند. DES‌ ‌ ‌ از نظر Ù…Øاسباتی ساده است Ùˆ براØتی می‌تواند توسط پردازنده‌های کند (بخصوص آنهایی Ú©Ù‡ در کارتهای هوشمند وجود دارند) انجام گیرد.
این روش بستگی به مخÙی‌بودن کلید دارد. بنابراین برای استÙاده در دو موقعیت مناسب است: هنگامی Ú©Ù‡ کلیدها می‌توانند به یک روش قابل اعتماد Ùˆ امن توزیع Ùˆ ذخیره شوند یا جایی Ú©Ù‡ کلید بین دو سیستم مبادله می‌شوند Ú©Ù‡ قبلا هویت یکدیگر را تایید کرده‌اند عمر کلیدها بیشتر از مدت تراکنش طول نمی‌کشد. رمزنگاری DES عموما برای ØÙاظت دیتا از شنود در طول انتقال استÙاده می‌شود.
کلیدهای DES ۴۰بیتی امروزه در عرض چندین ساعت توسط کامپیوترهای معمولی شکسته می‌شوند Ùˆ بنابراین نباید برای Ù…ØاÙظت از اطلاعات مهم Ùˆ با مدت طولانی اعتبار استÙاده شود. کلید ۵۶بیتی عموما توسط سخت‌اÙزار یا شبکه‌های بخصوصی شکسته می‌شوند. رمزنگاری DESسه‌تایی عبارتست از کدکردن دیتای اصلی با استÙاده از الگوریتم DES‌ ‌ ‌ Ú©Ù‡ در سه مرتبه انجام می‌گیرد. (دو مرتبه با استÙاده از یک کلید به سمت جلو (رمزنگاری) Ùˆ یک مرتبه به سمت عقب (رمزگشایی) با یک کلید دیگر)
این عمل تاثیر دوبرابر کردن طول مؤثر کلید را دارد؛ بعدا خواهیم دید که این یک عامل مهم در قدرت رمزکنندگی است.
الگوریتمهای استاندارد جدیدتر مختلÙÛŒ پیشنهاد شده‌اند. الگوریتمهایی مانند Blowfish Ùˆ IDEA برای زمانی مورد استÙاده قرار گرÙته‌اند اما هیچکدام پیاده‌سازی سخت‌اÙزاری نشدند بنابراین بعنوان رقیبی برای DES برای استÙاده در کاربردهای میکروکنترلی Ù…Ø·Ø±Ø Ù†Ø¨ÙˆØ¯Ù‡â€ŒØ§Ù†Ø¯. پروژه استاندارد رمزنگاری پیشرÙته دولتی ایالات متØده (AES) الگوریتم Rijndael را برای جایگزیتی DES بعنوان الگوریتم رمزنگاری اولیه انتخاب کرده است. الگوریتم Twofish مشخصا برای پیاده‌سازی در پردازنده‌های توان‌ـ‌پایین مثلا در کارتهای هوشمند طراØÛŒ شد.
در Û±Û¹Û¹Û¸ وزارت دÙاع ایالات متØده تصمیم گرÙت Ú©Ù‡ الگوریتمها Skipjack Ùˆ مبادله کلید را Ú©Ù‡ در کارتهای Fortezza استÙاده شده بود، از Ù…Øرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده‌سازی بیشتر کارتهای هوشمند برپایه این الگوریتمها بود.
برای رمزنگاری جریانی (streaming encryption) (Ú©Ù‡ رمزنگاری دیتا در Øین ارسال صورت می‌گیرد بجای اینکه دیتای کدشده در یک Ùایل مجزا قرار گیرد) الگوریتم RC4‌ ‌ ‌ سرعت بالا Ùˆ دامنه‌ای از طول کلیدها از Û´Û° تا Û²ÛµÛ¶ بیت Ùراهم می‌کند. RC4 Ú©Ù‡ متعلق به امنیت دیتای RSA‌ ‌ ‌ است، بصورت عادی برای رمزنگاری ارتباطات دوطرÙÙ‡ امن در اینترنت استÙاده می‌شود.
۲-۲ سیستمهای کلید نامتقارن
سیستمهای کلید نامتقارن از کلید مختلÙÛŒ برای رمزنگاری Ùˆ رمزگشایی استÙاده می‌کنند. بسیاری از سیستمها اجازه می‌دهند Ú©Ù‡ یک جزء (کلید عمومی یا public key) منتشر شود در Øالیکه دیگری (کلید اختصاصی یا private key) توسط صاØبش ØÙظ شود. Ùرستنده پیام، متن را با کلید عمومی گیرنده کد می‌کند Ùˆ گیرنده آن را با کلید اختصاصی خودش رمزنگاری میکند. بعبارتی تنها با کلید اختصاصی گیرنده می‌توان متن کد شده را به متن اولیه صØÛŒØ ØªØ¨Ø¯ÛŒÙ„ کرد. یعنی Øتی Ùرستنده نیز اگرچه از Ù…Øتوای اصلی پیام مطلع است اما نمی‌تواند از متن کدشده به متن اصلی دست یابد، بنابراین پیام کدشده برای هرگیرنده‌ای بجز گیرنده مورد نظر Ùرستنده بی‌معنی خواهد بود. معمولترین سیستم نامتقارن بعنوان RSA‌ ‌ ‌ شناخته می‌شود (Øرو٠اول پدیدآورندگان آن یعنی Rivest ØŒ Shamir Ùˆ Adlemen است). اگرچه چندین Ø·Ø±Ø Ø¯ÛŒÚ¯Ø± وجود دارند. می‌توان از یک سیستم نامتقارن برای نشاندادن اینکه Ùرستنده پیام همان شخصی است Ú©Ù‡ ادعا می‌کند استÙاده کرد Ú©Ù‡ این عمل اصطلاØا امضاء نام دارد. RSA شامل دو تبدیل است Ú©Ù‡ هرکدام اØتیاج به بتوان‌رسانی ماجولار با توانهای خیلی طولانی دارد:
امضاء، متن اصلی را با استÙاده از کلید اختصاصی رمز می‌کند؛
رمزگشایی عملیات مشابه‌ای روی متن رمزشده اما با استÙاده از کلید عمومی است. برای تایید امضاء بررسی می‌کنیم Ú©Ù‡ آیا این نتیجه با دیتای اولیه یکسان است؛ اگر اینگونه است، امضاء توسط کلید اختصاصی متناظر رمزشده است.
به بیان ساده‌تر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی Ùˆ همان متن اما رمز شده توسط کلید اختصاصی همان شخص است. Øال اگر متن رمزشده توسط کلید عمومی آن شخص Ú©Ù‡ شما از آن مطلعید رمزگشایی شود، مطابقت متن Øاصل Ùˆ متن اصلی نشاندهنده صØت Ùرد Ùرستنده آن است، به این ترتیب امضای Ùرد تصدیق می‌شود. اÙرادی Ú©Ù‡ از کلید اختصاصی این Ùرد اطلاع ندارند قادر به ایجاد متن رمز‌شده‌ نیستند بطوریکه با رمزگشایی توسط کلید عمومی این Ùرد به متن اولیه تبدیل شود.
اساس سیستم RSA این Ùرمول است: X = Yk (mod r)
Ú©Ù‡ X متن کد شده، Y متن اصلی، k کلید اختصاصی Ùˆ r Øاصلضرب دو عدد اولیه بزرگ است Ú©Ù‡ با دقت انتخاب شده‌اند. برای اطلاع از جزئیات بیشتر می‌توان به مراجعی Ú©Ù‡ در این زمینه وجود دارد رجوع کرد. این Ø´Ú©Ù„ Ù…Øاسبات روی پردازنده‌های بایتی بخصوص روی Û¸ بیتی‌ها Ú©Ù‡ در کارتهای هوشمند استÙاده می‌شود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت Ùˆ هم رمزنگاری را ممکن می‌سازد، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارتهای هوشمند استÙاده می‌شود Ùˆ برای نشاندادن عدم تغییر پیام در طول ارسال Ùˆ رمزنگاری کلیدهای آتی استÙاده می‌شود.
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته می‌شوند مانند Diffie-HellmanØŒ ElGamal Ùˆ سایر طرØهای چندجمله‌ای Ùˆ منØنی‌های بیضوی. بسیاری از این طرØها عملکردهای یک‌ـ‌طرÙه‌ای دارند Ú©Ù‡ اجازه تاییدهویت را می‌دهند اما رمزنگاری ندارند. یک رقیب جدیدتر الگوریتم RPK‌ ‌ ‌ است Ú©Ù‡ از یک تولیدکننده مرکب برای تنظیم ترکیبی از کلیدها با مشخصات مورد نیاز استÙاده می‌کند. RPK یک پروسه دو مرØله‌ای است: بعد از Ùاز آماده‌سازی در رمزنگاری Ùˆ رمزگشایی (برای یک Ø·Ø±Ø Ú©Ù„ÛŒØ¯ عمومی) رشته‌هایی از دیتا بطور استثنایی کاراست Ùˆ می‌تواند براØتی در سخت‌اÙزارهای رایج پیاده‌سازی شود. بنابراین بخوبی با رمزنگاری Ùˆ تصدیق‌هویت در ارتباطات سازگار است.
طولهای کلیدها برای این طرØهای جایگزین بسیار کوتاهتر از کلیدهای مورد استÙاده در RSA‌ ‌ ‌ است Ú©Ù‡ آنها برای استÙاده در چیپ‌کارتها مناسب‌تر است. اما ‌RSA‌ ‌ ‌ Ù…ØÚ©ÛŒ برای ارزیابی سایر الگوریتمها باقی مانده است؛ Øضور Ùˆ بقای نزدیک به سه‌دهه از این الگوریتم، تضمینی در برابر ضعÙهای عمده بشمار می‌رود.
رمزنگاری علم کدها Ùˆ رمزهاست. یک هنر قدیمی است Ùˆ برای قرنها بمنظور Ù…ØاÙظت از پیغامهایی Ú©Ù‡ بین Ùرماندهان، جاسوسان،‌ عشاق Ùˆ دیگران ردوبدل می‌شده، استÙاده شده است تا پیغامهای آنها Ù…Øرمانه بماند.
هنگامی Ú©Ù‡ با امنیت دیتا سروکار داریم، نیاز به اثبات هویت Ùرستنده Ùˆ گیرنده پیغام داریم Ùˆ در ضمن باید از عدم تغییر Ù…Øتوای پیغام مطمئن شویم. این سه موضوع یعنی Ù…Øرمانگی، تصدیق هویت Ùˆ جامعیت در قلب امنیت ارتباطات دیتای مدرن قرار دارند Ùˆ می‌توانند از رمزنگاری استÙاده کنند.
اغلب این مساله باید تضمین شود Ú©Ù‡ یک پیغام Ùقط میتواند توسط کسانی خوانده شود Ú©Ù‡ پیغام برای آنها ارسال شده است Ùˆ دیگران این اجازه را ندارند. روشی Ú©Ù‡ تامین کننده این مساله باشد "رمزنگاری" نام دارد. رمزنگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریاÙت کننده موردنظر نتواند Ù…Øتوای پیغام را بخواند.
رمزنگاری مخÙÙ‌ها Ùˆ اصطلاØات مخصوص به خود را دارد. برای درک عمیق‌تر به مقداری از دانش ریاضیات نیاز است. برای Ù…ØاÙظت از دیتای اصلی ( Ú©Ù‡ بعنوان plaintext شناخته می‌شود)ØŒ آنرا با استÙاده از یک کلید (رشته‌ای Ù…Øدود از بیتها) بصورت رمز در می‌آوریم تا کسی Ú©Ù‡ دیتای Øاصله را می‌خواند قادر به درک آن نباشد. دیتای رمزشده (Ú©Ù‡ بعنوان ciphertext شناخته می‌شود) بصورت یک سری بی‌معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می‌رسد. برای Øصول متن اولیه دریاÙت‌کننده آنرا رمزگشایی می‌کند. یک شخص ثالت (مثلا یک هکر) می‌تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد، کش٠رمز‌نوشته (cryptanalysis) کند. بخاطرداشتن وجود این شخص ثالث بسیار مهم است.
رمزنگاری دو جزء اصلی دارد، یک الگوریتم Ùˆ یک کلید. الگوریتم یک مبدل یا Ùرمول ریاضی است. تعداد Ú©Ù…ÛŒ الگوریتم قدرتمند وجود دارد Ú©Ù‡ بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده‌اند. کلید، یک رشته از ارقام دودویی (صÙر Ùˆ یک) است Ú©Ù‡ بخودی‌خود بی‌معنی است. رمزنگاری مدرن Ùرض می‌کند Ú©Ù‡ الگوریتم شناخته شده است یا می‌تواند کش٠شود. کلید است Ú©Ù‡ باید مخÙÛŒ نگاه داشته شود Ùˆ کلید است Ú©Ù‡ در هر مرØله پیاده‌سازی تغییر می‌کند. رمزگشایی ممکن است از همان جÙت الگوریتم Ùˆ کلید یا جÙت متÙاوتی استÙاده کند.
دیتای اولیه اغلب قبل از رمزشدن بازچینی می‌شود؛ این عمل عموما بعنوان scrambling شناخته می‌شود. بصورت مشخص‌تر، hash functionها بلوکی از دیتا را (Ú©Ù‡ می‌تواند هر اندازه‌ای داشته باشد) به طول از پیش مشخص‌شده کاهش می‌دهد. البته دیتای اولیه نمی‌تواند از hashed value بازسازی شود. Hash functionها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه‌ای از پیام (شامل مهم‌ترین قسمتها مانند شماره پیام، تاریخ Ùˆ ساعت، Ùˆ نواØÛŒ مهم دیتا) قبل از رمزنگاری خود پیام، ساخته ‌و hash می‌شود.
یک Ú†Ú© تایید پیام (Message Authentication Check) یا MAC یک الگوریتم ثابت با تولید یک امضاء برروی پیام با استÙاده از یک کلید متقارن است. هد٠آن نشان دادن این مطلب است Ú©Ù‡ پیام بین ارسال Ùˆ دریاÙت تغییر نکرده است. هنگامی Ú©Ù‡ رمزنگاری توسط کلید عمومی برای تایید هویت Ùرستنده پیام استÙاده می‌شود، منجر به ایجاد امضای دیجیتال (digital signature) می‌شود.
۲- الگوریتم‌ها
طراØÛŒ الگوریتمهای رمزنگاری مقوله‌ای برای متخصصان ریاضی است. طراØان سیستمهایی Ú©Ù‡ در آنها از رمزنگاری استÙاده می‌شود، باید از نقاط قوت Ùˆ ضع٠الگوریتمهای موجود مطلع باشند Ùˆ برای تعیین الگوریتم مناسب قدرت تصمیم‌گیری داشته باشند. اگرچه رمزنگاری از اولین کارهای شانون (Shannon) در اواخر دهه Û´Û° Ùˆ اوایل دهه ÛµÛ° بشدت پیشرÙت کرده است، اما کش٠رمز نیز پابه‌پای رمزنگاری به پیش آمده است Ùˆ الگوریتمهای Ú©Ù…ÛŒ هنوز با گذشت زمان ارزش خود را ØÙظ کرده‌اند. بنابراین تعداد الگوریتمهای استÙاده شده در سیستمهای کامپیوتری عملی Ùˆ در سیستمهای برپایه کارت هوشمند بسیار Ú©Ù… است.
۱-۲ سیستمهای کلید متقارن
یک الگوریتم متقارن از یک کلید برای رمزنگاری Ùˆ رمزگشایی استÙاده می‌کند. بیشترین Ø´Ú©Ù„ استÙاده از رمزنگاری Ú©Ù‡ در کارتهای هوشمند Ùˆ البته در بیشتر سیستمهای امنیت اطلاعات وجود دارد data encryption algorithm یا DEA است Ú©Ù‡ بیشتر بعنوان DES‌ ‌ ‌ شناخته می‌شود. DES یک Ù…Øصول دولت ایالات متØده است Ú©Ù‡ امروزه بطور وسیعی بعنوان یک استاندارد بین‌المللی شناخته ‌می‌شود. بلوکهای ۶۴بیتی دیتا توسط یک کلید تنها Ú©Ù‡ معمولا ۵۶بیت طول دارد، رمزنگاری Ùˆ رمزگشایی می‌شوند. DES‌ ‌ ‌ از نظر Ù…Øاسباتی ساده است Ùˆ براØتی می‌تواند توسط پردازنده‌های کند (بخصوص آنهایی Ú©Ù‡ در کارتهای هوشمند وجود دارند) انجام گیرد.
این روش بستگی به مخÙی‌بودن کلید دارد. بنابراین برای استÙاده در دو موقعیت مناسب است: هنگامی Ú©Ù‡ کلیدها می‌توانند به یک روش قابل اعتماد Ùˆ امن توزیع Ùˆ ذخیره شوند یا جایی Ú©Ù‡ کلید بین دو سیستم مبادله می‌شوند Ú©Ù‡ قبلا هویت یکدیگر را تایید کرده‌اند عمر کلیدها بیشتر از مدت تراکنش طول نمی‌کشد. رمزنگاری DES عموما برای ØÙاظت دیتا از شنود در طول انتقال استÙاده می‌شود.
کلیدهای DES ۴۰بیتی امروزه در عرض چندین ساعت توسط کامپیوترهای معمولی شکسته می‌شوند Ùˆ بنابراین نباید برای Ù…ØاÙظت از اطلاعات مهم Ùˆ با مدت طولانی اعتبار استÙاده شود. کلید ۵۶بیتی عموما توسط سخت‌اÙزار یا شبکه‌های بخصوصی شکسته می‌شوند. رمزنگاری DESسه‌تایی عبارتست از کدکردن دیتای اصلی با استÙاده از الگوریتم DES‌ ‌ ‌ Ú©Ù‡ در سه مرتبه انجام می‌گیرد. (دو مرتبه با استÙاده از یک کلید به سمت جلو (رمزنگاری) Ùˆ یک مرتبه به سمت عقب (رمزگشایی) با یک کلید دیگر)
این عمل تاثیر دوبرابر کردن طول مؤثر کلید را دارد؛ بعدا خواهیم دید که این یک عامل مهم در قدرت رمزکنندگی است.
الگوریتمهای استاندارد جدیدتر مختلÙÛŒ پیشنهاد شده‌اند. الگوریتمهایی مانند Blowfish Ùˆ IDEA برای زمانی مورد استÙاده قرار گرÙته‌اند اما هیچکدام پیاده‌سازی سخت‌اÙزاری نشدند بنابراین بعنوان رقیبی برای DES برای استÙاده در کاربردهای میکروکنترلی Ù…Ø·Ø±Ø Ù†Ø¨ÙˆØ¯Ù‡â€ŒØ§Ù†Ø¯. پروژه استاندارد رمزنگاری پیشرÙته دولتی ایالات متØده (AES) الگوریتم Rijndael را برای جایگزیتی DES بعنوان الگوریتم رمزنگاری اولیه انتخاب کرده است. الگوریتم Twofish مشخصا برای پیاده‌سازی در پردازنده‌های توان‌ـ‌پایین مثلا در کارتهای هوشمند طراØÛŒ شد.
در Û±Û¹Û¹Û¸ وزارت دÙاع ایالات متØده تصمیم گرÙت Ú©Ù‡ الگوریتمها Skipjack Ùˆ مبادله کلید را Ú©Ù‡ در کارتهای Fortezza استÙاده شده بود، از Ù…Øرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده‌سازی بیشتر کارتهای هوشمند برپایه این الگوریتمها بود.
برای رمزنگاری جریانی (streaming encryption) (Ú©Ù‡ رمزنگاری دیتا در Øین ارسال صورت می‌گیرد بجای اینکه دیتای کدشده در یک Ùایل مجزا قرار گیرد) الگوریتم RC4‌ ‌ ‌ سرعت بالا Ùˆ دامنه‌ای از طول کلیدها از Û´Û° تا Û²ÛµÛ¶ بیت Ùراهم می‌کند. RC4 Ú©Ù‡ متعلق به امنیت دیتای RSA‌ ‌ ‌ است، بصورت عادی برای رمزنگاری ارتباطات دوطرÙÙ‡ امن در اینترنت استÙاده می‌شود.
۲-۲ سیستمهای کلید نامتقارن
سیستمهای کلید نامتقارن از کلید مختلÙÛŒ برای رمزنگاری Ùˆ رمزگشایی استÙاده می‌کنند. بسیاری از سیستمها اجازه می‌دهند Ú©Ù‡ یک جزء (کلید عمومی یا public key) منتشر شود در Øالیکه دیگری (کلید اختصاصی یا private key) توسط صاØبش ØÙظ شود. Ùرستنده پیام، متن را با کلید عمومی گیرنده کد می‌کند Ùˆ گیرنده آن را با کلید اختصاصی خودش رمزنگاری میکند. بعبارتی تنها با کلید اختصاصی گیرنده می‌توان متن کد شده را به متن اولیه صØÛŒØ ØªØ¨Ø¯ÛŒÙ„ کرد. یعنی Øتی Ùرستنده نیز اگرچه از Ù…Øتوای اصلی پیام مطلع است اما نمی‌تواند از متن کدشده به متن اصلی دست یابد، بنابراین پیام کدشده برای هرگیرنده‌ای بجز گیرنده مورد نظر Ùرستنده بی‌معنی خواهد بود. معمولترین سیستم نامتقارن بعنوان RSA‌ ‌ ‌ شناخته می‌شود (Øرو٠اول پدیدآورندگان آن یعنی Rivest ØŒ Shamir Ùˆ Adlemen است). اگرچه چندین Ø·Ø±Ø Ø¯ÛŒÚ¯Ø± وجود دارند. می‌توان از یک سیستم نامتقارن برای نشاندادن اینکه Ùرستنده پیام همان شخصی است Ú©Ù‡ ادعا می‌کند استÙاده کرد Ú©Ù‡ این عمل اصطلاØا امضاء نام دارد. RSA شامل دو تبدیل است Ú©Ù‡ هرکدام اØتیاج به بتوان‌رسانی ماجولار با توانهای خیلی طولانی دارد:
امضاء، متن اصلی را با استÙاده از کلید اختصاصی رمز می‌کند؛
رمزگشایی عملیات مشابه‌ای روی متن رمزشده اما با استÙاده از کلید عمومی است. برای تایید امضاء بررسی می‌کنیم Ú©Ù‡ آیا این نتیجه با دیتای اولیه یکسان است؛ اگر اینگونه است، امضاء توسط کلید اختصاصی متناظر رمزشده است.
به بیان ساده‌تر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی Ùˆ همان متن اما رمز شده توسط کلید اختصاصی همان شخص است. Øال اگر متن رمزشده توسط کلید عمومی آن شخص Ú©Ù‡ شما از آن مطلعید رمزگشایی شود، مطابقت متن Øاصل Ùˆ متن اصلی نشاندهنده صØت Ùرد Ùرستنده آن است، به این ترتیب امضای Ùرد تصدیق می‌شود. اÙرادی Ú©Ù‡ از کلید اختصاصی این Ùرد اطلاع ندارند قادر به ایجاد متن رمز‌شده‌ نیستند بطوریکه با رمزگشایی توسط کلید عمومی این Ùرد به متن اولیه تبدیل شود.
اساس سیستم RSA این Ùرمول است: X = Yk (mod r)
Ú©Ù‡ X متن کد شده، Y متن اصلی، k کلید اختصاصی Ùˆ r Øاصلضرب دو عدد اولیه بزرگ است Ú©Ù‡ با دقت انتخاب شده‌اند. برای اطلاع از جزئیات بیشتر می‌توان به مراجعی Ú©Ù‡ در این زمینه وجود دارد رجوع کرد. این Ø´Ú©Ù„ Ù…Øاسبات روی پردازنده‌های بایتی بخصوص روی Û¸ بیتی‌ها Ú©Ù‡ در کارتهای هوشمند استÙاده می‌شود بسیار کند است. بنابراین، اگرچه RSA هم تصدیق هویت Ùˆ هم رمزنگاری را ممکن می‌سازد، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارتهای هوشمند استÙاده می‌شود Ùˆ برای نشاندادن عدم تغییر پیام در طول ارسال Ùˆ رمزنگاری کلیدهای آتی استÙاده می‌شود.
سایر سیستمهای کلید نامتقارن شامل سیستمهای لگاریتم گسسته می‌شوند مانند Diffie-HellmanØŒ ElGamal Ùˆ سایر طرØهای چندجمله‌ای Ùˆ منØنی‌های بیضوی. بسیاری از این طرØها عملکردهای یک‌ـ‌طرÙه‌ای دارند Ú©Ù‡ اجازه تاییدهویت را می‌دهند اما رمزنگاری ندارند. یک رقیب جدیدتر الگوریتم RPK‌ ‌ ‌ است Ú©Ù‡ از یک تولیدکننده مرکب برای تنظیم ترکیبی از کلیدها با مشخصات مورد نیاز استÙاده می‌کند. RPK یک پروسه دو مرØله‌ای است: بعد از Ùاز آماده‌سازی در رمزنگاری Ùˆ رمزگشایی (برای یک Ø·Ø±Ø Ú©Ù„ÛŒØ¯ عمومی) رشته‌هایی از دیتا بطور استثنایی کاراست Ùˆ می‌تواند براØتی در سخت‌اÙزارهای رایج پیاده‌سازی شود. بنابراین بخوبی با رمزنگاری Ùˆ تصدیق‌هویت در ارتباطات سازگار است.
طولهای کلیدها برای این طرØهای جایگزین بسیار کوتاهتر از کلیدهای مورد استÙاده در RSA‌ ‌ ‌ است Ú©Ù‡ آنها برای استÙاده در چیپ‌کارتها مناسب‌تر است. اما ‌RSA‌ ‌ ‌ Ù…ØÚ©ÛŒ برای ارزیابی سایر الگوریتمها باقی مانده است؛ Øضور Ùˆ بقای نزدیک به سه‌دهه از این الگوریتم، تضمینی در برابر ضعÙهای عمده بشمار می‌رود.