www.mktop_.ir

چکیده

رمزنگاری در کارت‌های هوشمند نیازی است که به هیچ وجه قابل انکار نیست. اما از بین روش‌های مختلفی که در رمزنگاری وجود دارد کدامیک برای استفاده در کارت‌های هوشمند مناسب‌تر است؟ در این مقاله ابتدا به بررسی سخت افزار کارت‌های هوشمند پرداخته‌ایم و در نهایت به دلایل برتری استفاده از رمزنگاری خم‌های بیضوی در کارت‌های هوشمند اشاره کرده‌ایم.

رمز نگاری کارت هوشمند

 معماری کارت هوشمند

کارت‌های هوشمند در شکل‌های گوناگون وجود دارند. کارت‌های هوشمند از دیدگاه نحوه عملکرد به دو گروه کارت‌های حافظه دار و کارت‌های دارای پردازنده تقسیم می‌شوند. کارت‌های حافظه دار شامل حافظه غیر فرار [۱]EEPROM هستند. این حافظه همانند دیگر وسایل ذخیره اطلاعات دارای ساختار فایل بوده و دسترسی به اطلاعات آن معمولاً از طریق یک کد عددی به اسم پین[۲] ممکن است. چون این حافظه غیر فرار است پس از خارج کردن کارت از کارت خوان اطلاعات در کارت باقی می‌ماند. از آنجا که این کارت‌ها فاقد توان رمزنگاری هستند برای کاربردهایی که حساسیت زیادی ندارند به کار می‌روند. کارت‌های دارای پردازنده مشابه یک کامپیوتر کامل هستند. در این مقاله ما درباره کارت‌های دارای پردازنده صحبت می‌کنیم. اما از دیدگاه نحوه ارتباط با کارت خوان، کارت‌ها به دو گروه کارت‌های تماسی[۳] و کارت‌های بدون تماس[۴] تقسیم می‌شوند. دسته اول از روی شکل ظاهری تراشه طلایی رنگ کارت که قابل مشاهده است قابل تشخیص است اما در دسته دوم تراشه کارت می‌تواند درون کارت اعتباری یا کلید یا یک برچسب و … پنهان شده باشد. نمای بیرونی تراشه کارت در شکل آمده است:

اتصالات VCC و Ground الکتریسیته لازم را برای پردازنده از منبع خارجی تأمین می‌کنند. با استفاده از Reset همه پردازش‌های کارت از نو انجام می‌شوند. اتصال Clock سیگنال ساعت منبع خارجی را به پردازنده اعمال می‌کند تا پردازش‌های پردازنده هماهنگ شود. VPP ولتاژ لازم را برای برنامه نویسی EEPROM فراهم می‌کند و در پایان I/O یک کانال سریال دوطرفه را برای ارتباطات بین کارت هوشمند و پایانه های کنترل کارت فراهم می‌کند.

کارت‌های بدون تماس با استفاده از الکتریسیته حاصل از القای مغناطیسی توان لازم برای پردازش را به دست می‌آورند ودر شکل امده است.

رمز نگاری کارت هوشمند

کارت‌های هوشمند در هر شکلی که باشند کارکردشان در یک تراشه ساده فراهم می‌شود. بر خلاف تراشه های مشابه، تراشه کارت هوشمند در واقع یک کامپیوتر کامل است. شکل ۳ نمایی اولیه از تراشه کارت هوشمند است.

رمز نگاری کارت هوشمند

رمز نگاری کارت هوشمند

تراشه کارت هوشمند از اجزای زیر تشکیل شده است:

پردازنده مرکزی[۵] :قلب تراشه است که همه کار محاسباتی و مبادله داده‌ها توسط آن انجام می‌شود. بعضی وقت‌ها یک کمک پردازنده رمزنگاری هم وجود دارد..

بیشتر پردازنده های کارت با نوسان[۶] ساعت ۳٫۵۷ مگاهرتز کار می‌کنند.

مدار منطقی آزمایش[۷] :بخشی که فقط در طول فرآیند تولید کارت برای آزمایش مدارهای داخلی و جلوگیری از خطاهای خط تولید بکار می‌رود.

