رمزنگاری چیست؟

//رمزنگاری چیست؟

رمزنگاری چیست؟

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

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

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

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

 

اشکال سیستمهای کلید مخفی:

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

و قطعا کارآسانی نیست.اشکال دیگر این روش این است که شما برای ارتباط با هر شخصی کلیدی جداگانه نیاز دارید.

 

 

 

سناریوی ارتباط:

آلیس وباب می خواهند با هم مکالمه مطمئنی داشته باشند طوری که کس دیگری از اطلاعات مبادله شده در این مکالمه با خبر نشود.درهمین زمان Eve در حال استراق سمع است.

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

رمزنگاری کلید خصوصی:

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

رمز نگاری کلید عمومی: این رمزنگاری به صورت متفاوتی عمل می کند.زیرا کلید را به دو قسمت کلید عمومی برای به رمز در آوردن و کلید خصوصی برای رمزگشایی تقسیم می کند.این ممکن نیست که کلید خصوصی از کلید عمومی قابل تعیین باشد.همان طور که در شکل می بینید؛باب یک جفت کلید تولید می کند.یکی از کلیدها کلید عمومی است که باید به اطلاع عموم (از جمله Eve) برسد. و دیگری کلید خصوصی که فقط خود باب از آن اطلاع دارد.هر کسی می تواند از کلید عمومی باب برای ارسال پیغام به او استفاده کنند.ولی فقط باب می تواند.از کلید خصوصی خودش برای رمز گشایی پیغام ها استقاده کند.این طرح به آلیس و باب اجازه می دهد تا یک ارتباط امن را بدون ملاقات کردن هم داشته باشند.

هر چند اگر Eve بتواند به همان راحتی که می تواند به پیغام های مبادله شده بین باب و آلیس گوش می دهد آنها را دست کاری نیز کند؛ می تواند کلید عمومی خود را جانشین کلید عمومی باب کند و سپس آلیس از کلید عمومی او برای رمز کردن پیغام ها و فرستادن آنها استفاده می کند.

Man in middle attack : (حمله ی پل زدن به سطل)

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

پرهیز ازحمله ی پل زدن به سطل:

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

منتشر کردن کلید عمومی:

فهرست  کلید های عمومی برای این ایجاد شد تا مشکل این که هر کاربر می بایست یک کپی از کلید عمومی تمام اشخاص را داشته باشد تا با آنها ارتباط امن بر قرار کند را بر طرف کند.هر کاربری کلید عمومی خود را در فهرست ثبت میکند و وقتی مثلا A خواست تا به B  یک پیغام رمز شده بفرستد او کلید عمومی B را از طریق فرستادن درخواست KUB به فهرست انجام می دهد.

مشکلات کلید ها:

· ما ممکن است کلید خود را گم کنیم.

· ما ممکن است فراموش کنیم کدام کلید برای چه کاری بود،

·  ما ممکن است یک کلید را به شخص اشتباهی بدهیم.

· یک کسی ممکن است کلید ما را بدزدد.

· یک کسی ممکن است از طریق پنجره وارد شود.

·  کسی ممکن است در را بشکند.

·  کسی ممکن است درخواست ورود به خانه را بکند و یک احمق هم به او این اجازه را بدهد.

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

·  کسی ممکن است خانه را به آتش بکشاند و اغتشاش ایجاد کند.

 

الگوریتم های کلید عمومی:

الگوریتم های کلید عمومی از یک جفت کلید عمومی و خصوصی بر روی یک پیغام استفاده می کنند.

· فقط کلید خصوصی می تواند پیغام رمز شده با کلید کلید عمومی را رمزگشایی کند.

· همچنین فقط کلید عمومی قادر خواهد بود پیغام رمز شده با کلید خصوصی را رمز گشایی کند.

· اگر شما باکلید عمومی من پیغامی را رمز کنید. فقط من قادر به خواندن آن پیغام خواهم بود.

· اگر شما بتوانید پیغامی را با کلید عمومی من باز کنید آن پیغام الزاما از طرف من آمده است.

