الگوریتم رمزنگاری
Download
Report
Transcript الگوریتم رمزنگاری
امنیت اطالعات در شبکه
1
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1محرمانه بودن اطالعات
-2احراز هویت
-3سالمتی داده ها
-4کنترل دسترس ی
-5در دسترس بودن
2
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
محرمانه بودن اطالعات :محرمانه نگه داشتن اطالعات و ارسال و
رمزنگاری داده ها سرویس ی است که شبکه های امروزی باید بتوانند به
متقاضیان ارائه دهند.
احراز هویت :هر مکانیزمی که بتواند هویت افراد را بدون هیچ ابهامی تایید
یا رد کند سرویس احراز هویت گویند.
سالمت داده ها :اطمینان از دست نخوردگی و عدم جعل پیام در طول مسیر
و همچنین اطمینان از این که داده ها با اطالعات مخرب مثل یک ویروس آلوده
نشده اند.
3
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
کنترل دسترس ی :کنترل دسترس ی افرادی که مجاز نمیباشند.
همچنین تنظیم سطوح دسترس ی افراد مختلف به شبکه .مثال بعض ی
ها فقط بتوانند بخوانند یا بنویسند یا تغییر دهند.
در دسترس بودن :تمامی تجهیزات شبکه باید بودن هیچ مشکل و
به راحتی در دسترس آنهایی که مجاز به استفاده از شبکه هستند
باشد.
هر یک از موارد فوق در شبکه دچار نقصان شود گوییم به شبکه حمله
شده است.
4
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1 وقفه
-2 استراق سمع
-3 دستکاری داده ها
-4 افزودن اطالعات
و ......
5
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
به حمله ای که با شروع آن به صورت علنی کار شبکه مختل می
گردد یک حمله فعال گویند.
حمله ای که شبکه را دچار اخالل نمی کند و عموما در دریافت و
ارسال اطالعات مشکلی به وجود نمی آورد حمله غیر فعال
گویند.
حمله غیر فعال خطرناک ترین نوع حمله در شبکه ها میباشد.
چرا؟
6
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1 استفاده از دیواره آتش ()Firewall
-2 استفاده از رمزنگاری
7
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
8
سیستمی است که بین کاربران یک شبکه ی محلی و اینترنت واقع میگردد .نظارت بر
تمامی سطوح و دسترس ی ها و نیز نظارت کامل بر خروجی اطالعات از جمله ویژگی
های این سیستم به شمار می رود.
بسته های IPقبل از ورود به شبکه اینترنت ابتدا وارد دیواره آتش ی میشوند و
منتظر میمانند تا طبق معیارهای امنیتی و نظارتی و حفاظتی پردازش شوند.
در واقع دیواره آتش مکانی است برای ایست و بازرس ی از بسته های اطالعاتی به
گونه ای که بسته های اطالعاتی بر اساس قواعد امنیتی و حفاظتی پردازش شده و
برای آنها مجوز عبور یا عدم عبور صادر گردد.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1 اجازه خروج صادر گردد.
-2 بسته حذف گردد.
-3 عالوه بر حذف بسته پاسخ مناسب به طرف
فرستنده ارسال گردد.
9
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1ترافیک
-2تاخیر
-3ازدحام
-4بن بست
10
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
اگر unمیزان متوسط انتقال بسته های IPشبکه n
اگر umمیزان متوسط انتقال بسته های IPشبکه m
اگر rاحتمال عبور بسته pnو qاحتمال بسته pmباشد
=(1-q)um+(1-r)unمتوسط بسته های حذف شده
=r.unمتوسط انتقال بسته از دیواره آتش به شبکه m
=q.umمتوسط انتقال بسته از دیواره آتش به شبکه n
11
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
با توجه به الیه الیه بودن معماری یک شبکه ،ناگزیر یک دیواره آتش نیز الیه
الیه خواهد بود.
قسمت اعظم کار دیوار آتشین تحلیل و پردازش سرآیند و پی آیندی است که
در هر مرحله به داده افزوده میگردد.
در مدل tcp/ipبیشترین توجه به الیه های اینترنت – انتقال و کاربردی
است.
الیه اول دیواره آتش :محتوای خود داده بررس ی می گردد.
الیه دوم دیواره آتش :فیلدهای بسته tcpو udpبررس ی میگردد.
الیه سوم فیلد بسته های IPبررس ی می گردد.
12
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
13
دیواره آتش در واقع سیاست مدیر و مسئول شبکه را پیاده سازی می نماید .پس
از یک ورودی مناسب باید این سیاست ها را از طرف کاربر یا مدیر دریافت نماید
و سیستم گزارش گیری مناسبی را در اختیار استفاده کنندگان قرار دهد.
این اجزا عبارت اند از:
-1واسط محاوره ای ساده ورودی /خروجی
-2سیستم ثبت
-3سیستم هشدار دهنده
-4راه حل نهایی
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
سیستم محاوره ای
برای تبادل اطالعات و سهولت در تنظیم قواعد امنیتی و ارائه گزارش ،به یک
واسط کاربر نیاز است (که مستقل از دیواره آتش است) تا حجم پردازش اضافی
روی سیستم تحمیل نکند.
سیستم ثبت
14
برای باال بردن ضریب امنیتی و اطمینان در شبکه دیوار آتش باید بتواند حتی در
مواقعی که اجازه ورود و خروج یک بسته صادر می شود اطالعاتی در مورد آن
بسته (مانند مبدا و مقصد بسته ،شماره پورت ها مبدا و مقصد ،سرآیند،
محتوای پیام) ذخیره کند تا در صورت حمله یا نفوذ بتوان این مساله را رسیدگی
نمود.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
در صورت بروز هرگونه مشکل یا انتقال مشکوک (مثال ارتباطاتی که
بصورت بی هدف یا مکرر در طی روز برقرار میشود یا آنکه اطالعات
ارسالی مفهوم خاص ی نداشته باشد) دیواره آتش می تواند مسئول
شبکه را مطلع و در صورت لزوم رفع تکلیف نماید.
15
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
16
با تمام نظارتی که بر تردد بسته های اطالعاتی حین ورود و خروج شبکه میشود
باز هم می توان زیرکانه از مرز دیواره آتش عبور نمود .بهترین حفاظت برای
جلوگیری از فاش شدن اطالعات محرمانه به دنیای خارج ،نابود کردن خط
ارتباطی شبکه به دنیای خارج است .چرا که می توان اطالعات سری را رمز و
فشرده کرد و آن را به عنوان بیت کم ارزش از نقاط تصویر یک گل رز به عنوان
کارت پستال تبریک سال نو ارسال نمود.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
17
کلمه ی Cryptographyبرگرفته از لغت یونانی krypotsبه مفهوم
محرمانه Grapheinبه معنای نوشتن است .از اولین افرادی که از رمزنگاری
استفاده نمودند سزار امپراتور روم را می توان نام برد.
رمز نگاری دانش تغییر دادن متن به کمک یک کلید رمز نگاری و یک الگوریتم
رمزنگاری است .به طوری که شخص ی که از کلید و الگوریتم مطلع است قادر به
استخراج متن اصلی از متن رمز شده باشد.
رمزنگاری از طریق پنهان نمودن الگوریتم رمزنگاری نیز منسوخ است .در روش های
جدید فرض میشود که همه الگوریتم را می دانند و تنها کلید مخفی است.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1متن ساده :اطالعات اوليه كه هنوز رمز نگاري نشده اند
-2متن رمزي :اطالعاتي كه رمز نگاري شده اند
-3الگوريتم رمز نگاري :الگوريتمي كه متن ساده را به متن رمزي تبديل مي كند
-4كليد رمز :داده اي است كه الگوريتم رمز نگاري متن ساده را به متن رمزي تبديل مي
كند و برعكس
-5رمز نگاري :فرايند تبديل متن ساده به متن رمزي است
-6رمز گشايي :فرايند تبديل متن رمزي به متن ساده است
18
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1محرمانه سازي :
اطالعات به هنگام ارسال يا ذخیره شدن از ديد افراد غیر مجاز پنهان خواهد شد .
-2ت ـمــامـيــت :
تغيیرات اعمال شده در اطالعات ارسالي مشخص خواهد شد .
-3اعتبار سنجي :
مي توان منبع اطالعات را اعتبار سنجي كرد.
19
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
به طور کلی ،سرویس رمزنگاری ،به قابلیت و امکانی اطالق میشود که بر اساس فنون رمزنگاری
حاصل میگردد .اما در رمزنگاری پیشرفته سرویسهای مختلفی از جمله موارد زیر ارائه
گردیدهاست:
• محرمانگی یا امنیت محتوا :ارسال یا ذخیره اطالعات به نحوی که تنها افراد مجاز بتوانند از
محتوای آن مطلع شوند ،که همان سرویس اصلی و اولیه پنهان کردن مفاد پیام است.
سالمت محتوا :به معنای ایجاد اطمینان از صحت اطالعات و عدم تغییر محتوای اولیه آن در
حین ارسال است .تغییر محتوای اولیه اطالعات ممکن است به صورت اتفاقی (در اثر مشکالت
مسیر ارسال) و یا به صورت عمدی باشد.
احراز هویت یا اصالت محتوا :به معنای تشخیص و ایجاد اطمینان از هویت ارسالکننده
اطالعات و عدم امکان جعل هویت افراد میباشد.
عدم انکار :به این معنی است که ارسالکننده اطالعات نتواند در آینده ارسال آن را انکار یا
مفاد آن را تکذیب نماید.
20
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
به طور کلی ،یک پروتکل رمزنگاری ،مجموعهای از قواعد و روابط ریاض ی است که چگونگی ترکیب
کردن الگوریتمهای رمزنگاری و استفاده از آنها به منظور ارائه ی یک سرویس رمزنگاری خاص در
یک کاربرد خاص را فراهم میسازد.
ا
معموال یک پروتکل رمزنگاری مشخص میکند که اطالعات موجود در چه قالبی باید قرار گیرند.
چه روش ی برای تبدیل اطالعات به عناصر ریاض ی باید اجرا شود
کدامیک از الگوریتمهای رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند
روابط ریاض ی چگونه به اطالعات عددی اعمال شوند
چه اطالعاتی باید بین طرف ارسالکننده و دریافتکننده رد و بدل شود
چه مکانیسم ارتباطی برای انتقال اطالعات مورد نیاز است
به عنوان مثال میتوان به پروتکل تبادل کلید دیفی-هلمن برای ایجاد و تبادل کلید رمز مشترک بین
دو طرف اشاره نمود.
21
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
الگوریتم رمزنگاری ،به هر الگوریتم یا تابع ریاض ی گفته میشود که به علت دارا بودن خواص
مورد نیاز در رمزنگاری ،در پروتکلهای رمزنگاری مورد استفاده قرار گیرد .اصطالح الگوریتم
رمزنگاری یک مفهوم جامع است و الزم نیست هر الگوریتم از این دسته ،به طور مستقیم برای
ا
رمزگذاری اطالعات مورد استفاده قرار گیرد ،بلکه صرفا وجود کاربرد مربوط به رمزنگاری مد
نظر است .در گذشته سازمانها و شرکتهایی که نیاز به رمزگذاری یا سرویسهای دیگر
رمزنگاری داشتند ،الگوریتم رمزنگاری منحصربهفردی را طراحی مینمودند .به مرور زمان
مشخص گردید که گاهی ضعفهای امنیتی بزرگی در این الگوریتمها وجود دارد که موجب
سهولت شکسته شدن رمز میشود .به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن
الگوریتم رمزنگاری منسوخ شدهاست و در روشهای جدید رمزنگاری ،فرض بر این است که
اطالعات کامل الگوریتم رمزنگاری منتشر شدهاست و آنچه پنهان است فقط کلید رمز است.
22
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-Aرمزهای جانشينی :قدیمی ترین نوع رمزنگاری میباشد ،که در آن هر حرف یا
هر گروهی از حروف به جای حرف یا گروهی دیگر قرار میگیرد تا پنهان سازی
صورت پذیرد .که این روش به دو روش زیر تقسیم میگردد:
تک الفبایی
چند الفبایی
مثال روش سزار
مدل بهينه سزار:طول کليد 26
حفظ فراوانی حروف و کلمه ها
23
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
A B C D E F G H I J K M N O P Q R S T U V W X Y Z
متن ساده
D E F G H I J K M N O P Q R S T U V W X Y Z A B C
متن رمز شده
24
در این دسته از روشها از یک الفبای رمز برای رمزنگاری هر پیام استفاده میشود.
دو مثال:
-1روش سزار
در این روش الگوریتم رمزنگاری و رمزگشایی مشخص بود و تنها 25کلید داشت
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
25
با استفاده از این روش ابتدا حروف را در
یک ماتریس پنج در پنج قرار می دهیم.
سپس برای هر حرف در متن اصلی یک عدد
دو رقمی که موقعیت سطرو ستون آن
حرف را در جدول نمایش میدهد قرار می
دهیم .در سطر 2و ستون 4دو حرف باهم
ترکیب شده اند بنابراین در زمان رمزگشایی
براساس نیاز بدون حروف در یک کلمه بین
آن دو انتخاب میشود .به عنوان مثال
E
M
I
T
E
H
T
S
I
W
O
15
32
24
44
15
23
44
43
24
52
34
Nمتن ساده
متن رمز
33
شده
26
یکی از روشهای بهبود یک الفبایی استفاده از چندین جانشینی یک الفبایی است که
دو ویژگی کلی داشته باشند .اول از چندین قاعده جانشینی مرتبط با هم استفاده
کنند و دوم یک کلید مشخص کند که برای هر تبدیل داده شده از کدام قاعده
خاص استفاده شود.
معروفترین و در عین حال یکی از ساده ترین آنها الگوریتم رمزنگاری کلید اتوماتیک
ویجنر میباشد.
در این روش مجموعه ای از 26رمز سزاری با کلیدی برابر 0تا 25شیفت به چپ
مطابق جدول اسالید ص بعد استفاده میشود.کلید اول با یک شیفت به چپ کلید
دوم با دو شیفت به چپ و کلید سوم با 3شیفت و .....تولید میشوند.کلید روش
سزار 3شیفت به چپ یعنی سطری با مقدار dمیباشد
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
سپس حروف
متن با استفاده
کلیدهای
از
رمز
مختلف
میشوند.
27
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
28
کلمه به عنوان کلید:در این روش ابتدا یک کلمه دلخواه به عنوان کلید انتخاب میشود و سپس بر
اساس حروف این کلمه سطر مرتبط برای هر حرف متن انتخاب میشود.
E
M
I
T
E
H
T
S
I
W
N O
E
P
Y
T
E
P
Y
T
E
P
Y
T
I
B
G
M
I
W
R
L
M
L
G Mمتن رمز شده
E
M
I
T
E
H
T
S
I
W
N O
M
I
T
E
H
T
S
I
W
O
N
F
کلید
Q
U
B
X
L
A
L
A
E
K
B
S
متن رمز شده
E
M
I
T
E
H
T
S
I
W
N O
T
H
Z
G
C
V
C
K
C
G
S
F
کلید
X
T
H
Z
G
C
V
C
K
C
G
S
متن رمز شده
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
متن اصلی
کلید
متن اصلی
متن اصلی
رمزهاي جانشيني ترتيب نماد هاي متن ساده را حفظ ميكنند ولي آنها را تغيیر مي دهند .رمز
هاي جابه جايي ترتيب حروف را عوض مي كنند ولي آنها را تغيیر نمي دهند.
برای کلید از کلمه یا عبارتی که حروف تکراری ندارد استفاده می نماییم.
شماره گذاری در زیر کلید بر مبنای حروف الفبا است یعنی در مثال بعدی ابتدا Aشماره
گذاری می شود .سپس Bو ......و در نهایت به Mمقدار 7داده میشود.
29
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
يك مثال از جابه جايي ستوني:
30
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
توابع بدون کلید
توابع مبتنی بر کلید
تا اینجا
here
◦ توابع درهمساز
◦ تبدیلهای یکطرفه
◦ الگوریتمهای کلید متقارن
الگوریتمهای رمز بلوکی
الگوریتمهای رمز دنبالهای
توابع تصدیق پیام
الگوریتمهای کلید نامتقارن
الگوریتمهای مبتنی بر تجزیه اعداد صحیح
الگوریتمهای مبتنی بر لگاریتم گسسته
الگوریتمهای مبتنی بر منحنیهای بیضوی
◦ الگوریتمهای امضای رقومی
الگوریتمهای رمزنگاری بسیار متعدد هستند ،اما تنها تعداد اندکی از آنها به صورت استاندارد
درآمدهاند.
31
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
به هر رویه خوش تعریف یا تابع ریاض ی که یک حجم
ا
زیاد داده (احتماال حجم نامشخص ی از داده) را به یک
عدد طبیعی تبدیل کند یک تابع هش یا تابع درهمسازی
میگویند .عدد طبیعی حاصل از تابع هش معموال به
عنوان اندیس یک آرایه مورد استفاده است .مقادیری
حاصل از این تابع را معموال مقدار هش یا فقط هش
میخوانند.
توابع درهمسازی بیشتر برای سرعت بخشیدن در
جستوجوی جداول یا فشردهسازی دادهها استفاده
میشوند مثل جستجوی چیزی در یک پایگاه داده،
تشخیص رکوردهای تکراری در حجم زیاد داده یا
کشیدگیهای مشابه در دنباله دیانای و بسیاری
کاربردهای مشابه.
32
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
33
الگوريتمهای کليد متقارن:
الگوريتمهای کليد نامتقارن (کليد عمومی):
◦ رمز گذاری و رمز برداری با يک کليد انجام می گیرد.
◦ )DES (Data Encryption Standard
◦ Triple DES
◦ هر فرد يک کليد عمومی و يک کليد خصوص ی دارد.
◦ بر اساس قوانین زير عمل می کند:
D(E(P))=P
استنتاج Dاز Eبسيار بسيار دشوار است.
E را نمی توان به ساده گی کشف کرد.
دفی هلمن و RSAنموته ای از اين الگوريتمها ست.
کاربرد در امضای ديجيتال.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
ا
ن
ن
ی
اصوال رمزنگار کلید متقار و کلید نامتقار دارای دو ماهیت متفاوت هستند و
کاربردهای متفاوتی نیز دارند .بنابراین مقایسه این دو نوع رمزنگاری بدون توجه به کاربرد و
سیستم موردنظر کار دقیقی نخواهد بود .اما اگر معیار مقایسه ،به طور خاص ،حجم و
زمان محاسبات مورد نیاز باشد ،باید گفت که با در نظر گرفتن مقیاس امنیتی معادل،
الگوریتمهای رمزنگاری متقارن خیلی سریعتر از الگوریتمهای رمزنگاری نامتقارن میباشند.
34
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
35
رمزنگاری کلید متقارن یا تک کلیدی ،به آن دسته از الگوریتمها ،پروتکلها و سیستمهای
رمزنگاری گفته میشود که در آن هر دو طرف رد و بدل اطالعات از یک کلید رمز یکسان برای
عملیات رمزگذاری و رمزگشایی استفاده میکنند .در این قبیل سیستمها ،یا کلیدهای
رمزگذاری و رمزگشایی یکسان هستند و یا با رابطهای بسیار ساده از یکدیگر قابل استخراج
میباشند و رمزگذاری و رمزگشایی اطالعات نیز دو فرآیند معکوس یکدیگر میباشند.
واضح است که در این نوع از رمزنگاری ،باید یک کلید رمز مشترک بین دو طرف تعریف گردد.
ا
چون کلید رمز باید کامال محرمانه باقی بماند ،برای ایجاد و رد و بدل کلید رمز مشترک باید از
کانال امن استفاده نمود یا از روشهای رمزنگاری نامتقارن استفاده کرد .نیاز به وجود یک
کلید رمز به ازای هر دو نفر درگیر در رمزنگاری متقارن ،موجب بروز مشکالتی در مدیریت
کلیدهای رمز میگردد.
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
در روش فوق ،هر کامپيوتر دارای يک کليد رمز ( کد ) بوده که از آن برای رمزنگاری يک بسته
اطالعاتی قبل از ارسال اطالعات بر روی شبکه و يا کامپيوتر ديگر ،استفاده می نمايد .دراين روش
الزم است در ابتدا مشخص گردد که کداميک از کامپيوترها قصد مبادله اطالعاتی با يکديگر را
دارند ،پس از مشخص شدن هر يک از کامپيوترها ،در ادامه کليد رمز بر روی هر يک از سيستم ها
می بايست نصب گردد .اطالعات ارسالی توسط کامپيوترهای فرستنده با استفاده از کليد رمز ،رمز
نگاری شده وسپس اطالعات رمز شده ارسال خواهند شد .پس از دريافت اطالعات رمز شده
توسط کامپيوترهای گیرنده ،با استفاده از کليد رمز اقدام به بازگشائی رمز و برگرداندن اطالعات
ا
بصورت اوليه و قابل استفاده خواهد شد .مثال فرض کنيد پيامی را برای يکی از دوستان خود رمز و
سپس ارسال می نمائيد .شما برای رمز نگاری اطالعات از روش ی استفاده نموده ايد که بر اساس آن
ا
هر يک از حروف موجود در متن پيام را به دو حرف بعد از خود تبديل کرده ايد .مثال حروف A
موجود در متن پيام به حروف Cو حروف Bبه حروف Dتبديل می گردند .پس از ارسال پيام رمز
شده برای دوست خود ،می بايست با استفاده از يک روش ايمن و مطمئن کليد رمز را نیز برای وی
مشخص کرد .در صورتيکه گیرنده پيام دارای کليد رمز مناسب نباشد ،قادر به رمز گشائی و
استفاده از اطالعات نخواهد بود .در چنین حالتی می بايست به دوست خود متذکر گرديد که کليد
رمز " ،شيفت دادن هر حرف بسمت جلو و به اندازه دو واحد است " .گیرنده پيام با انجام عمليات
معکوس قادر به شکستن رمز و استفاده از اطالعات خواهد بود.
36
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
در این روش هر دو طرفی که قصد رد و بدل اطالعات را دارند از یک کلید مشترک برای
رمزگذاری و نیز بازگشایی رمز استفاده میکنند.در این حالت بازگشایی و رمزگذاری اطالعات
دو فرآیند معکوس یکدیگر میباشند .مشکل اصلی این روش این است که کلید مربوط به
رمزگذاری باید بین دو طرف به اشتراک گذاشته شود و این سوال پیش میآید که دو طرف
چگونه میتوانند این کلید را به طور امن بین یکدیگر رد و بدل کنند .انتقال از طریق
انترانت و یا به صورت فیزیکی تا حدی امن میباشد اما در انتقال آن در اینترنت به هیچ
وجه درست نیست.در این قبیل سیستمها ،کلیدهای رمزنگاری و رمزگشایی یکسان هستند
و یا رابطهای بسیار ساده با هم دارند .این سیستمها را سیستمهای متقارن یا ” تک کلیدی
” مینامیم .به دلیل ویژگی ذاتی تقارن کلید رمزنگاری و رمزگشایی ،مراقبت و جلوگیری از
افشای این سیستمها یا تالش در جهت امن ساخت آنها الزم است در بر گیرنده ” جلوگیری
از استراق سمع ” و ” ممانعت از دستکاری اطالعات ” باشد .
37
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
ـ DES
ـ 3DES
ـ AES
ـ IDEA
ـ Blow Fish
ـ RC4
این روش معموال از روش نامتقارن کم هزینهتر است و سریع تر انجام میشود و
معموال کلیدها خیلی بزرگ هستند و الگوریتمهای آن چند هزار سال است که در
حال بهبودند و به خوبی شناخته شده هستند.
38
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
39
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
این روش برای حل مشکل انتقال کلید در روش متقارن ایجاد شد .در این روش به جای یک
کلید مشترک از یک جفت کلید به نامهای کلید عمومی و خصوص ی استفاده میشود .در این
روش از کلید عمومی برای رمزگذاری اطالعات استفاده میشود .طرفی که قصد انتقال
اطالعات را به صورت رمزگذاری شده دارد اطالعات را رمزگذاری کرده و برای طرفی که
مالک این جفت کلید است استفاده میشود .مالک کلید ،کلید خصوص ی را پیش خود به
صورت محرمانه حفظ میکند .در این دسته ،کلیدهای رمزنگاری و رمزگشایی متمایزند و یا
اینکه چنان رابطه پیچیدهای بین آنها حکم فرماست که کشف کلید رمزگشایی با در اختیار
داشتن کلید رمزنگاری ،عمال ناممکن است.
40
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
Elliptic Curve Cryptography
RSA
Blind Signatures
DH الگوریتمDiffie-Hellman
Elgamal Discrete log Cryptosystem
Zero-knowledge Proofs
91 پاییز- کریمی- تویسرکان- مهندسی اینترنت
41
رمزنگاری کلید نامتقارن ،در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب
پروتکل تبادل کلید دیفی-هلمن پیشنهاد شد .در این نوع از رمزنگاری ،به جای یک کلید مشترک ،از
یک زوج کلید به نامهای کلید عمومی و کلید خصوص ی استفاده میشود .کلید خصوص ی تنها در
اختیار دارنده آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوص ی بستگی دارد .کلید
عمومی در اختیار کلیه کسانی که با دارنده آن در ارتباط هستند قرار داده میشود .به مرور زمان،
به غیر از حل مشکل انتقال کلید در روش متقارن ،کاربردهای متعددی برای این نوع از رمزنگاری
مطرح گردیدهاست .در سیستمهای رمزنگاری نامتقارن ،بسته به کاربرد و پروتکل مورد نظر ،گاهی
از کلید عمومی برای رمزگذاری و از کلید خصوص ی برای رمزگشایی استفاده میشود و گاهی نیز ،بر
عکس ،کلید خصوص ی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار میرود.
دو کلید عمومی و خصوص ی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاض ی
محاسبه میگردند .رابطه ریاض ی بین این دو کلید به گونهای است که کشف کلید خصوص ی با در
ا
اختیار داشتن کلید عمومی ،عمال ناممکن است.
42
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
43
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
در ر اوش فوق از ترکيب يک کليد خصوص ی و يک کليد عمومی استفاده می شود .کليد خصوص ی
صرفا متعلق به کامپيوتر فرستنده بوده و کليد عمومی توسط کامپيوتر فرستنده در اختيار هر يک
از کامپيوترهائی که قصد برقراری ارتباط با يکديگر را دارند ،گذاشته می شود .برای رمزگشائی
يک پيام رمز شده ،کامپيوتر می بايست از کليد عمومی که توسط فرستنده ارائه شده ،بهمراه
کليد خصوص ی خود استفاده نمايد .يکی از متداولترين برنامه های رمزنگاری در اين رابطه
)PGP)Pretty Good Privacyاست .با استفاده از PGPمی توان هر چیز دلخواه را
رمز نمود.
بمنظور پياده سازی رمزنگاری کليد -عمومی در مقياس باال نظیر يک سرويس دهنده وب ،الزم
است از رويکردهای ديگری در اين خصوص استفاده گردد " .امضای ديجيتال " يکی از رويکردهای
موجود در اين زمينه است يک امضای ديجيتالی صرفا" شامل اطالعات محدودی بوده که اعالم
می نمايد ،سرويس دهنده وب با استفاده و بکارگیری يک سرويس مستقل با نام " امضای مجاز
" ،امین اطالعات است " .امضای مجاز " بعنوان يک ميانجی بین دو کامپيوتر ايفای وظيف می
نمايد .هويت و مجاز بودن هر يک از کامپيوترها برای برقراری ارتباط توسط سرويس دهنده انجام
و برای هر يک کليد عمومی مربوطه را فراهم خواهد کرد.
44
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
رمزهای كلید خصوص ی بر مبنای نوع عملكرد ،چگونگی طراحی و پیاده سازی و
كاربردهایشان به دو گونه رمزهای قطعه ای و رمزهای دنباله ای تقسیم می شوند .كه در هر
یك از آ نها عملكرد رمز نگاری به صورت یك عملكرد دوجانبه بین دو طرف فرستنده و
گیرنده می باشد كه با ایجاد یك ارتباط اولیه با یكدیگر روی كلید خصوص ی توافق میكنند
به گونه ای كه دشمن آن كلید را نداند .فرستنده Sمیخواهد پیام m1,….miرا به
گونه ای به طرف گیرنده Rبفرستد كه او بتواند به محتوای پیام دست یابد و در عین
حال حریف مخالف Aنتواند محتوای پیام را درك كند حتی اگر Aتمامی آنچه بین Rو
Sانتقال می یابد را دریافت نماید.
به همین منظور فرستنده Sهر متن روشن miرا به وسیله الگوریتم رمزگذاری Eوكلید
خصوص ی به متن رمز شده تبدیل میكند ودریافت كننده نیزكه متن رمز شده را دریافت كرده
می تواند با الگوریتم رمز گشائی Dو كلید خصوص ی متن اصلی را بدست آورد.
45
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
بحثهای زیادی شده که کدام یک از این الگوریتمها بهترند اما جواب مشخص ی ندارد .البته بررس ی هایی روی
این سوال شده به طور مثال Needhamو Schroederبعد از تحقیق به این نتیجه رسیدند که طول
پیغامی که با الگوریتمهای متقارن میتواند رمزنگاری شود از الگوریتمهای کلید عمومی کمتر است .و با تحقیق به
این نتیجه ریسیدند که الگوریتمهای متقارن الگوریتمهای بهینه تری هستند .اما وقتی که بحث امنیت پیش می
آید الگوریتمهای کلید عمومی کارایی بیشتریدارند .و بطور خالصه میتوان گفت که الگوریتمهای متقارن دارای
سرعت باالتر و الگوریتمهای کلید عمومی دارای امنیت بهتری هستند .در ضمن گاهی از سیستم ترکیبی از هردو
الگوریتم استفاده میکنند که به این الگوریتمها الگوریتم های ترکیبی ()hybridگفته میشود .اما اگر به
طور دقیق تر به این دو نگاه کنیم آنگاه متوجه خواهیم شد که الگوریتمهای کلید عمومی و الگوریتمهای کلید
ا
متقارن دارای دو ماهیت کامال متفاوت هستند و کار بردهای متفاوتی دارند به طور مثال در رمزنگاریهای ساده
که حجم دادهها بسیار زیاد است از الگوریتم متقارن استفاده میشود زیرا دادهها با سرعت باالتری رمزنگاری
و رمزگشایی شوند .اما در پروتکل هایی که در اینترنت استفاده میشود ،برای رمز نگری کلید هایی که نیاز به
مدیریت دارند از الگوریتمهای کلید عمومی استفاده میشود.
46
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
تجزیه و تحلیل رمز یا شکستن رمز ،به کلیه اقدامات مبتنی بر اصول ریاض ی و علمی اطالق میگردد که هدف آن از بین
بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطالعات اصلی باشد .در تجزیه و تحلیل رمز ،سعی میشود
تا با بررس ی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطالعات جانبی
موجود ،ضعفهای امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست
آمده و یا محتوای اطالعات رمز شده استخراج گردد.
تجزیه و تحلیل رمز ،گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد
مزنگاری و برای کشف ضعفها و
امنیتی انجام میشود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم ر
ا
آسیبپذیریهای احتمالی اآن صورت میپذیرد .به همین دلیل ،تجزیه و تحلیل رمز ،ذاتا یک فعالیت خصومتآمیز به
حساب نمیآید؛ اما معموال قسمت ارزیابی و کشف آسیبپذیری را به عنوان جزئی از عملیات الزم و ضروری در هنگام
طراحی الگوریتمها و پروتکلهای جدید به حساب میآورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیتهای خرابکارانه
و ضد امنیتی را به ذهن متبادر میسازد .با توجه به همین مطلب از اصطالح حمالت تحلیل رمز برای اشاره به چنین
فعالیتهایی استفاده میشود.
تحلیل رمز ،در اصل اشاره به بررس ی ریاض ی الگوریتم (یا پروتکل) و کشف ضعفهای احتمالی آن دارد؛ اما در خیلی از
موارد فعالیت خرابکارانه ،به جای اصول و مبنای ریاض ی ،به بررس ی یک پیادهسازی خاص آن الگوریتم (یا پروتکل) در
یک کاربرد خاص میپردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز مینماید .به این
دسته از اقدامات خرابکارانه ،حمالت جانبی گفته میشود.
47
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
افزونگی :
رمز نگاری پیامها باید شامل مقداری افزونگی باشد
تازگی پیامها :
باید محاسباتی صورت گیرد تا مطمئن شویم هر پیام دریافتی تازه و جدید است
اخیرا فرستاده شده است )
48
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
(
اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری«افزونگی» [دادههای
زائد] باشندبه عبارت دیگر لزومی ندارد که اطالعات واقعی به همان گونه که هستند رمز
و ارسال شوند .یک مثال میتواند به فهم دلیل این نیاز کمک کند .فرض کنید یک
شرکت به نام TCPبا۶۰۰۰۰کاالاز طریق سیستم پست الکترونیکی سفارش خرید
میپذیرد .برنامه نویسان شرکت TCPبه خیال آن که برنامههای موثر و کار آمدی
مینویسند پیامهای سفارش کاال را مشتمل بر ۱۶بایت نام مشتری و به دنبال آن سه بایت
فیلد داده (شامل یک بایت برای تعدادکاال ودو بایت برای شماره کاال)در نظر میگیرد که
سه بایت آخر توسط یک کلید بسیار طوالنی رمزنگاری میشود واین کلید را فقط مشتری
و شرکت TCPمیداند.
49
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
دومین اصل اساس ی در رمزنگاری آن است که باید محاسباتی باید صورت بگیرد تا مطمئن
ا
شویم هرپیام دریافتی تازه و جدید است یا به عبارتی اخیرا فرستاده شدهاست این بررس ی
برای جلوگیری از ارسال مجدد پیامهای قدیمی توسط یک اخاللگر ّ
فعال الزامی است اگر
چنین بررس یهایی انجام نشود کارمند اخراجی ما قادر است با ایجاد یک انشعاب مخفی از
ا
ا
خط تلفن پیامهای معتبری را که قبال ارسال شده مکررا ارسال نماید ،حتی اگر نداند
محتوای ان چیست.
50
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
یک چنین محاسبهای را میتوان با قرار دادن یک مهر زمان در پیامها پیش بینی کرد به
ا
نحوی که پیامها مثال برای ده ثانیه معتبر باشد گیرنده پیام میتواند آن را برای حدود ده
ثانیه نگه دارد تا بتواند پیامهای جدید را با آن مقایسه کرده و نسخههای تکراری را که
دارای مهر زمان هستند به عنوان پیامهای قدیمی شناخته و حذف خواهند شد.
51
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
در طراحي رمزهاي دنباله اي يك مولد بيت شبه تصادفي نقش توليد کننده رشته کليد را براي سيستم رمزدنباله اي
دارد .در واقع اين مولد ميتواند مولد رشته کليد نیز محسوب شود .از ديدگاه رمز نگاري يك مولد رشته کليد امن بايد
داراي سه پارامتر مهم زير باشد :
-١پريود رشته کليد توليد شده بايد به حد کافي بزرگ باشد تا با طول پيام ارسال شده سازگاري داشته باشد .
-٢دنباله بيت خروجي حاصله از مولد بايد به راحتي قابل توليد کردن باشد .
-٣بيتهاي خروجي بايد به سختي قابل پيش بيني باشند .
در واقع با در اخثيار داشتن مولد و اولین nبيت خروجي ( )a(1) …….a(n-1 ،a(0از لحاظ محاسباتي
پيش بيني بيت n+1ام يعني ( a(n+1در دنباله با احتمال بيشتر از ½ بايد غیر ممكن باشد.
حال مسئله اصلي اين است با آدام مبنا واصولي ميتوان اين نتيجه گیري ر ا انجام داد که سيگنال هاي خروجي از
يك مولد رشته کليد به سختي قابل پيش بيني است ؟ به طور کلي اصولي قابل بررس ي و کاربردي ارائه شده است تا
امنيت مولد هاي بيت را ضمانت کند .در واقع تا کنون روشهاي بسياري براي توليد رشته کليدهاي امن پيشنهاد شده
است و در مقابل رمزنگاری و امنيت تبادل داده نیز تحليل هائي طرح شده است که با توجه به پيچيده ترشدن دنباله
ها به صورت ماهرانه تري به تحليل دنباله ها مي پردازند .در ادامه به برخي از روشهاي توليد بيت هاي شبه تصادفي
مي پردازيم.
52
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
غیر قابل پيش بيني بودن يك دنباله همانند تصادفي بودن آن تعبیر مي شود براي اينكه
يك دنباله تصادفي باشد پريود آن بايد به حد کافي بزرگ باشد و همچنین تكه هاي
گوناگون درون دنباله داراي توزيعي تا حد ممكن يكنواخت باشند .در اينجا به طور
خالصه چند روش توليد بيت هاي شبه تصادفي ودنباله هاي شبه تصادفي شرح داده
شده است .در اين روش ها به طورمشخص ثبات هاي انتقال خطي براي ساختن
مولدها به کار گرفته شده اند.
53
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
-1به روش تفاضلی
-2به روش خطی
-3توان الکتریکی مصرفی
-4تحلیل زمانی
-1دو بلوک از متن که با هم در تعداد خیلی کم از بیت با هم اختالف دارند انتخاب میشوند
-2با XORکردن بیتهای مشخص ی از متن اصلی و متن رمز شده با یکدیگر و آزمایش مجدد
الگوی بدست آمده
-3میزان توان الکتریکی مصرفی پردازنده برای یافتن کلید سری
... -4
54
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
امضای دیجیتال مبتنی بر الگوریتم های رمزنگاری و الگوریتم های Hashingاست .به عنوان نمونه ای از
الگوریتم های رمزنگار می توان به RSAو EL Gamalو الگوریتم های MD5 ،Hashingو SHAاشاره
کرد.
روال کار در امضای دیجیتال به این شکل است که پیش از ارسال داده ها ،آنها را با استفاده از الگوریتم های
Hashingبه یک کد فشرده Hashتبدیل می کنند که این کد در حقیقت حاوی اطالعات شما می باشد.
مقادیر هش شده همگی طول یکسانی دارند و در صورت تغییر در اطالعات ورودی Hash Codeجدیدی تولید
می شود .این الگوریتم ها همگی یک طرفه هستند ،یعنی پس از کد شدن اطالعات نمی توان از روی این کدها
اطالعات اصلی را به دست آورد و تنها در صورتی می توان آن را کدگشایی کرد که کلید این کدها را در اختیار داشت.
در جریان ارسال اطالعات کد Hashبه دست آمده از الگوریتم محاسباتی توسط کلید خصوص ی به حالت رمز
تبدیل می شود و همراه با کلید عمومی به انتهای داده ها اضافه شده و برای گیرنده ارسال می شود به عالوه کد
Hashواقعی داده ها نیز محاسبه شده و در انتها این دو کد باهم مقایسه می شوند .اگر این دو کد همخوانی
داشتند بیانگر این است که داده های ارسال شده دستکاری نشده اند و قابلیت اعتماد دارند اما در صورتی که
Hashکدهای ارسالی و واقعی یکسان نباشند به معنای دستکاری در اطالعات است و این اطالعات دیگر قابل
اطمینان نیستند .حلقه کلید را می توان مجموعه ای از کلیدها دانست ،یک حلقه کلید از کلید های عمومی همه
افرادی که برای شما اطالعاتی در قالب Hashcodeارسال کرده اند است .
55
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
56
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
امضا با کلید متقارن هر شخص دارای یک کلید شخص ی می باشد که فقط مرکز پیام (
) BBآن را میداند.
در این روش شخص آلیس پیام خود را با کلید شخص ی خود که فقط مرکز پیام آن را
میداند تبدیل به کد کرد و مرکز پیام آن را با کلید شخص ی آلیس که در اختیار دارد تیدیل
به پیام اصلی کرده و دوباره آن را با کلید شخص ی شخص مقصد (باب) که در اختیار دارد
تبدیل به کد قابل فهم برای باب می کند.
57
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
امضا با کلید عمومی هر شخص دارای یک کلید شخص ی می باشد و یک کلید عمومی که
همه آنرا میدانند.
در این روش شخص آلیس پیام خود را با کلید شخص ی خود تبدیل به کد کرد و بعد از
این عمل آن را با کلید عمومی باب دوباره رمز نگاری کرده .بای نیز پس از دریافت آن ،
پیام را با کلید شخص ی خود واکش ی کرده و پس از آن با کلید عمومی آلیس که در اختیار
دارد تیدیل به پیام اصلی کرده که بدین ترتیب پیام برای باب قابل فهم میشود .
58
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
•
ً
رمزنگاري کليد عمومي اساسا با انگیزه رسيدن به دو هدف طراحي
شد:
– حل مساله توزيع کليد
– امضاي رقمي (ديجيتال)
◦ ديفي و هلمن توصيف كلي و اولین راه حل را در 1976ارايه دادند.
59
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
رمزگذاری کليد عمومي
براي رمز نگاري کليد عمومي گامهاي زير را برميداريم:
هر کاربر يک زوج کليد رمزگذاری و رمز گشايي توليد ميکند.
کاربران کليد رمزگذاری خود را به صورت عمومي اعالن ميکنند درحالي که کليد رمز گشايي مخفي
ميباشد.
همگان قادر به ارسال پيام رمز شده براي هر کاربر دلخواه با استفاده از کليد رمزگذاری (عمومي) او
ميباشند.
هر کاربر ميتواند با کمک کليد رمزگشايي (خصوص ي) پيامهايي که با کليد رمزگذاری (عمومي) او رمز
شده رمزگشايي کند.
60
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91
روش Hashیک روش یکطرفه One Way Functionاست که برای مطمئن
بودن از عدم تغییر dataاستفاده می شود .حفظ تمامیت یا Integrityدر این
روش از فایل یک واحدی از دیتا ایجاد میکند که فایل هش Hash Fileنام دارد و
حجم کوچکی دارد (در حد چند ۱۰بایت) و در صورتیکه فایل تغییر کند Hashآن نیز
تغییر میکند .در این روش هم در مبدا و هم در مقصد ،از فایلی که قرار است منتقل شود
Hashگرفته میشود که باید Hashمبدا و مقصد با هم برابر باشد .اگر در طول
مسیر انتقال فایل به هر دلیلی فایل تغییر کند Hashمبدا و مقصد یکی نخواهد شد.
الگوریتم Hashخود روشهای گوناگونی دارد که عبارتند از:
▪ روش MD4
▪روش MD5
▪روش SHA-A
61
مهندسی اینترنت -تویسرکان -کریمی -پاییز 91