مدار منطقی امنیت[۸] :مداری که دائماً شرایط محیطی را که می‌توانند امنیت کارت را به خطر بیندازند بررسی می‌کند.

رابط ورود-خروج[۹] :با استفاده از پروتکل سریال دستورات خارجی را دریافت کرده و پاسخ‌ها را ارسال می‌کند.

حافظه فقط خواندنی[۱۰] :حافظه دائمی تراشه که شامل بخش‌هایی از سیستم عامل و برنامه های تست کارت است. اندازه این حافظه معمولاً ۳۲ کیلو بایت است.

حافظه با دسترسی تصادفی[۱۱] :حافظه موقت کارت است که برای ذخیره موقت داده‌ها مانند داد های هنگام مبادله اطلاعات، کلید جلسه[۱۲]، متغیرهای داخلی و داده های پشته بکار می‌رود. اندازه این حافظه معمولاً ۱ کیلو بایت است.

EEPROM:حافظه غیر فرار قابل به‌روزرسانی که برای ذخیره کردن داده های برنامه های کاربردی مانند کلیدها، پین‌ها، شماره تلفن‌ها و یا حتی سیستم عامل به کار می‌رود.

گذرگاه داده[۱۳] :یک کانال ارتباطی که همه داده‌ها بین اجزای مختلف تراشه از این کانال عبور می‌کنند.

معماری نرم افزار کارت هوشمند:

کارت‌های اولیه از یک مدل یکپارچه نرم افزاری استفاده می‌کردند که سیستم عامل و برنامه های کاربردی در هم تنیده شده بودند. کارت‌های جدیدتر از طراحی‌های پیمانه ای و جدا سازی وظایف برنامه‌ها از همدیگر بهره می‌برند. یک سیستم عامل متداول کارت هوشمند کارت جاوا[۱۴] نام دارد که از مفاهیم اثبات شده امنیتی زبان جاوا استفاده می‌کند. این سیستم عامل اجازه طراحی برنامه های انعطاف پذیر را می‌دهد. برنامه‌ها می‌توانند بعد از تولید کارت، کد نویسی شده و نصب شوند و حتی بعداً تغییر پیدا بکنند. البته در بعضی از انواع کارت‌ها به دلیل مسائل امنیتی امکان تغییر برنامه را بعد از ساخت کارت نمی‌دهند.

سیستم عامل‌های دیگری هم غیر از جاوا برای کارت‌های هوشمند ایجاد شده‌اند. از جمله می‌توان به MULTOS و ویندوز اشاره کرد. علاوه بر این رابطه‌ای برنامه نویسی[۱۵] که در طرف کارت هستند رابط‌هایی هم در طرف کارت خوان وجود دارند همانند OpenCard Framework و GlobalPlatform .

همه ارتباطات کارت با دنیای بیرون از طریق پردازنده و با مدیریت سیستم عامل انجام می‌شود. از آنجا که شرایط و مجوزهای دسترسی به کارت توسط سیستم عامل کنترل می‌شود در نتیجه سیستم عامل مسئول امنیت اطلاعات کارت است. با افزوده شدن رمزنگاری به کارت‌های هوشمند می‌بایست محاسبات پیچیده ریاضی در کارت‌ها انجام می‌شد لذا بخش‌های تسریع کننده [۱۶]رمزنگاری به پردازنده اضافه شده‌اند. این نوع از کارت‌ها به کارت‌های رمزی[۱۷] موسوم شده‌اند و گران‌تر از کارت‌های معمولی هستند. اگر چه اقدامات رمزنگاری می‌تواند به صورت سخت افزاری در کارت تعبیه شود اما همیشه برنامه ای نرم افزاری برای کنترل اجرا در حافظه ثابت یا غیر فرار کارت ذخیره شده است.

ساختار داده‌ها درون کارت به صورت تودرتو بوده و EEPROM همانند یک دیسک سخت اجازه ساخت پوشه و فایل برای ذخیره داده‌ها را به کاربر می‌دهد.

