امروزه، بیشتر کارهای روزمره اعم از پرداخت قبوض، حواله، ارسال نامه و... را به طور الکترونیکی انجام میدهیم. بسیاری از کارهایمان آنلاین است، از ملاقات دوستان گرفته تا خرید و فروش کتات و مجله و ... به همین دلیل جمعآوری اطلاعات اغلب افراد از طریق اینترنت کاری بس ساده است.
یکی از قابلیتهای رمزنگاری مدرن یا همانCryptography ، این است که میتوان تقریبا تمام کارهای آنلاین را به صورت خصوصی انجام داد. بسیاری از افراد از جمله مولفین فرهنگ لغت، به اشتباه دو واژه Cryptography و Encryption را مترادف میپندارند، حال آنکه Encryption فقط به رمزنویسی و رمزنگاری میپردازد اما Cryptography حیطه بیشتری را در بر میگیرد و علاوه بر رمزنگاری اطلاعات، آنها را به طور مخفی در مجاری اینترنتی منتقل میسازد. این علم در برابر انواع رفتارهای مخرب، شیوههای ریاضی برای مراقبت از ارتباطات و کارهای کامپیوتری ارایه میدهد یا به عبارتی دیگر ابزاری برای محافظت از اطلاعات امنیتی و محرمانه ماست.
برای مثال تصور کنید تمامی اعضای یک گروه مرتبط اینترنتی میخواهند به کاری بپردازند که وابسته به دادههای تمامی آنهاست و هر کدام از آنها میخواهد دادهاش محرمانه بماند. این اطلاعات میتواند رأی آنها در یک نظرسنجی باشد. در این حالت آنها میخواهند به نتیجه رأی برسند بدون آنکه رأی اشخاص فاش شود. طی فرآیندی به نام محاسبه چند نفره یا Secure Function Evaluation معروف به پروتکل SFE این اشخاص قادر خواهند بود بدون آنکه رأی دیگران را ببینند، از نتیجه رأیگیری مطلع شوند.
روش کار SFE این گونه است که دادههای هر شرکت کننده به تکههایی تقسیم میشود و در بین دیگر افراد گروه پخش میشود. سپس هر یک از اعضا با اختیار خود روی این تکهها کار خواهد کرد و در نهایت تمامی اعضا تکهها را در کنار یکدیگر قرار داده و خروجی نهایی را به دست خواهند آورد. در این روش هیچیک از اعضای گروه با اطلاعات در دسترس خود نخواهد توانست اطلاعات دیگر اعضا را بازسازی کند. برای درک بهتر به شکل شماره 1 دقت کنید.
ا
• این سه
نفر میخواهند وزن کل خود را محاسبه کنند بدون آنکه وزنشان را در اختیار یکدیگر
بگذارند.
• هر
یک از این سه نفر 3 عدد بین 0 تا 1000 انتخاب میکند. دوتای این اعداد حدثی بوده
اما عدد سوم مجموع آنها را برابر وزن صحیح شخص در ظرف 1000 میکند. برای مثال نفر A
اعداد
250، 330 و 540 را بر میگزیند که جمع آنها 1120 میشود.
• سپس
هر یک از دو تا از اعدادشان را به دیگری میدهند.
• حال
هر یک عدد خود به همراه دو عدد دیگر دریافت شده از دیگر اعضا را در ظرف 1000 جمع
میکند.
• حال
مجموع حاصله را در اختیار یکدیگر قرار میدهند.
• اکنون
هر یک با جمع کردن 3 عدد دست خود، مجموع وزنها را محاسبه خواهد کرد، بدون آنکه
کسی وزن دیگری را متوجه شود.
به
هر حال اطلاع از این امر که کاری ساده همچون رأیگیری میتواند به طور ایمن در
اینترنت انجام شود، چندان تعجب برانگیز نخواهد بود. پروتکل SFE قابلیتهای زیادی
ارایه میدهد و هم کارآمد است و هم حریم شخصی افراد را در اینترنت تضمین میکند. با
این حال این پروتکل هزینهبر است و احتیاج به میزان زیادی محاسبات و برقراری
ارتباط دارد. این پروتکل گران قیمت میتواند در کارهای ویژه مورد استفاده قرار
گیرد، اما استفاده از آن در ایمنسازی لینکهای صفحات وب مقرون به صرفه نیست. در
عوض دانشمندان پروتکلهایی خاصی را توسعه دادهاند که در انجام امور معمول از
SFE بهترند. این
پروتکلها عبارتند از:
Encryption : پنهانسازی و روند تغییر شکل دادهها به نحوی که قابل خواندن نباشند. به این ترتیب از استفاده غیر مجاز آنها، به خصوص هنگام مخابره یا ذخیره شدن در ذخیرهسازهای پرتابل، جلوگیری به عمل میآید.
Authentication : اگر
فرد A از فرد B پیام دریافت کند، با استفاده
از این پروتکل میتواند مطمئن شود که واقعا فرد B بوده که برای او پیام
فرستاده و فرد دیگری هویت او را جعل نکرده است تا پیام بفرستد.
Anonymous Channels : کانالهای
مخابره گمنام که باعث میشود کامپیوترهای روتر میانی نتوانند اطلاعات را مشاهده
کنند.
Zero-knowledge Proof : طی
این امر، کاربر میتواند صحت و سقم چیزی را به دیگران ثابت کند، بدون آنکه دلیلش
را برای آنها بازگو نماید.
Anonymous Authorization :طی
این امر وقتی کاربران به سایتهایی خاص وارد میشوند، سایت متوجه میشود که وی
یکی از اعضا است بدون آنکه بداند چه کسی است. این پروتکل نوعی خاص از
Zero-Knowledge Proof است.
پیامهای
سری
یکی
از قدیمیترین و در عین حال اساسیترین مشکلات مورد مطالعه در Cryptography؛
مسئله نحوه مخابره ایمن در کانالی غیر ایمن است (کانالی که در آن فرد دیگری در حال
استراق سمع است.(
فرض
کنید کاربر A میخواهد پیامی به کاربر B بفرستد، اما کاربر C
روی
بخشی از کانال ارتباطی آنها (از طریق شبکه داخلی شرکت کاربر A) کنترل دارد. کاربر A
میخواهد
با B ارتباط داشته باشد و نمیخواهد C وارد این ارتباط شود
و پیام آنها را ببیند.
برای
تحلیل این مشکل ابتدا توجه داشته باشید که B باید چیزی بداند که C
از
آن بی اطلاع است. در غیر این صورت، C میتواند هر کاری که B
انجام
میدهد، انجام دهد. این دانش خصوصی B، "کلید سری" یا
SK (Secret Key) نامیده میشود. سپس دقت داشته باشید A باید چیزی درباره
"کلید سری" B بداند تا بتواند برای فقط شخص وی پیام رمزی
ایجاد کند. اگر A فقط "کلید سری" (SK) کاربر B
را
بداند، پروتکل "رمزنگاری کلید سری" (Secret-Key Encryption) خواهد
بود، پروتکلی که قرنها پیش اختراع شده و از آن استفاده میشود.
در
سال 1976 دو دانشجوی دانشگاه استنفورد به نامهای Withfield Diffle و Martin E. Hellman راهی را کشف کردند که
طی آن از طریق رمزنگاری "کلید عمومی"
(Public-Key Encryption) دیگر کاربر A نیازی به "کلید
سری" کاربر B نداشت و تنها با
دانستن "کلید عمومی" (PK) وی قادر به ارسال
پیام رمزنگاری برای شخص وی بود و فقط کاربر B میتوانست با استفاده
از "کلید سری" خود این پیام را رمزگشایی کند (شکل 2). در این حالت، هر
فرد یک "کلید عمومی" دارد. اگر دادهای با این "کلید عمومی"
رمزی شود، تنها فردی که "کلید سری" مرتبط
با آن "کلید عمومی" را دارد میتواند دادهها را از حالت رمز درآورد.
مشخص است که "کلید عمومی" و "کلید سری" از نظر ریاضی با هم ارتباط
دارند.
در این پروتکل دیگر جای نگرانی نبود که مبادا کاربر C از "کلید عمومی" B مطلع شود، زیرا حتی با داشتن این کلید نیز قادر به رمزگشایی پیغام خاص وی نبود. این دو دانشجو پروتکل "کلید عمومی" را ارایه کردند اما نحوه پیادهسازی آن را نمیدانستند. تا اینکه یک سال بعد دانشجویانی از موسسه فناوری ماساچوست به نامهای رونالد ریوست، ادی شمیر و لئونارد ادلمن، نخستین ساختار سیستم رمزنگاری "کلید عمومی" یعنی الگوریتم RSA را ارایه دادند. با این پروتکل میتوان به راحتی کارهایی مثل خرید اینترنتی را انجام داد، بدون آن که نگران بود مشخصات کارت اعتباری در اینترنت لو برود.
سیستم
کلید سری
کاربر A
و B
کلیدی
اشتراکی فقط برای خود دارند و آن را از دسترس دیگران مخفی میسازند. کاربر A
پیام
خود را با استفاده از این کلید رمزنگاری میکند و پیام رمزنگاری شده را به B
میفرستد
و B نیز با داشتن همین کلید آن را رمز گشایی مینماید.
سیستم
کلید عمومی
کاربر
B
دو
سری کلید ایجاد میکند، یکی را برای خود محقوظ نگه میدارد (کلید سری) و دیگری را
در دسترس دیگران قرار میدهد (کلید عمومی). کاربر A و دیگران میتوانند
با استفاده از کلید عمومی پیام خود را رمزنگاری کنند اما فقط B میتواند با استفاده
از کلید سری خود آنها را رمز گشایی نماید.
الگوریتم
RSA
سیستمی
پیشرفته در زمینه رمزنگاری متن است و هنوز هم با وجود گذر زمان، کارایی بسیار
بالایی دارد. به همین دلیل این 3 تن در سال 2002 میلادی به دریافت
جایزه Turing Award یعنی بالاترین جایزه در علم کامپیوتر شدند.
رمزنگاری "کلید عمومی" باعث میشود تا خرید آنلاین بدون ارسال باز اطلاعات حساس مثل شماره کارت اعتباری انجام پذیرد. بسیاری از سرورهای ایمیل نیز ایمیلها را از طریق رمزنگاری "کلید عمومی" کدگذاری کرده، سپس منتقل میکنند تا مانع از نفوذ و رمزگشایی آنها توسط افراد سودجو شوند.
تعیین
اعتبار هویت یا Authentication نیز یکی دیگر از مشکلات نزدیک به این مساله
است. تصور کنید کاربر A این پیام را دریافت
کند: «سلام A، لطفاً برای C یکصد دلار پول حواله
کن. با تشکر، B.»
حال
چگونه A متوجه شود که این پیام مستقیماً از طرف دوستش یعنی B
ارسال
شده است و پیامی جعلی از طرف C نیست؟
اینجا نیز همانند سناریوی Encryption، کاربر B باید چیزی را بداند که C از آن مطلع نیست و اینگونه است که میتواند پیامی برای A ارسال کند که C قادر به انجام آن نخواهد بود. بنابراین دوباره B به یک "کلید سری" نیاز خواهد داشت. علاوه بر آن A باید چیزی راجع به "کلید عمومی" B بداند تا مطمئن شود پیام از طرف B است. در اینجا نیز دو گونه پروتکل وجود دارد: تعیین اعتبار "کلید سری" و تعیین اعتبار "کلید عمومی" که معمولاً به آن امضای دیجیتال گفته میشود.
امضای
دیجیتال
Diffle و
Hellman برای
اولین بار در همان زمان که رمزنگاری "کلید عمومی" را مطرح کردند، رویای
امضای دیجیتال را نیز خیالپردازی نمودند و طرحی که برای اولین بار در این زمینه
ارایه شد مبتنی بر الگوریتم RSA بود.
اساس کار اینگونه است که کاربر B با استفاده از "کلید سری" خود، امضایی ایجاد میکند که همراه پیغامش ارسال کرده و کاربر A یا هر کس دیگر این امضا را با کلید عمومی فرد بررسی کرده و متوجه واقعی بودن یا نبودن آن خواهد شد (شکل 3). البته این امضا تنها توسط "کلید سری" ایجاد میشود و شامل "کلید سری" نیست. در مثال ما، کاربر A میداند که نامه از طرف کاربر B برای وی ارسال شده است، زیرا به جز B هیچ فرد دیگری از "کلید سری" وی مطلع نیست تا بتواند امضای دیجیتالی مشابه وی را درج کند.
بررسی
امضا
کاربر A
پیام B
و
امضایش را با کلید عمومی وی بررسی میکند تا مطمئن شود پیام از طرف وی ارسال شده
است.
ایجاد
امضا
کاربر B
پیام
خود را با کلیدسری همراه میسازد تا امضای دیجیتال نیز ایجاد شود (رشتهای از
کاراکترها)
کشف
جعل
A با
استفاده از کلید عمومی B متوجه میشود که نامهای
جعلی دریافت کرده است. زیرا امضای وی درج نشده است. امضایی که از نامه اصلی کپی
شود. ارسال نخواهد شد.
تلاش
برای جعل
C نمیتواند
امضای صحیح B را درج کند تا بتواند نامه خود را از طرف وی وانمود کند.
امروزه
روش جعل ایمیل و نسبت غیر واقعی دادن آن به اشخاص یا شرکتهای شناخته شده، کاری
نسبتاً آسان است. شیوه ایجاد اینگونه ایمیلها نیز Spoofing نام دارد. در این
ایمیلهای جعلی گزارشات خبری نادرست و اخبار سهام غیر واقعی درج میشود تا کاربران
فریب خورده و کاری را که این شیادان میخواهند انجام دهند. برای مثال شما ایمیلی
دریافت میکنید که مثلاً بانک فلان در آن ادعا کرده نسبت به کنترل حساب اینترنتی
خود اقدام نمایید. ظاهر ایمیل حاکی از آن است که نامه ارسالی از طرف بانک طرف حساب
شماست اما اگر به دقت به نشانی ایمیل فرستنده بنگرید، متوجه خواهید شد تفاوتی اندک
با بانک طرف حساب شما دارد. در واقع شما با کلیک روی لینک ارایه شده و ارایه کلمه
و رمز عبور خود، به راحتی اطلاعات حساب بانکی خود را در اختیار این شیادان قرار
داده و آنها نسبت به برداشت و خرید از طریق حساب شما اقدام خواهند کرد. برای جلوگیری
از اینگونه کلاهبرداریها کافی است ایمیلهای مخابره شده را تعیین هویت کرد و به
امضای دیجیتالی فرستنده توجه داشت و خود نیز ایمیلهایمان را با امضای دیجیتالی
ارسال کنیم.
در دهه 70 میلادی که فناوری ایمیل عرضه شد، خبری از پروتکلهای تعیین هویت نبود. هم اینک نرمافزارهای ایجاد و تعیین اعتبار امضای دیجیتال متعددی به صورت رایگان عرضه شدهاند و تنها با جستجوی ساده در اینترنت میتوان آنها را تهیه و امنیت بخش ایمیل خود را توسعه داد. البته بسیاری از شرکتهای ارائه دهنده خدمات ایمیل مثل یاهو و گوگل از این روش برای تشخیص جعلی بودن یا نبودن ایمیلها استفاده میکنند.
تاریخهای
کلیدی
قرن
8 میلادی : الکندی، ریاضیدان و دانشمند مشهور عرب که در بغداد زندگی میکرد کتابی
با نام «راهنمای رمزگشایی از نوشتههای رمزی» را نوشت. این کتاب قدیمیترین نوشته
کشفشدهای است که به روشهای رمزگشایی، مانند بررسی تکرار علائم میپردازد.
1586 میلادی:
توماس فلیپس از روش بررسی تکرار علائم استفاده کرد تا پیامهای رمزی بین مری اول،
ملکه اسکاتلند و افراد توطئهگر علیه الیزابت اول، ملکه انگلیس را رمزگشایی کند.
مری و خائنان جملگی اعدام شدند.
1918 میلادی:
سرگرد جوزف مابورنی از ارتش آمریکا به همراه گیلبرت ورنام از لابراتوار
AT&T Bell روشی
به نام One Time Pad برای رمزگذاری روی پیامها ابدعا کردند. در
این روش کلید مخفی طولی به اندازه خود پیام داشت و از آن تنها یک بار استفاده میشد.
1944 میلادی:
در پارک بلچلی در انگلیس از کامپیوتر کولوسوس استفاده شد تا پیامهای ارتش آلمان
رمزگشایی شود و اطلاعاتی قیمتی به دست ارتش انگلیس افتاد.
1945 میلادی:
کلود شانون، دانشمند مشهور لابراتوار AT&T Bell ثابت کرد روش
One Time Pad حتی
با داشتن کامپیوتری با توان محاسباتی بیپایان غیرقابل رمزگشایی است.
1976 میلادی:
ویتفیلد دیفی و مارتین هلمن از دانشگاه استنفورد، روش رمزگذاری با کلید عمومی را
معرفی کردند.
1977 میلادی:
رونالد ریوست، ادی شامر و لئونارد ادلمن از دانشگاه MIT الگوریتم RSA را بر
اساس روش رمزگذاری با کلید عمومی ابداع کردند.
آگوست
1977 میلادی: مارتین گاردنر در ستون خود در مجله Scientific American از خوانندگان
خواست پیامی را که با یک کلید 129 رقمی با الگوریتم RSA رمزگذاری شده بود
رمزگشایی کنند. تخمین زده میشود انجام این کار برای یک انسان معمولی 40
کوادریلیون (40 میلیارد میلیارد) سال به طول میانجامد.
1982 میلادی:
شافی گلدواسر و سیلویو میکالی، دانشجویان مقطع دکترای دانشگاه برکلی، مفاهیم اصلی
رمزنگاری مدرن را بنیانگذاری کردند. آنها تعریفی عملی از امنیت ارائه نمودند.
1985 میلادی:
گلدواسر، میکالی و چارلز راکوف از دانشگاه تورنتو "اثبات با دانش صفر"
را ابداع کردند.
1987 میلادی:
گلدرایش، ویجرسون و میکالی پروتکلهایی برای محاسبه روی چند کامپیوتر ساختند. پیش
از آنها اندرو یائو از دانشگاه پرینستون پروتکلی برای محاسبه روی دو کامپیوتر را
ابداع کرده بود.
1994 میلادی:
شرکت نتاسکیپ پروتکل لایه سوکتهای امن (SSL) را ارائه کرد تا
انتقال اطلاعات روی وب با امنیت انجام شود.
1994 میلادی:
آرین لنسترا از موسسه تحقیقات ارتباطی Bell، و 600 فرد داوطلب با استفاده از اینترنت و
1600 کامپیوتر، هشت ماه وقت صرف کردند تا یک پیام رمزگذاری شده با الگوریتم
RSA-129 را
رمزگشایی کنند.
2008 میلادی:
تخمین زده میشود که با استفاده از یک PC مدرن ساخته شده در
سال 2008 پیامی که با کلید RSA 2048 بیتی رمزگذاری شده
است، یک کوادریلیون سال (یک میلیارد میلیارد سال) طول میکشد تا رمزگشایی شود.
منبع : irancctv.ir