الگوریتم های رمز نگاری Cryptographics

۱- معرفی و اصطلاحات رمزنگاری علم کدها ورمزهاست. یک هنر قدیمی است و برای قرنها بمنظور محافظت از پیغامهایی که بینفرماندهان، جاسوسان،* عشاق و دیگران ردوبدل می*شده، استفاده شده است تا پیغامهای آنها محرمانه بماند.

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

اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده شود که پیغام برایآنها ارسال شده است و دیگران این اجازه را ندارند. روشی که تامین کننده این مساله باشد “رمزنگاری” نام دارد. رمزنگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر ازدریافت کننده موردنظر نتواند محتوای پیغام را بخواند.

رمزنگاری مخفف*ها واصطلاحات مخصوص به خود را دارد. برای درک عمیق تر به مقداری از دانش ریاضیات نیازاست. برای محافظت از دیتای اصلی ( که بعنوان 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* * * محکی برای ارزیابی سایر الگوریتمها باقی مانده است؛حضور و بقای نزدیک به سه*دهه از این الگوریتم، تضمینی در برابر ضعفهای عمده بشمارمی*رود.

نظر بگذاريد