ترمینال‌ها یا همان کارت خوان‌ها از طریق دستوراتی با کارت هوشمند ارتباط برقرار می‌کنند. شکل ۴ یک ساختار برای دستور را نشان می‌دهد.

رمز نگاری کارت هوشمند

رمز نگاری کارت هوشمند

 ساختار دستور :دستورات از ۵ بایت رأس دستور و دنباله ای متغیر از داده‌ها تشکیل می‌شوند. CLA طبقه دستور و INS خود دستور را مشخص می‌کند. P1 و P2 پارامترهای دستور را مشخص می‌کنند و P3 طول داده های دستور یا طول پاسخ درخواستی را مشخص می‌کند.

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

تهدیدات امنیتی کارت‌های هوشمند:

به دلایل مختلف کارت‌های هوشمند اهدافی متداول برای مهاجمین هستند:

  • حملات موفق اجازه کلاه برداری را می‌دهند و با ارزش هستند.مهاجمین حرفه ای می‌توانند از این طریق کار و کاسبی خوبی برای خود راه بیندازند.

  • کارت‌های هوشمند ارزان هستند و به راحتی می‌توان آن‌ها را تهیه کرد. مهاجمین می‌توانند به راحتی نمونه‌هایی برای تمرین کردن تهیه کنند.

  • کارت‌های هوشمند به راحتی حمل می‌شوند و مهاجمین می‌توانند به راحتی آن‌ها را به منطقه عملیاتی خود منتقل کرده و شرایط را کنترل کنند.

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

حملات به ۳ گروه تقسیم می‌شوند:

  • حملات منطقی: این حملات از خطاهای محتمل در برنامه نویسی کارت بهره می‌برند.

  • حملات فیزیکی: این حملات با تجزیه و تحلیل سخت افزار کارت و تغییر یا کپی برداری کارت انجام می‌شوند.

  • جملات کانال جانبی[۱۸] : این حملات از آثار فیزیکی جانبی استفاده از کارت بهره برداری می‌کنند همانند برق مصرفی حین استفاده از کارت یا تشعشعات مغناطیسی و … .

رمزنگاری در کارت‌های هوشمند:

یکی از راه‌های افزایش امنیت کارت‌ها استفاده از رمزنگاری است. فایده این کار در این است که اگر مهاجمی به هر روش بتواند به داده های درون کارت یا داده‌ها هنگام مبادله با دستگاه‌های واسط دسترسی پیدا کند با اطلاعاتی نامشخص مواجه گردد. رمزنگاری به دو شاخه اصلی متقارن[۱۹] و نامتقارن تقسیم می‌شود. یکی از قوی‌ترین روش‌های رمزنگاری متقارن روش AES است. رمزنگاری در این روش را می‌توان به زیر بخش‌های ۸ بیتی تقسیم کرد که آن‌را مناسب استفاده در کارت‌های هوشمند می‌کند. اما روش‌های متقارن با چالش عمده ای به نام کلید مشترک روبه رو هستند. برای حل این مشکل می‌توان از روش مبادله کلید دیفی[۲۰]-هلمن[۲۱] استفاده کرد. اما راه حل‌های کارامدتری با عنوان روش‌های کلید عمومی[۲۲] وجود دارند. در این روش‌ها کلید رمزگذاری از کلید رمزگشایی جدا است در نتیجه نیازی به مبادله کلید مشترک وجود ندارد.

از میان روش‌های کلید عمومی دو روش RSA و روش خم‌های بیضوی متداول‌تر هستند که در ادامه به مقایسه بین این دو روش خواهیم پرداخت.

روش RSA مبتنی بر سختی تجزیه عدد به ریشه های اول آن است. اگر روزی روشی برای تجزیه اعداد به عوامل اول پیدا شود یا سرعت کامپیوترها برای پردازش افزایش یابد و بتوان روش جستجوی فراگیر را سریع‌تر انجام داد RSA به خطر خواهد افتاد. در مورد خم‌های بیضوی مجموعه ای نامتناهی از انواع خم‌های بیضوی را می‌توان برای رمزنگاری استفاده کرد. این امر شکستن رمز را در این روش بسیار مشکل می‌کند. طبق آزمایشات انجام شده مشخص گردیده است که روش خم‌های بیضوی با طول کلید ۱۶۰ بیت استحکامی برابر با روش RSA با طول کلید ۱۰۲۴ بیت دارد. علاوه بر این روش خم‌های بیضوی برای محاسبه نیاز به حافظه اضافی کمتری دارد.

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