·  این طرح اولین بار توسط وایتفیلد دیفه و مارتین هلمن و به صورت مستقلانه ای در همین زمان یعنی دهه ی ۷۰ توسط رالف مرکل پیشنهاد گردید.

·  سازمان NSA  (سازمانی سری در امریکا که روی مباحث رمزنگاری فعالیت می کند.)قبل از پیشنهاد های این افراد به این نتایج رسیده بود.

· معمولا الگوریتم های کلید عمومی بسیار کند تر از الگوریتم های کلید متقارن هستند.

· یک خصیصه ی قطعی کلید عمومی این است که کلید خصوصی از کلید عمومی قابل تعیین نباشد.و در مقابل حملات ”متن سادهِ انتخاب شده” مقاوم باشد.

· در واقع ترکیبی از سیستمهای رمزگذاری کلید عمومی و متقارن کاربرد دارند.

· RSA نوعی از الگوریتم رمز گذار بر پایه ی کلید عمومی است که در گستره وسیعی از کاربردها به کار می رود.پس اجازه دهید در درباره RSA بحث کنیم و بعد دوباره به بحث کلی درباره کلید عمومی برگردیم.

ملزومات: تعیین کلید رمزگشایی از کلید رمزگذاری باید غیر ممکن باشد.

انتخابی: هر کدام از دو کلید عمومی و خصوصی را باید بتوان برای رمز گذاری و رمز گشایی به کار برد.

توابع درب تله ای یا یک طرفه:

· سیستم های رمز گذاری کلید عمومی بر پایه ی یک سری حیله های زیرکانه ی ریاضی که با قدرت کامپیوتر در ارتباطند گسترش یافته اند.

· رمزگذاری کلید عمومی بر پایه ی مسئله که در ریاضی با نام ”درب تله ای” شناخته می شود کار می کند.

· یک درب تله ای یک فرمول ریاضی است که به آسانی جلو می رود ولی برگشت آن تقریبا غیر ممکن است.

· به عنوان مثال عمل ضرب کردن دو عدد بزرگ کار راحتی است ولی بدست آوردن فاکتور های اولیه ی آن عدد بزرگ بسیار مشکل است.

· الگوریتم کلید عمومی بر این اساس کار می کند که شخصی یک کلید عمومی بزرگ را انتشار می دهد و دیگران قادر نیستند که فاکتور های اولیه ی این کلید را بدست آورند.

· سازنده ی کلید فاکتور های اولیه ی کلید خود را میداند و با استفاده از این فاکتور ها پیغام های دیگران را که با استفاده از کلید عمومی خودش رمز شده اند رمز گشایی می نماید.

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

RSA

· تا کنون بهترین سیستم کلید عمومی شناخته شده RSA نام دارد.اسم این سیستم رمز گذاری بر گرفته شده از نام مولف هایش است.رونالد ال رایوست و ایدیا شامیر و لِونارد ام ادِلمًن

·  RSA توسط سه بنیان گذارش یعنی رایوست و شایرمن و لونارد ام ادلمن به عنوان یک الگوریتم رمز گذاری کلید عمومی تجاری معرفی شد.امروزه این الگوریتم توسط مرورگر های وب و برنامه های کلاینت E-Mail ،تلفن های همراه و شبکه های محلی مجازی(vpn)، برنامه های دسترسی ایمن (secure shell) و در خیلی از جاهای دیگر کاربرد دارد.این درست است که امنیت ی که  این الگوریتم ایجاد می کند جای بحث دارد ولی با انتخاب کلید به اندازه ی کافی بزرگ می توان جلوی اغلب حمله ها را گرفت.تا همین چند وقت پیش RSA با قوانین صادرات و حق امتیاز ها محدود شده بود ولی اکنون حق امتیازات منقضی شدند و قوانین صادرات ایالات متحده نیز شل شده اند.

·  این الگوریتم بر پایه یک قانون درب تله ای که از سختی فاکتور گرفتن از اعداد بزرگ استفاده می کند؛ قرار گرفته است.

تقابل PK وSK :

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

