مقاله کامل الگوريتم رمز گذاري

مقاله کامل الگوريتم رمز گذاري

مقدمه
رمزنگاری علم کدها و رمزهاست. یک هنر قدیمی استو برای قرنها بمنظورمحافظت از پیغامهایی که بین فرماندهان؛جاسوسان، عشاق و دیگران رد وبدل می شده،استفاده شده است تا پیغامهای آنها محرمانه بماند. به عبارت دیگر می توان گفت و رمزنگاری از دیر باز به عنوان یک ضرورت برای حفاظت از اطلاعات خصوصی در مقابل دسترسی های غیر مجاز در تجارت و سیاست و مسایل نظامی وجود داشته است. به طور مثال تلاش برای ارسال یک پیام سری بین دو هم پیمان به گونه ای که حتی اگر توسط دشمن دریافت شود قابل درک نباشد ، در رم نیز دیذه شده است. هنگامی که با امنیت دیتا سرو کار داریم ، نیاز به اثبات هویت فرستنده و گیرنده پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم. این سه موضوع یعنی محرمانگی ، تصدیق هویت و جامعیت در قلب امنیت ارتباطات دیتای مردن قرار دارندو می توانند از رمز نگاری استفاده کنند.
اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده شودکه پیغام برای آنها ارسال شده است و دیگران ابن اجازه را ندارند. روشی که تامین کننده این مساله باشد”رمزنگاری” نام دارد. رمز نگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده مورد نظر نتواند محتوای پیغام را بخواند.
رمزنگاری مخفف ها و اصطلاحات مخصوص به خود را دارد. برای درک عمیق تر بهمقداری از دانش ریاضیات نیاز است. برای محافظت از دیتای اصلی ( که بعنوان plaintext شناخته می شود)،آنرا با استفاده از یک کلید ( رشته ای محدود از بیتها )بصورت رمز در می آوریم تا کسی که دیتای حاصله را می خواند قادر به در ک آن نباشد.
دیتای رمز شده ( که بعنوان ciphertext شناخته می شود) بصورت یک سری بی معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می رسد. برای حصول متن اولیه دریافت کننده آنرا رمز گشایی می کند. یک شخص ثالث (مثلا یک هکر) می تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد،کشف رمز نوشته(cryptanalysis)کند. بخاطر داشتن وجود این شخص ثالث بسیار مهم است. رمز نگاری دو جزء اصلی دارد، یک الگوریتم یک مبدل یا فرمول ریاضی است. تعداد کمی الگوریتم قدرتمن وجود دارد که بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده اند. کلید یک رشته از ارقام دودویی(صفر و یک )است که بخودی خود بی معنی است.
دیتای اویله اغلب قبل از رمز شدن بازچینی می شود، این عمل عموما بعنوان scrambling شناخته می شود. بصورت مشخص تر ، hash function ها بلوکی از دیتا را که ( که می تواند هر اندازه ای داشته باشد) به طول از پیش مشخص شده کاهش می دهد. البته دیتای
اولیه نمی تواند از hashed value بازسازی شود. hash function ها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه ای از پیغام (شامل مهم ترین قسمتها مانند شماره پیام ، تاریخ و ساعت، و نواحی مهم دیتا ) قبل از رمز نگاریخود پیام ،ساخته و hash می شود. یک چک تایید پیام (Message Authentication Check) یاMAC یک الگوریتم ثابت با تولید یک امضاء بر روی پیام با استفاده از یک کلید است. هدف آن نشان دادن این مطلب است که پیام بین ارسال و دریافت تغییر نکرده است . هنگامی که رمز نگاری توسط کلید عمومی برای تایید هویت فرستنده پیام استفاده می شود، منجر به ایجاد امضای دیچتال(digital signature) می شود. طراحی الگوریتمهای رمزنگاری مقوله ای برای متخصصان ریاضی است. طراحان سیستمهایی که در آنها از رمز نگاری استفاده می شود، باید از نقاط قوت و ضعف الگوریتمهای موجود مطلع باشندو برای تعییین الگوریتم مناسب قدرت تصمیم گیری داشته باشند. با وجود کثرت تعداد الگوریتمهای موجود، الگوریتمهای کمی هنوز با گذشت زمان ارزش خود را حفظ کرده اند. بنابراین تعداد الگوریتمهای استفاده شده در سیستمهای کامپیوتری عملی و در سیستمهای بر پایه کارت هوشمند بسیار کم است. از آنجا که بحث و بررسی در خصوص امضای دیجیتال بدون نگاهی هر چند
کوتاه بر رمز نگاری و سیستم ها و الگوریتمها ی مختلف مرتبط با آن غیر ممکن به نظر می رسد.
تاریخچه رمزنگاری و امضای دیجیتال
رمزنگاری ، علم رمزخارج کردن اطلاعات به سالهای 1900 پیش از میلاد بر می گردد؛زمانیکه یکی از کاتبین در مصر با اقتباس از علم تصاویر و مفاهیم آنها در آن دوره توانست پیامهای ارتباطی خود را ایجاد کند. افراد قابل ذکر بسیاری هستند که می توان در تحول علم رمزنگاری از آنها نام برد.برای مثال Julius Caesar (100-44 پیش از میلاد) از یک چایگزینی ساده در حروف الفبا استفاده کرد( تنها حرو ف را تعداد ثابتی جایجا می کرد) و در ارتباطات دولتی و نظامی برای انتقال پیام های محرمانه به ژنرال های خود از این سیستم ابداعی استفاده می کرد.
بعدها Francis Bacon در 1623 روش رمز کردنی را که امروزه نام خود وی بر روی آن است را مورد بحث و بررسی قرار داد. یک روش کد کردن 2 حرفی که امروزه تحت عنوان رمزنگاری باینری5 بیتی شناخته می شود. بعدها خود وی این روش را به عنوان یک وسیله استگانوگرافی توسعه داد.
Thomas Jeffersin در دهه ی 1790 روش رمز کردن چرخشی ای را ارائه داد که در جنگ جهانی دوتوسط ارتش آمریکا مورد استفاده قرار می گرفت. در اواخر دهه 1920 واوایل دهه 1930، FBI گروهی را تشکیل داد تا به
بررسی استفاده از رمزنگاری توسط مجرمین بپردازند. در دهه 1970 دکتر Horst Feistel روش رمزنگاری Feistel را ارائه داد که به عنوان مقدمه ای بر DES3 امروزی شناخته می شود. در سپتامبر 1977 Riverst Shamir و Adleman رمزنگاری جهانی RSA خود را معرفی کردند که قابل اعمال بر رمزنگاری کلید عمومی و امضای دیجیتال می باشد. در سال 1990 ابداعی که توسط Xuejia Lai و James Massey انجام شد، یک رمزنگاری128 بیتی خیلی قویتر را جایگزین استاندارد DES قدیمی کرد. در رو یارویی با افزایش رمزنگاری ، مجددا FBI تلاش خود برای دسترسی به پیا مهای ساکنین آمریکا را آغاز کرد. در پاسخ Phil Zimmerman اولین نسخه ازPGP را در سال 1991 به عنوان یک محصول رایگان ارائه که از الگوریتم IDEA استفاده می کند.PGP ، این برنامه رایگان که الگوریتمهای در رده ی نظامی را بر روی اینترنت ارائه می دهد ، به علت چنین کاربرد گستره ای به استاندارد کریپتوگرافی تبدیل شد. در سال 1994 پروفسورRon Riverst که یکی از ابداع کنندگان رمزنگاری RSA بود یک الگوریتم جدید با نام RC5 را بر روی اینترنت ارائه داد که با وجودیکه قویتر از RC5 می باشد، هنوز بعد از گذشت یک دهه نتوانسته جایگزین DES و RSA شود.
2-1- سیستمهای کلید متقارن
یک الگوریتم متقارن از یک کلید برای رمزنگاری و رمزگشایی استفاده میکنند. بیشترین شکل استفاده از رمزنگاری که در کارتهای هوشمند و البته در بیشتر سیستمهای امنیت اطلاعات وجود داردdata encryption algorithm یا DEA است که بیشتر بعنوان DES محصول دولت ایالات متحده است که امروزه بطور وسیعی بعنوان یک استاندارد بین المللی شتاخته می شود. بلوکهای 64 بیتی دیتا توسط یک کلید تنها که معمولا 56 بیتی طول دارد، رمزنگاری و رمزگشایی می شوند. DES از نظر محاسباتی ساده است و براحتی می تواند توسط پردازنده های کند ( بخصوص آناهایی که در کارتهای هوشند وجود دارند) انجام گیرد. این روش بستگی به مخفی بودن کلید دارد. بنابراین برای استفاده در دو موقعیت مناسب است: هنگامی که کلید ها می توانند به یک روش قابل اعتماد و امن توزیع و ذخیره شوند یا جایی که کلید بین دو سیستم مبادله می شوند که قبلا هویت یکدیگر را تایید کرده اند عمر کلیدها بیشتر از مدت تراکنش طول نمی کشد . رمزنگاری DES عموما برای حفاظت دیتااز شنود در طول انتقال استفاده می شود. کلیدهای DES 40 بیتی امروزه در عرض چندین ساعت توسط کامپیوترهای معمولی شکسته می شوند و بنابراین برای محافظت از اطلاعات مهم و با مدت طولانی اعتبار استفاده شود. کلید 56 بیتی توسط سخت افزار یا شبکه های بخصوصی شکسته می شوند. رمزنگاری DES سه تایی عبارت است
از کد کردن با استفاده از الگوریمت DES که در سه مرتبه انجام می گیرد. (دو مرتبه با استفاده از یک کلید به سمت جلو(رمزنگاری) و یک مرتبه به سمت عقب(رمزگشایی)با یک کلید دیگر این عمل تاثیر د وبرابر کردن طول موثر کلید را دارد و عاملی مهم در قدرت رمز کنندگی است. الگوریتمهای استاندارد جدیدتر مختلفی پیشنهاد شده اند. الگوریتمهایی مانند Blowfish و IDEA برای زمانی مورد استفاده قرار گرفته اند اما هیچکدام پیاده سازی سخت افزاری نشدند بنابراین بعنوان رقیبی برای DES برای استفاده در کاربردهای میکروکنترلی مطرح نبوده اند. پروژه استاندارد رمزنگاری پیشرفته دولتی ایالات متحده (AES) الگوریتم Rijndael را برای جایگزیتی DES بعنوان الگوریمتم رمزنگاری اولیه انتخاب کرده است . الگوریتم Twofish مشخصا برای پیاده سازی در پردازنده های توان – پایین مثلا در کارتهای هوشمند طراحی شد. در 1998 وزرات دفاع ایالات متحده تصمیم گرفت که الگوریتمها Skipjack و مبادله کلید را که در کارتهای Fortezza استفاده شده بود، از محرمانگی خارج سازد. یکی از دلایل این امر تشویق برای پیاده سازی بیشتر کارتهای هوشمند بر پایه این الگوریتمها بود. برای رمزنگاری جریانی (streaming encryption)(که رمزنگاری دیتا در حین ارسال صورت می گیرد بحای اینکه دیتای کد شده در یک فایل مجزا قرار گیرد ) الگوریتم RC4 سرعت بالا و دامنه
ای از طول کلید ها از 40 تا 256 بیت فراهم می کند .RC4 که متعلق به امنیت دیتای RSA است ، بصورت عادی برای رمزنگاری ارتباطات دو طرفه امن در اینترنت استفاده می شود. در ادامه تعدادی از الگوریمتهای رایج کلید متقارن و اندازه کلید آنها را ملاحظه می کنیم:
3-1-سیستمهای کلید نا متقارن
سیستمهای کلید نا متقارن از کلیدهای مختلفی برای رمزنگاری و رمز گشایی استفاده می کنند. بسیاری از سیستمها اجازه می دهند که یک جزء ( کلید عمومی یا public key)منتشر شود در حالیکه دیگری ( کلید اختصاصی یا private key ) توسط صاحبش حفظ شود. فرستنده پیام ، متن را با کلید عمومی گیرنده کد میکنند و گیرنده آن را با کلید اختصاصی خودش رمز نگاری می کند. بعباراتی تنها با کلید اختصاصی گیرنده می توان متن کد شده را به متن اولیه صحیح تبدیل کرد .یعنی حتی فرستنده نیز اگر چه محتوای اصلی پیام مطلع است اما نمی توانند از متن کد شده به متن اصلی دست یابد بنابراین پیام کد شده برای هر گیرنده ای بجز گیرنده مورد نظر فرستنده بی معنی خواهد بود. معمولترین سیستم نا متقارن بعنوان RSA شناخته می شود. ( حروف اول پدید آورندگان آن یعنی Rivest،Shamir وAdlemen است. ) اگر چه چندین طرح دیگر وجود دارند .می توان از یک سیستم نا متقارن برای نشان دادن اینکه فرستنده پیام همان شخصی است که
ادعا میکنند استفاده کرد که این عمل اصطلاحا امضاء نام دارد. RSA شامل دو تبدیل است که هر کدام احتیاج به بتوان رسانی ماژولار با توانهای خیلی طولانی دارد:
– امضاء متن اصلی را با استفاده از کلید اختصاصی رمز میکنند؛
– رمزگشایی عملیات مشابه ای روی متن رمز شده اما با استفاده از کلید عمومی است. برای تایید امضاء بررسی می کنیم که آیا این نتیجه با دیتای اولیه یکسان ، اگر اینگونه است ، امضاء توسط کلید اختصاصی متناظر رمز شده است.
به بیان ساده تر چنانچه متنی از شخصی برای دیگران منتشر شود، این متن شامل متن اصلی و همان متن اما رمز شده توسط کلید اختصاصی هما ن شخص است . حال اگر متن رمز شده توسط کلید عمومی آن شخص که شما از آن مطلع هستید رمز گشایی شود، مطابقت متن حاصل و متن اصلی نشان دهنده ی صحت فرد فرستنده آن است ، به این ترتیب امضای فرد تصدیق می شود.افرادی که از کلید اختصاصی این فرد اطلاع ندارند قادر به ایجاد متن رمز شده نیستند بطوریکه با رمز گشایی توسط کلید عمومی این فرد به متن اولیه تبدیل شود.
اساس سیستم RSA این فرمول است:
که X متن کد شده ، Yمتن اصلی ، K کلید اختصاصی و R حاصل ضرب دو عدد اولیه بزرگ است که با دقت انتخاب شده اند. در پیاده سازی این پروژه نیز از
سیستم RSA استفاده شده و در فصل های بعدی به توضیح بیشتر در خصوص این الگوریمت پرداخته شده است. در این شکل محاسبات روی پردازنده های بایتی بخصوص روی 8 بیتی های که در کارتها ی هوشمند استفاده می شود بسیار کند است است. بنابراین ، اگر چه RSA هم تصدیق هویت و هم رمزنگاری راممکن می سازد ، در اصل برای تایید هویت منبع پیام از این الگوریتم در کارتهای هوشمند استفاده می شود و برای نشان دادن عدم تغییر پیام در طول ارسال و رمزنگاری کلیدهای آتی می شود. سایر سیستمهای کلید نا متقارن شامل سیستمهای لگاریتم گسسته می شوند مانند:
Elgamal Diffie – Hellman و سایر طرحهای چند جمله ای و منحنی های بیضوی بسیاری از این طرحها عملکرد ای یک طرفه ای دارند که اجازه تایید هویت را می دهند اما رمزنگاری ندارند. یک رقیب جدیدتر در این زمینه الگوریتم RPK است که از یک تولیدکننده مرکب برای تنظیم ترکیبی از کلید ها با مشخصات مورد نیاز استفاده می کند. RPK یک پروسه دو مرحله ای است:
بعد از فاز آماده سازی در رمزنگاری و رمزگشایی (برای یک طرح کلید عمومی ) رشته هایی از دیتا استثنایی کاراست و می تواند براحتی در سخت افزارهای رایج پیاده سازی شود. بنابراین بخوبی با رمزنگاری و تصدیق هویت در ارتباط سازگار است.

فایل : 48 صفحه

فرمت : Word

29900 تومان – خرید
محصول مفیدی برای شما بود ؟ پس به اشتراک بگذارید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  • کاربر گرامی، در این وب سایت تا حد امکان سعی کرده ایم تمام مقالات را با نام پدیدآورندگان آن منتشر کنیم، لذا خواهشمندیم در صورتی که به هر دلیلی تمایلی به انتشار مقاله خود در ارتیکل فارسی را ندارید با ما در تماس باشید تا در اسرع وقت نسبت به پیگیری موضوع اقدام کنیم.

مقالات مرتبط