Security access control

Security access control

روش‌های دیگر به دلیل نیاز بیشتر به انجام محاسبات معمولاًَ به پردازنده کمکی نیاز دارند که باعث افزایش هزینه تولید کارت می‌شود. روزانه میلیون‌ها کارت هوشمند تولید می‌شود که کاهش جزئی در هزینه تولید منجر به افزایش سوددهی برای تولیدکنندگان می‌شود.

تولید کلید کوتاه‌تر مزیت دیگری هم برای روش خم‌های بیضوی دارد. در بعضی از کاربردها نیاز به تولید کلید خصوصی تصادفی وجود دارد که در روش‌های دیگر تولید کلید کار دشواری است. اما در روش خم‌های بیضوی تولید کلید به آسانی امکان پذیر است و زمان زیادی برای تولید کلید لازم نیست.

فکر می‌کنم دلایل کافی برای استفاده از روش خم بیضوی بیان شد اما اکنون ببینیم کدام خم‌ها برای استفاده در کارت‌های هوشمند مناسب‌تر هستند؟

عموماًَ خم‌های بیضوی بر روی میدان‌های دودویی GF(2k) رجحان بیشتری نسبت به میدان اعداد اول GF(p) دارند. دلیل این امر این است که در میدان اعداد اول نیاز به محاسبات پیمانه ای وجود دارد که می‌تواند منجر به استفاده از پردازنده کمکی برای محاسبه شود. در نظر داشته باشید که پردازنده کمکی ۲۰ تا ۳۰ درصد بر هزینه تولید کارت می‌افزاید. در محاسبات بر روی خم‌های بیضوی در کارت‌های هوشمند بهتر است که از تکنیک‌های فشرده سازی نقاط واقع بر خم هم استفاده بشود. این کار نیاز به حافظه را باز هم کاهش می‌دهد.

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

 

مراجع

  1. David B Everett, Smart Card Tutorial

  2. Tolga KILIÇLI, Smart Card HOWTO, http://www.tldp.org

  3. István Zsolt BERTA and Zoltán Ádám MANN, IMPLEMENTING ELLIPTIC CURVE CRYPTOGRAPHY ON PC AND SMART CARD, PERIODICA POLYTECHNICA SER. EL. ENG. VOL. 46, NO. 1–۲, PP. 47–۷۳ (۲۰۰۲)

  4. Kamilah Abdullah, Comparison between the RSA cryptosystem and elliptic curve cryptography, A thesis for Master of Science at the University of Waikato

  5. AHMAD KHALED M. AL-KAYALI, Elliptic Curve Cryptography and Smart Cards

  6. Henna Pietilainen, Elliptic curve cryptography on smart cards

 

[۱] Electrically Erasable Programmable Read-Only Memory

[۲] PIN (Personal Identification Number)

[۳] Contact Card

[۴] Contact-less card

[۵] CPU

[۶] Frequency

[۷] Test Logic

[۸] Security Logic

[۹] I/O Interface

[۱۰] ROM

[۱۱] RAM

[۱۲] Session Key

[۱۳] Data Bus

[۱۴] Java Card

[۱۵] API

[۱۶] Accelerator

[۱۷] Crypto-Cards

[۱۸] Side Channel Attack

[۱۹] Symmetric

[۲۰] Diffie

[۲۱] Hellman

[۲۲] Public key

[/vc_column_text]

رمزنگاری

رمزنگاری دانشی است که به بررسی و شناختِ اصول و روش‌های انتقال یا ذخیرهٔ اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانال‌های ارتباطی یا محل ذخیره اطلاعات ناامن باشند) می‌پردازد.