·  در مقابل کلید مخفی ؛الگوریتم کلید عمومی قرار دارد.در چنین سیستمی دو کلید وجود دارد یکی کلید عمومی و دیگری کلید خصوصی.

اعداد اول چه هستند؟

· یک عدد اول؛ عددی است که تنها بر خودش و یک قابل تقسیم باشد.

·  به عنوان مثال ۱۰ عدد اول نیست زیرا بر اعداد ۱و۲و۵ و۱۰ بخش پذیر است.ولی ۱۱ یک عدد اول است زیرا تنها به خودش و ۱ بخش پذیر است.

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

· برای مثال تجزیه ی عدد ۱۵ می گوییم این عدد از ۳*۵ بدست می آید ولی در مورد ۶۳۲۰۴۹۱۲۱۷ چطور؟

·  حال در مورد یک عدد ۱۵۵ رقمی چطور؟یا ۲۰۰ رقمی یا بیشتر؟به طور خلاصه تجزیه کردن اعداد قطعا از تعدادی مرحله تشکیل شده که تعداد این مراحل بابزرگ شدن عدد به صورت نمایی بالا می رود.اگر یک عدد به مقدار کافی بزرگ باشد؛ زمان مورد نیاز برای اجرای تمام مراحل تجزیه کردن ممکن است به قدری زیاد باشد که سالها به طول بیانجامد.

حساب پیمانه ای:

در ریاضیات پیمانه ای تنها اعداد صحیح غیر منفی کوچکتر از پیمانه مورد بررسی قرار می گیرد.پس برای پیمانه ی n (mod N) تنها اعداد صحیح که از ۰ تا (N-1) قابل حساب هستند و نتایج محاسبات تنها از ۰ تا (N-1) قابل قبول است.فکر کنید زمان نظامی بر عددی بر پیمانه ی ۲۴۰۰ است.برای مثال ۲۲۰۰ بعلاوه ۴۰۰ (۱۰:۰۰ PM plus 4 hours)جواب ۲۶۰۰ نمی شود.شما از صفر شروع می کنید.بنابراین ۲۲۰۰+۴۰۰ mod 2400 را باید محاسبه کنیم که می شود:۲۶۰۰-۲۴۰۰=۰۲۰۰ و یا ۲:۰۰ صبح. همچنین اگر از ۰  یا نصف شب شروع کنیم.شش برابر ۵۰۰ (بخوانید شش بار ۵ ساعت به جلو)۳۰۰۰ نمیشود.جواب ۰۶۰۰ یا ۶:۰۰ بعد از ظهر می شود.این حساب دقیقا مثل ساعت عمل میکند.

A mod b=r به این معنی که a بر b تقسیم شده است و باقی مانده r است.

برای مثال :

”mod همان باقیمانده تقسیم است.“

۲۲ mod 3 = 1

۳۴ mod 2 = 0

۱۸ mod 5 = 3

-۴ mod 3 = 2       because (3)(-2) + 2 = -4

-۱۶ mod 7 = 5     because (7)(-3) + 5 = -16

· اعداد اول وقتی در ریاضیات پیمانه ای بکار گرفته می شوند ؛ دارای خواص سودمندی مختلفی  هستند.

·  الگوریتم RSA از این خواص استفاده می کند.

 

تحلیل امنیت rsa :

· امتحان کردن تک تک کلید ها اگر طول کلید بین ۱۰۲۴ تا ۲۰۴۸ باشد غیر ممکن است.

·  بهترین انتخاب این است که سعی کنیم تا n را به عواملش که pوq باشند تجزیه کنیم وسپس d را بدست بیاوریم.

·  این عمل تجزیه چقدر مشکل می باشد؟کسی میداند؟برای یک کلید ۲۰۰ رقمی زمان این تجزیه هزاران سال تخمین زده شده است.

· اما هیچ کس اثبات نکرده است که نمی شود در زمان معقولی این عمل را انجام داد.

