تبلیغات
حقیقت ریاضی - عامل رمزنگاری

بهار می آید تا بگوید اگر نمی توان همیشه سبز ماند، میشود دوباره سبز شد.

محمد روحی کریمی

جستجو

 

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

شنبه 1 اسفند 1388   10:41 ب.ظ


نوع مطلب : تاریخ ریاضی ،کاربردهای ریاضیات ،معرفی ،

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

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

 

قفل های الکترونیکی

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

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

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

الگوریتم ها نیاز به دو قسمت دارند: قفل و کلید. قفل باید کارکرد ساده ای داشته باشد و غیرممکن باشد که بدون کلید باز شود و کلید باید یکتا باشد و هیچ راه دیگری برای باز کردن قفل با یک کلید المثنی وجود نداشته باشد.

دریچه ای باز نباشد

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

اولین کسی که این مشکل را حل کرد کلیفورد ککز (Clifford Cocks) یک ریاضیدان شاغل در ستاد ارتباطات دولت انگلستان در سال 1973 بود. اگرچه، رؤسای او در آن زمان نمی خواستند نتایج تحقیقات او را منتشر کنند، به نظر نمی رسد ککز از این تصمیم زیاد ناراحت بوده باشد. او اکنون رئیس ریاضیدانان ستاد ارتباطات دولت انگلستان است، خب او خوب کار کرده است!

این اقدام به ریوست (Rivest)، شمیر (Shamir) و ادلمن (Adleman)، یک گروه دانشگاهی از انستتیو فناوری ماساچوست (MIT)، این فرصت را داد تا روشی را که در حال حاضر به عنوان روش رمزنگاری RSA شناخته می شود را معرفی کنند. شگفت آور این است که هر دو آنها ( کلیفورد ککز و گروه دانشگاهی مذکور) به طور مستقل فناوری مشابه ای را گسترش دادند که هم اکنون پروتکل جهانی استاندارد ارتباطات است.

چگونگی رمزنگاری با RSA

این روش بر دشواری های ناشی از یافتن عامل های اول اعداد خیلی بزرگ، بین 1024 تا 2048 بیت طول، تکیه میکند. هر گیرنده دو عدد اول خیلی بزرگ مانند p و q انتخاب میکند که حاصل ضرب آنها عدد سومی است که ما می توانیم آن را N بنامیم. همچنین آنها باید عدد دیگری را انتخاب کنند که نسبت به N اول باشد و آن را e می نامیم. در این صورت N و e به طور وسیعی به عنوان کلید عمومی برای شخص در دسترس خواهند بود که بیایید به دلیل سنت رایج آن را آلیس بنامیم.

برای رمزگذاری یک پیام - برای نمونه فرستنده میگوید: رابرت - این پیام به عدد M تبدیل می شود. این عمل می تواند به طور مثال توسط به کارگیری ASCII، یک پروتکل که هر نماد را با 7 بیت نمایش می دهد، انجام شود. ارتباط امن به صورت زیر عمل می کند:

1- باب پیامش را به یک کد متنی مانند C تبدیل میکند C=Me mod N

2- باب C را به آلیس می فرستد.

3- آلیس، به یاد داشته باشید که مقادیر p و q در وهله اول انتخاب شده اند، عدد جدید d را محاسبه میکند:

e*d=1 Mod (p-1)*(q-1)

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

M=Cd

شکستن رمز

تنها راهی که ممکن است شخصی غیر از آلیس پیام باب را بخواند آن است که p و q را پیدا کند. فرض کنید باب کلید عمومی آلیس را دارد. بنابر آنچه توضیح داده شد ضرب اعداد اول یک تابع یک طرفه است. ممکن است حداکثر 10 ثانیه زمان لازم باشد که دو عدد اول بزرگ، در اینجا منظور از بزرگ یک عدد 300 رقمی است، را در هم ضرب کنیم ولی برای تجزیه آن حتی اگر 100 میلیون کامپیوتر شخصی در یک شبکه را به کار ببریم به حدود 1000 سال زمان نیاز داریم. این رمز کاملا امن به نظر می رسد!

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

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

برای دیدن منبع اصلی مقاله فوق به این لینک مراجعه کنید


ASCII: American Standard Code for Information Interchange


نوشته شده توسط : محمد روحی کریمی