رمزنگاری استفاده از تکنیکهای ریاضی، برای برقراری امنیت اطلاعات است. دراصل رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آن‌ها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند. دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شده‌است و امروزه به طور خاص در علم مخابرات مورد بررسی و استفاده قرار می‌گیرد. معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است.

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

در رمزنگاری محتویات یک متن به صورت حرف به حرف و در بعضی موارد بیت به بیت تغییر داده می‌شود و هدف تغییر محتوای متن است نه تغییر ساختار زبان‌شناختی آن. در مقابل کدگذاری تبدیلی است که کلمه‌ای را با یک کلمه یا نماد دیگر جایگزین می‌کند و ساختار زبان‌شناختی متن را تغییر می‌دهد.

ریشهٔ واژهٔ Cryptography برگرفته از یون

رمز نگاری

انی به معنای «محرمانه نوشتن متون» است. رمزنگاری پیشینهٔ طولانی ودرخشان دارد که به هزاران سال قبل برمی گردد. متخصصین رمزنگاری بین رمز وکد تمایز قائل می‌شوند. رمز عبارتست از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آن که به محتویات زبان شناختی آن پیام توجه شود. در طرف مقابل، کد تبدیلی است که کلمه‌ای را با یک کلمه یا علامت دیگر جایگزین می‌کند. امروزه از کدها استفادهٔ چندانی نمی‌شود اگر چه استفاده از آن پیشینهٔ طولانی و پرسابقه‌ای دارد. موفق‌ترین کدهایی که تاکنون نوشته شده ابداع شده‌اند توسط ارتش ایالات متحده و در خلال جنگ جهانی دوم در اقیانوس آرام بکار گرفته شد.

اصول ششگانه کرشُهف
آگوست کرشُهف شهرت خود را از پژوهشهای زبانشناسی و کتابهایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد. او در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته‌است:

    سیستم رمزنگاری اگر نه به لحاظ تئوری که در عمل غیرقابل شکست باشد.
    سیستم رمز نگاری باید هیچ نکته پنهان و محرمانه‌ای نداشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
    کلید رمز باید به گونه‌ای قابل انتخاب باشد که اولاً بتوان براحتی آن را عوض کرد و ثانیاً بتوان آنرا به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
    متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
    دستگاه رمز نگاری یا اسناد رمز شده باید توسط یکنفر قابل حمل و نقل باشد.
    سیستم رمزنگاری باید به سهولت قابل راه‌اندازی باشد.

در توضیح قانون دوم کرشهف باید عنوان کرد که به چند دلیل عمده کلید رمز باید تنها اطلاعات محرمانه در یک سیستم رمزنگاری باشد: ۱- محرمانه نگه داشتن یک رشته بیت ۵۱۲ تایی (به طور معمول) بسیار ساده تر و عملی تر از محرمانه نگه داشتن یک الگوریتم یا روش پیاده سازی است. ۲- اگر کلید رمز افشا شود تنها با اتخاذ یک کلید جدید می توان مجددا به یک سیستم رمزنگاری جدید و امن دست پیدا کرد در صورتیکه اگر امنیت سیستم رمزنگاری وابسته به الگوریتم و روش پیاده سازی باشد با افشای این اطلاعات بازتولید یک سیستم رمزنگاری جدید و امن بسیار دشوار خواهد بود.

۳- وقتی که کلید رمز تنها اطلاعات محرمانه یک سیستم رمزنگاری باشد می توان از یک سیستم مشترک (با کلیدهای متفاوت) برای ارتباط با گیرنده/فرستنده های مختلف استفاده کرد در صورتی که اگر غیر از این می بود برای ارتباط با هر فرستنده/گیرنده به یک الگورتیم و روش پیاده سازی جدید نیاز می بود. ۴- وقتی که الگوریتم و روش پیاده سازی برای همگان قابل دسترسی باشد مشکلات و سوراخ های امنیتی الگورتیم پیش از آنکه توسط یک حمله گر مورد سوء استفاده قرار بگیرد توسط محققان امنیتی مورد بررسی قرار گرفته و رفع می شود و بنابراین سیستم های رمزنگاری ای که بر اساس الگوریتم های روشن و قابل دسترسی عمل می کنند معمولا قابل اعتمادتر هستند.