·  هر کسی که بخواهد d را بدست بیاورد باید ابتدا j(n) را بدست آورد اما برای دانستن آن نیز نیاز به دانستن pوq می باشد.که برای بدست آوردنشان باید n را تجزیه کرد.که این کار یک تابع یک طرفه است آیا به خاطر دارید؟ما میدانیم ضرب اعداد اول بزرگ می تواند یک تابع یک طرفه باشد. ما نیاز به چیز ساده ای برای تفهیم این واقعیت داریم.

عیب های RSA :‍

· امروزه کلید های ۵۱۲ بیتی ضعیف فرض می شوند.کلید های ۱۰۲۴ بیتی تقریبا برای اکثر اهداف به اندازه ی کافی ایمن است.و کلید ۲۰۴۸ بیتی میتواند تا برای دهه های آینده ایمن فرض شود.

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

اعداد اول بزرگ:

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

اعداد اول در چه حد بزرگ باشند؟

دو عدد اول pوq که پیمانه را می سازند باید به طرز فجیعی بلند باشند.این سبب می شود که پیمانه بسیار سخت تر از حالتی که یکی از اعداد اول کوچک باشد تجزیه شود.به همین دلیل اگر کسی از پیمانه ۷۶۸ بیتی استفاده کرد اعداد اول هر کدام باید طولی به طور تقریبی برابر ۳۸۴ داشته باشند.اگر دو عدد اول خیلی نزدیک هم باشند (در حد ۱۰۰ تا ۲۰۰ بیت اشکالی ایجاد نمی کند) یک ریسک امنیتی بالقوه ایجاد شده است.ولی احتمال این که این دو عدد بسیار نزدیک به هم باشند ناچیز است.

امضای دجیتالی باRSA :

· برای این که الگوریتم کار کند داریم: DKPvt(EKPub(P))=P

·  rsa  این قابلیت را نیز دارد : DKPub (EKPvt (P))=P

وقتی که متن را بتوان با KPvt رمز کرده و سپس با Kpub رمز گشایی کرد.این به rsa این امکان را می دهد که از امضا ها برای تائید استفاده کند.وقتی که یک بلاک از داده با کلید خصوصی رمز شده باشد.هر کسی می تواند با کلید عمومی آن را باز کند و گیرنده می تواند اعتبار فرستنده را از طریق امضای او شناسایی کند.

موارد استفاده فعلی rsa :

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

همچنین rsa با تمام پروتکل های اصلی شبکه برای ایجاد ارتباط های اینترنتی ایمن ترکیب شده است . به عنوان مثال S/MIME, SSL and S/WAN همچنین از آن در داخل بسیاری از سازمان های حقوقی نیز استفاده شده است مثلا در دولت ایالات متحده،شرکت های بزرگ،آزمایشگاه های ملی و دانشگاه ها.حق امتیاز RSA را بیش از ۳۵۰ شرکت گرفته اند.همچنین تخمین زده می شود که ماشین های ایجاد شده بر مبنای RSA در حدود۳۵۰ میلیون است.واین نشان می دهد که RSA به سرعت و متناسب با سرعت رشد اینترنت و وب گسترش میابد.

Rsa چقدر سریع است؟

در مقام مقایسه ؛DES ودیگر الگوریتم های متقارن بسیار سریع تر از rsa عمل می کند.در نرم افزار DES معمولا ۱۰۰ برابر سریع تر از RSA است.در سخت افزار نیز  DES 1000 تا ۱۰۰۰۰ برابر سریع تر است.البته بستگی به نحوی اجرا دارد.در عمل rsa ممکن است تبدیل به یک گلوگاه شود ولی DES به خوبی و با سرعت عمل می نماید.

۱۳۹۴-۸-۱ ۲۱:۲۹:۴۲ +۰۳:۳۰آبان ۱۰ام, ۱۳۹۲|Categories: عمومی|Tags: , , |۰ Comments

Leave A Comment

پرداخت

1-پرداخت آنلاین
برای پرداخت آنلاین از لینک زیر استفاده کنید
پرداخت آنلاین
2- پرداخت آفلاین
برای پرداخت آفلاین مبلغ مورد نظر را به یکی از شماره کارت
6037997245888723بانک ملی