عکس پیش‌فرض نوشته

کلمه Cryptography (رمزنگاری) برگرفته از لغات یونانی به معنای “محرمانه نوشتن متون” است.

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

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

رمزنگاری اطلاعات

 

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

همچنین روش هایی برای امنیت اطلاعات در شبکه در لایه های فیزیکی و سایر لایه های شبکه بیان کردیم.

میدانید که در لایه پیوند داده ها (Data Link)، بسته های ارسالی بر روی خطوط نقطه به نقطه (Point To Point) قبل از خروج از دستگاه مبداء، رمزنگاری شده و به محض ورود به سیستم مقصد رمزگشایی میشوند.

 

متخصصین رمزنگاری بین رمز (Cipher) و کد (Code) تمایز قائل هستند.

رمز عبارت است از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آنکه به محتویات زبان شناختی (ادبیاتی) آن پیام توجه شود.

در مقابل، کد تبدیلی است که کلمه ای را با یک کلمه یا علامت (سمبول) جایگزین میکند.

امروزه از کدها استفاده چندانی نمیشود؛ اگرچه استفاده از آن بیشینه ای طولانی و پر سابقه دارند.

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

از دیدگاه تاریخ، چهار گروه از مردم در شکل گیری هنر رمزنگاری دخالت داشته اند:

– نظامیان (مهمترین نقش)

– هیئت های سیاسی

– خاطره نویسان و واقعه نگاران

– عاشقان

 

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

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

 

پیامی که باید رمزنگاری شود، “متن آشکار” (Plaintext) نامیده میشود و توسط یک تابع خاص با استفاده از پارامتری به نام “کلید” (Key) به متن رمز تبدیل میشود.

نتیجه پروسه رمزنگاری “متن رمز” (Ciphertext) نامیده شده و بر روی کانال ارتباطی منتقل میشود.

 

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

اخلالگر پیام به دو دسته تقسیم میشود:

1- اخلالگر غیر فعال (Passive Intruder) : اخلالگر غیر فعال توانایی شنود جریان اطلاعات فعال روی کانال های مخابراتی را دارد و نیز میتواند آنها را در جایی ثبت کرده و سر فرصت آنها را مکرراً به جریان بیاندازد.

2- اخلالگر فعال (Active Intruder) : اخلالگر فعال علاوه بر شنود و در اختیار گرفتن پیام میتواند پیام مطلوب خود را در قالب یک پیام مجاز جاسازی کرده و یا در آن تغییراتی ایجاد کند.

 

هنر شکستن رمز بدون در اختیار داشتن کلید آن، “علم تحلیل رمز” (CryptoAnalysis) نام دارد.

همچنین به هنر ابداع روش های رمزنگاری جدید، “علم رمزنگاری” (Cryptology) گفته میشود.

 

یکی از قواعد اصلی در علم رمزنگاری آن است که شخص باید فرض کند که دیگران از الگوریتم به کار رفته در عملیات رمزنگاری آگاه هستند؛ به عبارت دیگر شخص رمزشکن، روش رمزنگاری (به اصطلاح تابع E) و روش رمزگشایی (به اصطلاح تابع D) را میداند و آنچه مخفی است، کلید رمز (در اصطلاح K) است.

با توجه به مسئله بالا اهمیت وجود کلید رمز ملموس میشود.

کلید رمز یک رشته کاراکتری نسبتاً کوتاه است که پیام بر اساس آن رمز میشود.

بر خلاف آن که روش رمزنگاری ممکن است هر چند سال یکبار تغییر کند، کلید رمز میتواند بر طبق نیاز و مکرراً مورد تعویض و بازنگری قرار گیرد.

در نتیجه مدل پایه سیستم های رمزگاری، مدلی است پایدار (ثابت) که همه از عملکرد و الگوریتم آن مطلع هستند و فقط با یک کلید محرمانه و قابل تغییر کار میکند.

این نظریه که “تحلیلگر رمز” (رمزشکن یا  CryptaAnalist) از الگوریتم رمزنگاری آگاه است و سری ماندن یک پیام صرفا به مخفی ماندن کلید رمز وابسته است “اصل کِرکهُف” نامیده می شود که توسط یکی از رمزنگاران ارتش فلاندرز به نام Angust Kerckhoff در سال 1883 بیان شده است.

اصل کِرکهُف: تمام الگوریتم های رمزنگاری باید آشکار و عمومی باشند و تنها کلیدهای رمز، محرمانه خواهند بود.

 

از دیدگاه یک رمز شکن، مسئله کشف رمز به سه حالت بر میگردد:

1- رمز شکن فقط متن رمز شده را در اختیار داشته باشد. (صرفاً متن رمز شده یا Ciphertext Only)

2- رمز شکن بخشی از متن آشکار به همراه معادل رمز شده آن در اختیار داشته باشد. (متن آشکار و شناخته شده یا Knows Plaintext)

3- رمزشکن قادر باشد هر قسمت دلخواه از یک متن آشکار را رمز کند. (متن آشکار و انتخابی یا Chosen Plaintext)

 

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

 

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

1- روش رمزهای جانشینی (Substitution Cipher)

2- روش رمزهای جایگشتی (Transposition)

در مطالب بعدی هر دو روش فوق را به طور کامل آموزش داده و مورد بررسی قرار خواهیم داد.

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