رمزنگاری پیشرفته
با پدید آمدن رایانه‌ها و افزایش قدرت محاسباتی آنها، دانش رمزنگاری وارد حوزهٔ علوم رایانه گردید و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:

    وجود قدرت محاسباتی بالا این امکان را پدید آورد که روش‌های پیچیده‌تر و مؤثرتری برای رمزنگاری به وجود آید. روش‌های رمزنگاری که تا قبل از آن اصولاً برای رمز کردن پیام به کار می‌رفتند، کاربردهای جدید و متعددی پیدا کردند.
    تا قبل از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام می‌گرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.

تعاریف و اصطلاحات
عناصر مهمی که در رمزنگاری مورد استفاده قرار می‌گیرند به شرح زیر می‌باشد:

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

    متن رمز
    به پیام و اطلاعات بعد از درآمدن به حالت رمز، گفته می‌شود. اطلاعات رمز شده توسط انسان قابل فهم نیست.

    رمزگذاری (رمز کردن)
    عملیاتی است که با استفاده از کلید رمز، پیام را به رمز تبدیل می‌کند.

    رمزگشایی (بازکردن رمز)

    عملیاتی است که با استفاده از کلید رمز، پیام رمز شده را به پیام اصلی باز می‌گرداند. از نظر ریاضی، این الگوریتم عکس الگوریتم رمز کردن است.

    کلید رمز

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

به طور کلی، سرویس رمزنگاری، به قابلیت و امکانی اطلاق می‌شود که بر اساس فنون رمزنگاری حاصل می‌گردد. قبل از ورود رایانه‌ها به حوزهٔ رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمز کردن پیام و پنهان کردن مفاد آن می‌شده‌است. اما در رمزنگاری پیشرفته سرویس‌های مختلفی از جمله موارد زیر ارائه گردیده‌است:

    حفظ محرمانگی یا امنیت محتوا∗: ارسال یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیهٔ پنهان کردن مفاد پیام است.
    حفظ صحت داده‌ها یا سلامت محتوا
    به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیهٔ آن در حین ارسال است. تغییر محتوای اولیهٔ اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) و یا به صورت عمدی باشد.
    احراز هویت یا اصالت سنجی محتوا
    به معنای تشخیص و ایجاد اطمینان از هویت ارسال‌کننده اطلاعات و عدم امکان جعل هویت افراد می‌باشد.
    عدم انکار

    به این معنی است که ارسال‌کنندهٔ اطلاعات نتواند در آینده ارسال آن را انکار یا مفاد آن را تکذیب نماید.
چهار مورد بالا، سرویس‌های اصلی رمزنگاری تلقی می‌شوند و دیگر اهداف و سرویس‌های رمزنگاری، با ترکیب چهار مورد بالا قابل حصول می‌باشند.
این سرویس‌ها مفاهیم جامعی هستند و می‌توانند برای کاربردهای مختلف پیاده‌سازی و استفاده شوند. به عنوان مثال سرویس اصالت محتوا هم در معاملات تجاری اهمیت دارد و هم در مسائل نظامی و سیاسی مورد استفاده قرار می‌گیرد. برای ارائه کردن هر یک از سرویس‌های رمزنگاری، بسته به نوع کاربرد، از پروتکل‌های مختلف رمزنگاری استفاده می‌شود.

پروتکل رمزنگاری
به طور کلی، یک پروتکل رمزنگاری، مجموعه‌ای از قواعد و روابط ریاضی است که چگونگی ترکیب کردن الگوریتم‌های رمزنگاری و استفاده از آن‌ها به منظور ارائهٔ یک سرویس رمزنگاری خاص در یک کاربرد خاص را فراهم می‌سازد.

معمولاً یک پروتکل رمزنگاری مشخص می‌کند که

        اطلاعات موجود در چه قالبی باید قرار گیرند
        چه روشی برای تبدیل اطلاعات به عناصر ریاضی باید اجرا شود
        کدامیک از الگوریتم‌های رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
        روابط ریاضی چگونه به اطلاعات عددی اعمال شوند
        چه اطلاعاتی باید بین طرف ارسال‌کننده و دریافت‌کننده رد و بدل شود
        چه مکانیسم ارتباطی برای انتقال اطلاعات مورد نیاز است
