تاریخچه رمزنگاری و ارزهای دیجیتال
در رمزنگاری، وجود اطلاعات یا فرستادن پیام به هیچ وجه پنهان نیست، بلکه ذخیره اطلاعات یا فرستاده پیام مشخص است، اما تنها افراد مورد نظر میتوانند اطلاعات اصلی را بازیابی کنند. بالعکس در پنهاننگاری، اصل وجود اطلاعات یا فرستاده پیام محرمانه، پنهان نگاه داشته میشود و غیر از طرف فرستنده و طرف دریافتکننده کسی از فرستاده پیام آگاه نمیشود.
در رمزنگاری محتویات یک متن به صورت حرف به حرف و در بعضی موارد بیت به بیت تغییر داده میشود و هدف تغییر محتوای متن است نه تغییر ساختار زبانشناختی آن. در مقابل، کدگذاری تبدیلی است که واژهای را با یک واژه یا نماد دیگر جایگزین میکند و ساختار زبانشناختی متن را تغییر میدهد.
ریشهٔ واژهٔ Cryptography برگرفته از یونانی به معنای «پنهان نوشتن متون» است. رمزنگاری پیشینهٔ طولانی و درخشان دارد که به هزاران سال پیش برمیگردد. کارشناسان رمزنگاری بین رمز و کد تمایز قائل میشوند. رمز عبارت است از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آن که به محتویات زبان شناختی آن پیام توجه شود. در مقابل، کد تبدیلی است که واژهای را با یک واژه یا علامت دیگر جایگزین میکند. امروزه از کدها استفادهٔ چندانی نمیشود اگر چه استفاده از آن پیشینهٔ طولانی و پرسابقهای دارد. موفقترین کدهایی که تاکنون نوشته شده ابداع شدهاند توسط ارتش ایالات متحده و در خلال جنگ جهانی دوم در اقیانوس آرام بکار گرفته شد.
اصول ششگانه کرشُهف
آگوست کرشهف شهرت خود را از پژوهشهای زبانشناسی و کتابهایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد. او در سال ۱۸۸۳ دو مقاله با عنوان «رمزنگاری نظامی» منتشر کرد. در این دو مقاله، شش اصل پایهای وجود داشتند که اصل دوم آن به عنوان یکی از قوانین رمزنگاری هنوز هم مورد استفاده دانشمندان رمزنگاری پیشرفتهاست:
سامانه رمزنگاری نه فقط از دید تئوری بلکه در عمل هم باید غیرقابل شکستن باشد.
سامانه رمزنگاری نباید هیچ نکته پنهان و محرمانهای داشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
کلید رمز باید به گونهای انتخابپذیر شود که ۱) بتوان به سادگی آن را عوض کرد و ۲) بتوان آن را به یاد سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
متون رمزنگاری باید از طریق خطوط تلگراف مخابرهپذیرذیر باشند.
دستگاه رمزنگاری یا اسناد رمزگذاریشده باید توسط یک تن قابل حمل و نقل باشد.
سامانه رمزنگاری باید به آسانی راهاندازیپذیر باشد.
به چند دلیل عمده کلید رمز باید تنها اطلاعات محرمانه در یک سامانه رمزنگاری باشد:
محرمانه نگه داشتن یک رشته بیت ۵۱۲ تایی (بهطور معمول) بسیار سادهتر و عملی تر از محرمانه نگه داشتن یک الگوریتم یا روش پیادهسازی است.
اگر کلید رمز افشا شود تنها با اتخاذ یک کلید تازه میتوان دوباره به یک سامانه رمزنگاری تازه و امن دست پیدا کرد در صورتیکه اگر امنیت سامانه رمزنگاری وابسته به الگوریتم و روش پیادهسازی باشد با افشای این اطلاعات بازتولید یک سامانه رمزنگاری تازه و امن بسیار دشوار خواهد بود.
وقتی که کلید رمز تنها اطلاعات محرمانه یک سامانه رمزنگاری باشد میتوان از یک سامانه مشترک (با کلیدهای متفاوت) برای ارتباط با گیرنده/فرستندههای گوناگون استفاده کرد در صورتی که اگر غیر از این میبود برای ارتباط با هر فرستنده/گیرنده به یک الگوریتم و روش پیادهسازی تازه نیاز میبود.
وقتی که الگوریتم و روش پیادهسازی برای همگان دردسترس باشد مشکلات و حفرههای امنیتی الگوریتم پیش از آنکه توسط یک حمله گر مورد سوء استفاده قرار بگیرد توسط محققان امنیتی مورد بررسی قرار گرفته و رفع میشود و بنابراین سامانههای رمزنگاری که بر پایه الگوریتمهای روشن و در دسترس عمل میکنند معمولاً اعتمادپذیرتر هستند.[۲]
رمزنگاری پیشرفته
با پدید آمدن رایانهها و افزایش توان رایانشی آنها، دانش رمزنگاری وارد زمینه علوم رایانه شد و این پدیده، موجب بروز سه تغییر مهم در مسائل رمزنگاری شد:
وجود توان رایانشی بالا این امکان را پدیدآورد که روشهای پیچیدهتر و کاراتری برای رمزنگاری به وجود آید.
روشهای رمزنگاری که تا پیش از آن اصولاً برای رمزکردن پیام به کار میرفتند، کاربردهای تازه و زیادی پیدا کردند.
تا پیش از آن، رمزنگاری عمدتاً روی اطلاعات متنی و با استفاده از حروف الفبا انجام میگرفت؛ اما ورود رایانه باعث شد که رمزنگاری روی انواع اطلاعات و بر مبنای بیت انجام شود.
تعاریف و اصطلاحات
عناصر مهمی که در رمزنگاری مورد استفاده قرار میگیرند به شرح زیر است:
متن آشکار: پیام و اطلاعات را در حالت اصلی و پیش از تبدیل شدن به حالت رمز، متن آشکار یا اختصاراً پیام مینامند. در این حالت اطلاعات برای انسان فهمپذیر است.
متن رمز: به پیام و اطلاعات پس از تبدیل شدن به حالت رمز، گفته میشود. اطلاعات رمزگذاریشده برای انسان فهمپذیر نیست.
رمزگذاری (رمزکردن): عملیاتی است که با استفاده از کلید رمز، پیام را به رمز تبدیل میکند.
رمزگشایی (بازکردن رمز): عملیاتی است که با استفاده از کلید رمز، پیام رمزگذاریشده را به پیام اصلی بازمیگرداند. از دید ریاضی، این الگوریتم عکس الگوریتم رمزکردن است.
کلید رمز: اطلاعاتی معمولاً عددی است که به عنوان پارامتر ورودی به الگوریتم رمز در نظر گرفته میشود و عملیات رمزگذاری و رمزگشایی با استفاده از آن انجام میگیرد. انواع گوناگونی از کلیدهای رمز در رمزنگاری تعریف و استفاده میشود.
کاربردهای رمزنگاری
پیش از ورود رایانهها به زمینه رمزنگاری، تقریباً کاربرد رمزنگاری محدود به رمزکردن پیام و پنهان کردن مفاد آن میشدهاست. اما در رمزنگاری پیشرفته سرویسهای گوناگونی از جمله موارد زیر ارائه شدهاست:
حفظ محرمانگی یا امنیت محتوا∗: فرستاده یا ذخیره اطلاعات به نحوی که تنها افراد مجاز بتوانند از محتوای آن مطلع شوند، که همان سرویس اصلی و اولیهٔ پنهان کردن مفاد پیام است.
حفظ صحت دادهها یا سلامت محتوا ∗: به معنای ایجاد اطمینان از صحت اطلاعات و عدم تغییر محتوای اولیهٔ آن در حین فرستادهاست. تغییر محتوای اولیهٔ اطلاعات ممکن است به صورت اتفاقی (در اثر مشکلات مسیر ارسال) یا به صورت عمدی باشد.
احراز هویت یا اصالت سنجی محتوا∗: به معنای تشخیص و ایجاد اطمینان از هویت فرستنده اطلاعات و عدم امکان جعل هویت افراد است.
عدم انکار∗: به این معنی است که فرستندهٔ اطلاعات نتواند در آینده فرستاده آن را انکار یا مفاد آن را تکذیب نماید.
چهار مورد بالا، کاربردهای اصلی رمزنگاری تلقی میشوند و دیگر اهداف و کاربردهای رمزنگاری، با ترکیب چهار مورد بالا قابل حصول هستند.
این کاربردها مفاهیم جامعی هستند و میتوانند برای کاربردهای گوناگون پیادهسازی و استفاده شوند. برای نمونه سرویس اصالت محتوا هم در معاملات تجاری اهمیت دارد و هم در مسائل نظامی و سیاسی مورد استفاده قرار میگیرد. برای ارائه کردن هر یک از سرویسهای رمزنگاری، بسته به نوع کاربرد، از پروتکلهای گوناگون رمزنگاری استفاده میشود.
منبع: تاریخچه رمزنگاری