Download presentation
Presentation is loading. Please wait.
Published byMaria do Mar Antunes de Mendonça Modified over 6 years ago
1
کدهاي احراز تماميت پيام و توابع درهم ساز
بهروز تركلاداني 1
2
پيش در آمد در اين فصل روشهاي حفظ پيام در برابر تغييرات ناخواسته و شناسايي صحت محتواي پيامها مطالعه ميشوند. ابزارها: کدهاي احراز هويت پيام توابع درهم ساز چهارچوب مطالعاتي رمزنگاري کليد خصوصي ميباشد.
3
فهرست مطالب مفاهيم اوليه رمزنگاري کليد خصوصي و کدهاي تشخيص خطا
کد هاي احراز تماميت پيام اصول توابع درهم ساز توابع درهم ساز مهم HMAC
4
احراز تماميت پيام چيست؟
اطمينان از: تماميت پيام؛ يعني پيام دريافتي دستکاري نشده است: بدون تصحيح، بدون درج، بدون حذف پيام از جانب فرستنده ادعا شده ارسال شده است
5
محرمانگي تماميت پيام 1 Adversary EVE 0 1 1 0 1 ... Bob Shared Network
Alice
6
اهميت تماميت پيام در بسياري از کاربرد ها، مثلاً تراکنشهاي بانکي، اينکه ارتباطات مخفيانه باشند اهميت زيادي ندارد ولي اينکه محتواي آنها قابل اعتماد باشند از اهميت بسيار بالاتري بر خوردار است.
7
يک نکته رمزنگاري مرسوم (کليد خصوصي): رمزنگاري کليد عمومي:
کدهاي احراز تماميت پيام احراز تماميت پيام رمزنگاري کليد عمومي: امضاي ديجيتال عدم انکار موضوع اين فصل
8
ايده اساسي طرفين يک کليد مخفي به اشتراک بگذارند.
ارسال هر پيام، به همراه يک برچسب که تابعي است از: کليد مخفي و متقارن پيام به طوري که: بدون دانستن کليد توليد اين برچسب نا ممکن باشد. با تغيير پيام، برچسب کاملاً تغيير کند.
9
راه کارهاي احراز تماميت پيام
رمزنگاري کليد خصوصي استفاده از توابع درهم ساز براي احراز تماميت پيام کد احراز تماميت پيام همه ميتوانند پيام را بخوانند، ولي تنها صاحب کليد مخفي ميتواند تماميت آن را بررسي کند.
10
رمزنگاري کليد خصوصي براي احراز تماميت پيام
فرستنده پيام را رمز ميکند. اگر متن رمز شده دستکاري شود هنگام رمز گشايي به متن واضح نامفهوم (درهم و برهم) ميرسيم. گيرنده، بعد از رمز گشايي چک ميکند که آيا پيام مفهوم است يا نه؟
11
مشکلات رمزنگاري بررسي مفهوم بودن محتوي همواره آسان نيست:
در حالت کلي نوعي افزونگي يا ساختار دروني مورد انتظار را جستجو ميکنند. بررسي قواعد زبان (فارسي، انگليسي،... ) دشواري خودکارسازي فرآيند چک کردن .... هنگام ارسال داده اگر داده ها خود تصادفي به نظر برسند، يعني از ساختار دروني خاصي تبعيت ننمايند، بررسي محتوي تقريباً ناممکن است راه حل: استفاده از کدهاي تشخيص خطا مثال: يک بيت به انتهاي پيام اضافه نماييم، به گونه ايي که تعداد بيتهاي يک زوج شود. يک کد متداول CRC
12
کدهاي تشخيص خطا تابع F يک کد تشخيص خطا است
اضافه نمودن “ دنباله بررسي قالب ”، FCS، توسط تابع F يک مثال از تابع F ، کد CRC مي باشد. گيرنده، بعد از رمز گشايي چک ميکند که آيا “ دنباله بررسي قالب “ محاسبه شده توسط F با برچسب پيام مطابقت دارد يا نه؟
13
نا امن بودن کدهاي تشخيص خطا-1
کدهاي تشخيص خطا مانند CRC براي تشخيص خطاي حاصل از نويز در کاربردهاي مخابراتي طراحي شده اند. نويز: تغييرات غير هوشمندانه و غير عمدي دشمن: تغييرات هوشمندانه و عمدي حملات موفقي به الگوريتمهايي که از کدهاي تشخيص خطا استفاده ميکردند، صورت پذيرفته است. مثال: پروتکل IEEE
14
= = پروتکلIEEE 802.11 براي امنيت مخابرات سيار
الگوريتم رمزنگاري دنباله ايي RC4 و کد تشخيص CRC متن رمزشده C = متن واضح P RC4(iv,k) پيام M Checksum F(M) + متن واضح P پيام M Checksum c(M) + RC4(iv,k) متن رمز شده C =
15
ضعف پروتکلIEEE 802.11 براي امنيت مخابرات سيار
الگو ريتم رمزنگاري RC4 و کد تشخيص CRC CRC يک الگو ريتم خطي است: CRC(X Y) = CRC(X) CRC(Y) RC4 نيز خاصيت زير را دارد: RC4(k,X Y) = RC4(k,X) Y حمله: RC4(k,CRC(XY)) = RC4(k,CRC(X)) CRC(Y)
16
تصحيح غير مجاز بسته RC4k(CRC(XY)) = RC4K(CRC(X)) CRC(Y) پيام
…………………………………… پيام 10110………… CRC-32 برچسب RC4 ………………………………………………………… XOR …………………………………… 11011………… …………………………………… 00110………… XOR …………………………………… 11101………… بسته دستکاري شده RC4k(CRC(XY)) = RC4K(CRC(X)) CRC(Y)
17
نتيجه گيري کد تشخيص خطا نميتواند در حالت کلي از دستکاري بسته ها جلوگيري کند. راه حل: کد هاي احراز تماميت پيام
18
کد هاي احراز تماميت پيام
توليد يک برچسب با طول ثابت: وابسته به پيام لزوماً برگشت پذير نيست نيازمند يک کليد مخفي مشترک بين طرفين آنرا به اختصار MAC مينامند. نام ديگر “Cryptographic Checksum” اين برچسب را به پيام اضافه ميکنند گيرنده خود برچسب پيام را محاسبه نموده و با برچسب ارسالي مقايسه ميکند. از تماميت پيام و هويت فرستنده اطمينان حاصل ميشود.
19
کد هاي احراز تماميت پيام
20
کد هاي احراز تماميت پيام
محرمانگي و تماميت
21
FAQ-MAC! آيا MAC همانند امضا غير قابل انکار است؟ خير
22
امنيت MAC MAC همواره پيامها را به يک طول ثابت مي نگارد.
يک به يک نيست پيامهاي متفاوت MAC يکسان دارند. براي حمله ميتوان پيام هاي متمايزي يافت که برچسب يکسان داشته باشند. تصادم: دو پيام با MAC يکسان
23
ويژگيهاي MAC ويژگيهاي يک MAC مناسب :
با دانستن يک پيام و بر چسب آن، يافتن پيام متفاوتي با برچسب يکسان از لحاظ محاسباتي ناممکن باشد. توزيع خروجي MAC بايد يکنواخت باشد تا احتمال اينکه دو پيام تصادفي MAC يکسان داشته باشند، کمينه شود. نکته: طول برچسب همانند طول کليد در امنيت MAC تاثير دارد. (بنا به حمله روز تولد)
24
کداحراز تماميت پيام DAA
DAA (Data Authentication Algorithm) استاندارد NIST و ANSI X9.17 بر اساس رمز قطعه ايي DES و مد کاري CBC همانند رمز نگاري CBC، پيام را پردازش کرده و تنها آخرين قطعه را به عنوان برچسب استفاده ميکنيم.
25
DAA متن واضح (تقسيم شده به قطعات) DES P1 K + P2 P3 PN MAC …
26
توابع درهم ساز تابع يكطرفه، طول ورودي متغير
طول خروجي ثابت (نگاشت از فضاي بزرگتر به فضاي كوچكتر) در حالت کلي، کليدي در کار نيست!
27
امنيت توابع درهم ساز-ايده کلي
نگاشت پيامهاي طولاني به رشته هاي کوتاه به گونه ايي که: يافتن پيامهاي متفاوتي که به يک رشته يکسان نگاشته شوند دشوار باشد. به اين رشته عصاره يا چکيده پيام ميگوييم.
28
امنيت توابع درهم ساز توابع درهم ساز بايد يک طرفه باشند.
براي يک h داده شده، بايد يافتن x به گونه ايي که h = H(x) از لحاظ محاسباتي ناممکن باشد. مقاومت در برابر تصادم (ضعيف) براي يک x داده شده، بايد يافتن y به گونه ايي که H(y) = H(x) از لحاظ محاسباتي ناممکن باشد. مقاومت در برابر تصادم (قوي) يافتن x و y به گونه ايي که H(y) = H(x) از لحاظ محاسباتي ناممکن باشد
29
مقايسه تصادم قوي و ضعيف ممکن است ساختار تابع H طوري باشد که :
بتوان تعداد محدودي x و y يافت به گونه اي که مقادير تابع تصادم پيدا کنند.(تصادم قوي) ولي براي يک x داده شده همواره نتوان يک y پيدا کرد بطوريکه H(y) = H(x) (تصادم ضعيف) ارضاشدن شرط تصادم قوي براي يک تابع دشوار تر از ارضاشدن شرط تصادم ضعيف ميباشد. توابعي که در برابر تصادم قوي مقاومت کنند امنيت بالاتري دارند
30
امنيت توابع درهم ساز: پيچيدگي حمله
توابع درهم ساز بايد يک طرفه باشند. پيچيدگي جستجوي کامل (آزمون جامع) 2n ميباشد، که n طول خروجي تابع است. مقاومت در برابر تصادم (ضعيف) پيچيدگي جستجوي کامل (آزمون جامع) 2nميباشد مقاومت در برابر تصادم (قوي) پيچيدگي جستجوي کامل (آزمون جامع) 20.5*nميباشد دقت کنيد آزمون جامع بيانگر حداکثر امنيت ممکن براي تابع است زيرا ممکن است به دليل ضعف طراحي، حملات موثرتري نيز امکان پذير باشد. با کمک حمله روز تولد
31
توابع درهم ساز و رمز نگاري متقارن: تماميت
توابع درهم ساز و رمز نگاري متقارن: تماميت خطر اگر پيام M’ را بتوان يافت بطوريکه H(M) = H(M’) (تصادم ضعيف) M را ميتوان توسط M’ جعل نمود
32
توابع درهم ساز و رمز نگاري متقارن: محرمانگي و تماميت
33
توابع درهم ساز و رمز نگاري نا متقارن: امضاء
توابع درهم ساز و رمز نگاري نا متقارن: امضاء
34
روشهاي ديگر احراز تماميت پيام
طرفين راز s را مخفيانه به اشتراک گذاشته اند. بدون استفاده از رمزنگاري کاربرد عملي زياد
35
روشهاي ديگر احراز تماميت پيام
روش قبل + محرمانگي رمزنگاري صرفاً براي محرمانگي است.
36
ساختار دروني تابع درهم ساز: ايده اساسي
اعمال مکرر يک تابع فشرده ساز (Ralph Merkle) اگر تابع فشرده ساز مقاوم در برابر تصادم باشد، تابع درهم ساز نيز همين گونه خواهد بود. توابع معروفي مانند 5 MD5: Message Digest SHA-1: Secure Hash Algorithm -1 از همين ايده استفاده ميکنند.
37
ساختار دروني توابع درهم ساز-2
پيام پيام به قطعات Yi تقسيم شده است. IV يک رشته ثابت ميباشد. CV0=IV CVi= f(CVi-1,Yi-1) Hash = CVL
38
توجه براي مطالعه جزييات ساختار توابع به پيوست ها مراجعه فرماييد. MD5
SHA-1 RIPMED
39
توابع درهم ساز مهم: MD5 MD5: Message Digest 5
طراحي 1992 توسط “ران ريوست”، يکي از سه طراح RSA استفاده گسترده در گذشته، اما از کاربرد آن کاسته شده است. ويژگيها: پيام به قطعات 512 بيتي تقسيم ميشود خروجي 128 بيتي
40
امنيت MD5 حملات کارگر به اين الگوريتم يافت شده اند:
مقاومت در برابر تصادم (قوي) تحت حمله آزمون جامع: 264 امروزه امن محسوب نميشود. حملات کارگر به اين الگوريتم يافت شده اند: Berson سال 1992: حمله تفاضلي به يک دور الگوريتم Boer وBosselaers سال 93: يافتن تصادم هاي مجازي Dobbertin سال 96: تصادم در تابع فشرده ساز
41
توابع درهم ساز مهم: SHA-1
SHA-1: Secure Hash Algorithm – 1 استاندارد NIST، 1995 طول ورودي < 264 بيت طول خروجي 160 بيت استفاده شده در استاندارد امضاي ديجيتال DSS امنيت: مقاومت در برابر تصادم (قوي) تحت حمله آزمون جامع: 280 امن محسوب ميشود در برابر حملات شناخته شده مقاومت بالايي دارد
42
گونه هاي SHA-1 براي سازگاري با AES نسخه هاي زير نيز استاندارد شده اند:
SHA-512، SHA-256 و SHA -384
43
توابع درهم ساز مهم: RIPEMD
طراحي در اروپا در سال 1997 مشخصات همانند SHA-1 قابل مقايسه با SHA-1 از لحاظ امنيت و سرعت سرعت هر دو تقريباً نصف MD5
44
مقايسه MD5،SHA-1، RIPEMD-1
45
HMAC-1 HMAC يک الگوريتم احراز هويت پيام است
براي توليد چکيده پيغام، از توابع درهم استفاده شده است در مقابل استفاده از رمزهاي قطعه اي بدليل مزاياي عملي توابع درهم ساز
46
HMAC-2 HMAC جزو ملزومات پياده سازي IPSec ميباشد.
HMAC به طور گسترده استفاده ميشود (مثلاً SSL)
47
HMAC: اهداف طراحي استفاده از توابع درهم ساز بدون تغيير آنها
پشتيباني از توابع درهم ساز متنوع حفظ کارايي و سرعت تابع درهم ساز به کار گرفته شده استفاده ساده از کليد طراحي روشن و بدون ابهام
48
HMAC: الگوريتم H : تابع درهم ساز به کار گرفته شده :M پيام ورودي
K: کليد مخفي K+ : کليد مخفي که يک دنباله صفر به آن اضافه شده است ipad : تکرار رشته opad : تکرار رشته HMACK = H[(K+ opad) || H[(K+ ipad) || M ]]
49
H[(K+ opad) || H[(K+ ipad) || M ]]
پيام H[(K+ ipad) || M ] H[(K+ opad) || H[(K+ ipad) || M ]]
51
HMAC: امنيت ارتباط دقيق بين امنيت تابع در هم ساز با امنيت HMAC اثبات شده است. مقاومت HMAC در برابر حمله روز تولد از تابع در هم ساز به کار گرفته شده، بيشتر است. استفاده از MD5 در هنگام نياز به سرعت بيشتر مجاز است.
52
پيوست ها
53
پارادکس روز تولد حداقل مقدار k چقدر است به نحوي كه در يك گروه k نفري احتمال اينكه دو نفر در يك روز به دنيا آمده باشند بيش از 0.5 باشد؟
54
پارادکس روز تولد تعداد حالات ممكن به نحوي كه k نفر روز تولد متقاوت داشته باشند: 365*364*… *(365-k+1) = 365!/(365-k)! احتمال اينكه هر k نفر در يك جمع k نفره داراي روز تولد متفاوت باشند: P = (365!/(365-k)!)/(365)k احتمال اينكه حداقل دو نفر در يك جمع k نفره داراي روز تولد يكسان باشند: 1-P = !/((365-k)!)*(365)k )
55
پارادکس روز تولد
56
پارادکس روز تولد در ميان 23 نفر، احتمال يافتن دو نفر که در يک روز متولد شده اند بيش از 50% ميباشد.
57
پارادکس روز تولد تعميم مسئله: حداقل k چقدر است به نحوي كه با احتمال بيش از 0.5 يك تكرار در k عنصر داشته باشيم به نحوي كه هر عنصر مقاديري در بازة 1 تا n بتواند اختيار كند؟ با تعميم حل قبلي مي توان به دست آورد كه: k=1.18 * n0.5 = n0.5 n= 365 k=23
58
پارادکس روز تولد مبناي رياضي
تابع H با خروجي ممکن را در نظر بگيريد(خروجي m بيتي) H را به k ورودي تصادفي اعمال کنيم و خروجي را مجموعه X در نظر مي گيريم. به همين ترتيب مجموعه Y را تشکيل مي دهيم اگر k بزرگتر از باشد، احتمال حداقل يک تصادم در بين اعضاي دو مجموعه X و Y بيش از ½ مي باشد
59
حمله روز تولد ممکن است تصور کنيد يک MAC يا Hash 64 بيتي امن است اما...
با حمله روز تولد امنيت از بين ميرود: مهاجم تتت پيام معتبر که اساساً هم معنا هستند توليد ميکند. m طول خروجي Hash است. مهاجم همين تعداد پيامهاي دلخواه خود را توليد ميکند. ( که معناي ساختگي دارند) دو دسته پيام مقايسه ميشوند تا زوجي يافت شود که Hash يکسان داشته باشند. از کاربر ميخواهيم تا پيام معتبر زوج را امضا نمايد، و سپس پيام دلخواه دشمن را جايگزين ميکنيم.
60
مثالي از حمله (نمونه معتبر)
Dear Dean Smith, This [ letter | message ] is to give my [ honest | frank ] opinion of Prof Tom Wilson, who is [ a candidate | up ] for tenure [ now | this year ]. I have [ known | worked with ] Prof Wilson for [ about | almost ] six years. He is an [ outstanding | excellent ] researcher of great [talent | ability ] known [ worldwide | internationally ] for his [ brilliant | creative ] insights into [ many | a wide variety of ] [difficult | challenging ] problems.
61
مثالي از حمله (پيام دشمن)
Dear Dean Smith, This [ letter | message ] is to give my [ honest | frank ] opinion of Prof Tom Wilson, who is [ a candidate | up ] for tenure [ now | this year ]. I have [ known | worked with ] Prof Wilson for [ about | almost ] six years. He is an [ poor | weak ] researcher not well known in his [ field | area ]. His research [ hardly ever | rarely ] shows [ insight in | understanding of ] the [ key | major ] problems of [the | our ] day.
62
ساختار داخلي توابع درهم ساز
63
MD5
64
MD5 Logic Step 1.Appending padding bits Step 2.Appending length
Congruent to 448 modulo 512 Step 2.Appending length Length modulo 64 L * 512-bit, N * 32 bit M[i] : ith word Step 3.Initialize MD buffer Four 32-bit register (A B C D), little endian A = B = EFCDAB89 C = 98BADCFE D =
65
MD5 Logic Step 4.Process message in 512-bit blocks Four rounds
Each round has a different primitive function, F, G, H and I Use one-fourth of T[i] T[i] = 232 * abs(sin(i))
66
تابع بولي gدر MD5 Round Primitive function g g(b,c,d) 1 F(b,c,d) 2
(b c) (b d) 2 G(b,c,d) (b d) (c d) 3 H(b,c,d) b c d 4 I(b,c,d) c (b d)
67
MD5 Logic Step 5. Output
68
MD5 Compression Function
X[i] is used once, during one step ρ2(i) = (1 + 5i) mod 16 Ρ3(i) = (5 + 3i) mod 16 Ρ4(i) = 7i mod 16 Each step, only 4 bytes is updated
69
SHA-1
70
SHA-1 Logic Step 1. Appending padding bits Step 2. Append length
Step 3. Initialize MD buffer Five 32-bit registers, E = C3D2E1F0 Big-endian
71
SHA-1 Logic Step 4. Process message in 512-bit blocks Step 5. Output
Four rounds of 20 steps Step 5. Output
72
SHA-1 Compression Function
Kt is a additive constant varying across rounds
73
SHA-1 Compression Function
Wt = S1(Wt Wt-14 + Wt-8 + Wt-3)
74
RIPEMD
75
RIPEMD-160 Logic Step 1. Appending padding bits Step 2. Append length
Step 3. Initialize MD buffer Same value is used in SHA-1 Little-endian
76
RIPEMD-160 Logic Step4. Processing message Step5 .Output
10 rounds of 16 steps Five primitive functions f1, f2, f3, f4, f5 Nine additive constant Addition is involves a rotation Step5 .Output
77
RIPEMD Compression function
π (i) = 9i + 5 (mod 16)
78
RIPEMD Design decision
Two parallel lines are used Increase complexity of finding collisions between rounds Two lines use same logic Simplicity Difference Additive constants Order of primitive functions Order of processing of message block Use five words, and rotation of the C word
79
RIPEMD Design decision
Permutations Effect that two word that are close in one round are relatively far apart in the next Circular left Range from 5 to 15 Different amounts for the five rounds Not have special pattern (not be divisible by 32) Not too many shift should be divisible by 4
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.