به عنوان مثال می‌توان به پروتکل تبادل کلید دیفی-هلمن∗ برای ایجاد و تبادل کلید رمز مشترک بین دو طرف اشاره نمود.
الگوریتم رمزنگاری

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

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

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

بر مبنای تعریف فوق، توابع و الگوریتم‌های مورد استفاده در رمزنگاری به دسته‌های کلی زیر تقسیم می‌شوند:

    توابع بدون کلید
        توابع درهم‌ساز∗
        تبدیل‌های یک‌طرفه∗
    توابع مبتنی بر کلید
        الگوریتم‌های کلید متقارن
            الگوریتم‌های رمز قالبی
            الگوریتم‌های رمز دنباله‌ای
            توابع تصدیق پیام∗
        الگوریتم‌های کلید نامتقارن
            الگوریتم‌های مبتنی بر تجزیهٔ اعداد صحیح
            الگوریتم‌های مبتنی بر لگاریتم گسسته
            الگوریتم‌های مبتنی بر منحنی‌های بیضوی
        الگوریتم‌های امضای رقومی∗

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

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

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

رمزنگاری کلید نامتقارن∗، در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد. در این نوع از رمزنگاری، به جای یک کلید مشترک، از یک زوج کلید به نام‌های کلید عمومی و کلید خصوصی استفاده می‌شود. کلید خصوصی تنها در اختیار دارندهٔ آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیهٔ کسانی که با دارندهٔ آن در ارتباط هستند قرار داده می‌شود.

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

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

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

تجزیه و تحلیل رمز∗ یا شکستن رمز، به کلیهٔ اقدامات مبتنی بر اصول ریاضی و علمی اطلاق می‌گردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت بازکردن رمز و دستیابی به اطلاعات اصلی باشد. در تجزیه و تحلیل رمز، سعی می‌شود تا با بررسی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطلاعات جانبی موجود، ضعف‌های امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست آمده و یا محتوای اطلاعات رمز شده استخراج گردد.

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

تحلیل رمز، در اصل اشاره به بررسی ریاضی الگوریتم (یا پروتکل) و کشف ضعف‌های احتمالی آن دارد؛ اما در خیلی از موارد فعالیت خرابکارانه، به جای اصول و مبنای ریاضی، به بررسی یک پیاده‌سازی خاص آن الگوریتم (یا پروتکل) در یک کاربرد خاص می‌پردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز می‌نماید. به این دسته از اقدامات خرابکارانه، حملات جانبی∗ گفته می‌شود.
رمزهای جانشینی

در رمز نگاری جانشینی هر حرف یا گروهی از حروف بایک حرف یا گروهی دیگراز حروف جابجا می‌شوند تا شکل پیام بهم بریزد. یکی از قدیمی‌ترین رمزهای شناخته شده روش رمز نگاری سزار است که ابداع آن به ژولیوس سزار نسبت داده می‌شود. در این روش حرف a به d تبدیل می‌شود bبه c، e به fوبه همین ترتیب تاz که با حروفc جایگزین می‌شوند.
افزونگی

اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری «افزونگی»[داده‌های زائد]باشندبه عبارت دیگر لزومی ندارد که اطلاعات واقعی به همان گونه که هستند رمز و ارسال شوند. یک مثال می‌تواند به فهم دلیل این نیاز کمک کند. فرض کنید یک شرکت به نام TCP با۶۰۰۰۰کالااز طریق سیستم پست الکترونیکی سفارش خرید می‌پذیرد. برنامه نویسان شرکت TCP به خیال آن که برنامه‌های موثر و کار آمدی می‌نویسند پیامهای سفارش کالا را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت فیلد داده (شامل یک بایت برای تعدادکالا ودو بایت برای شمارهٔ کالا) در نظر می‌گیرد که سه بایت آخر توسط یک کلید بسیار طولانی رمزنگاری می‌شود واین کلید را فقط مشتری و شرکت TCP می‌داند.
تازگی پیامها

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

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

الگوریتم‌های رمزنگاری رامی توان هم به صورت سخت‌افزاری (به منظورسرعت بالاتر) وهم به صورت نرم‌افزاری (برای انعطاف‌پذیری بیشتر) پیاده‌سازی کرد روشهای جانشینی وجایگشتی می‌توانند با یک مدار سادهٔ الکترونیکی پیاده‌سازی شوند. p-box ابزاری است که برای جایگشت بیتهای یک ورودی هشت بیتی کاربرد دارد. بود با سیم بندی و برنامه ریزی درونی این p-box قادراست هر گونه جایگشت بیتی راعملاً با سرعتی نزدیک به سرعت نور انجام بدهد چرا که هیچ گونه محاسبه‌ای لازم نیست وفقط تأخیر انتشار سیگنال وجود دارد. این طراحی از اصل کرکهف تبعیت می‌کند یعنی:حمله کننده از روش عمومی جایگشت بیت‌ها مطلّع است آن چه که او از آن خبر ندارد آن است که کدام بیت به کدام بیت نگاشته می‌شود کلید رمز همین است.
برخی اصطلاحات

در لیست زیر با توجه به ارتباط مستقیم علم رمزنگاری یا همان Cryptography به برخی از اصطلاحات که در بحث امنیت شبکه و کامپیوتر وجود دارند اشاره شده‌است.
Encryption  در علم cryptography به پنهان سازی اطلاعات گفته می‌شود.
Decryption معکوس encryption است و در crypto به آشکار سازی اطلاعات پنهان شده گفته می‌شود. Plain text متن اولیه که رمز نشده است را plain text گویند Cipher به روشی برای تبدیل plain text به متنی که معنای آن پنهان باشد cipher گفته می‌شود.Cryptanalysis

 به هنر شکستن متون cipher شده گفته می‌شود.
Intruder

در لغت به معنای مزاحم است ولی در اینجا به معنای کسی است که یک کپی از cipher text دارد و تمایل به شکستن رمز دارد. منظور از شکستن رمز یعنی decrypt کردن آن متن که خود دو نوع است activeintruder که می‌تواند اطلاعات را روی خط عوض کند و تغییر دهد و passive intruder که فقط می‌تواند اطلاعات روی خط را داشته باشد و قابلیت تغییر آنها را ندارد.
Protocol

به روش و یا قرار دادی که بین دو یا چند نفر برای تبادل اطلاعات گذاشته می‌شود گفته می‌شود.
Intrusion Points

نقاطی که یک نفوذگر بتواند به اطلاعات با ارزش دست پیدا کند.
Internal Access Point

به سیستم‌هایی گویند که در اتاق یا در شبکه داخلی مستقرند و هیچ امنیتی (LocalSecurity) روی آنها تنظیم نشده باشد و احتمال حمله به آنها وجود دارد.
External Access Point

تجهیزاتی که ما را به شبکه خارجی مانند اینترنت متصل می‌کنند یا Applicationهایی که از طریق اینترنت کار می‌کنند و احتمال حمله به آنها وجود دارد.
Attack

هر چیزی که مکانیزم امنیت سیستم شما را دور زده و باعث تخریب گردد را حمله یا Attack گویند. از انواع حمله می‌توان به موارد زیر اشاره کرد:

    DoS
    DDoS
    Spoofing (مانند MAC Spoofing، IP Spoofing و Web Spoofing)
    Man-in-the-Middle
    Password Guessing

Key

به اطلاعاتی گفته می‌شود که با استفاده از آن بتوان cipher text (متنی که cipher شده) را به plain text تبدیل کرد.(یا برعکس) به عبارت ساده یک متن رمز شده توسط یک Key با الگوریتم مناسب، به متن ساده تبدیل می‌شود.

 برای دریافت pdf+word  کامل این مطلب بر روی کلیدزیر،کلیک نمایید . 

۴ دیدگاه. بیرون رفتن و ثبت نظرجدید

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با این شرایط موافقت کنید

1 + 5 =

فهرست