رمزنگاري كليد عمومي بهروز ترك‏لاداني ladani@eng.ui.ac.ir 1.

Slides:



Advertisements
Similar presentations
IS 302: Information Security and Trust Week 4: Asymmetric Encryption
Advertisements

Abdullah Sheneamer CS591-F2010 Project of semester Presentation University of Colorado, Colorado Springs Dr. Edward RSA Problem and Inside PK Cryptography.
Public Encryption: RSA
Cryptography and Network Security Chapter 9. Chapter 9 – Public Key Cryptography and RSA Every Egyptian received two names, which were known respectively.
Cryptography1 CPSC 3730 Cryptography Chapter 9 Public Key Cryptography and RSA.
Introduction to Modern Cryptography Lecture 7 1.RSA Public Key CryptoSystem 2.One way Trapdoor Functions.
Private-Key Cryptography traditional private/secret/single key cryptography uses one key shared by both sender and receiver if this key is disclosed communications.
WS Algorithmentheorie 03 – Randomized Algorithms (Public Key Cryptosystems) Prof. Dr. Th. Ottmann.
Dr.Saleem Al_Zoubi1 Cryptography and Network Security Third Edition by William Stallings Public Key Cryptography and RSA.
Public Key Algorithms 4/17/2017 M. Chatterjee.
1 Pertemuan 08 Public Key Cryptography Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
Public Key Cryptography RSA Diffie Hellman Key Management Based on slides by Dr. Lawrie Brown of the Australian Defence Force Academy, University College,
RSA Encryption Caitlin O’Dwyer. What is an RSA Number? An RSA number n is a number s.t. n=pq Where p and q are distinct, large, prime integers.
Public Key Model 8. Cryptography part 2.
The RSA Algorithm Based on the idea that factorization of integers into their prime factors is hard. ★ n=p . q, where p and q are distinct primes Proposed.
Great Theoretical Ideas in Computer Science.
RSA Ramki Thurimella.
1 Lecture 9 Public Key Cryptography Public Key Algorithms CIS CIS 5357 Network Security.
Day 37 8: Network Security8-1. 8: Network Security8-2 Symmetric key cryptography symmetric key crypto: Bob and Alice share know same (symmetric) key:
Dan Boneh Public Key Encryption from trapdoor permutations Is RSA a one-way function? Online Cryptography Course Dan Boneh.
Private-Key Cryptography  traditional private/secret/single key cryptography uses one key  shared by both sender and receiver  if this key is disclosed.
Private-Key Cryptography  traditional private/secret/single key cryptography uses one key  shared by both sender and receiver  if this key is disclosed.
Darci Miyashiro Math 480 April 29, 2013
Public-Key Encryption
Public Key Cryptography. symmetric key crypto requires sender, receiver know shared secret key Q: how to agree on key in first place (particularly if.
1 Public-Key Cryptography and Message Authentication.
1 Number Theory and Advanced Cryptography 5. Cryptanalysis of RSA Chih-Hung Wang Sept Part I: Introduction to Number Theory Part II: Advanced Cryptography.
Cryptography and Network Security Chapter 9 - Public-Key Cryptography
PUBLIC-KEY CRYPTOGRAPH IT 352 : Lecture 2- part3 Najwa AlGhamdi, MSc – 2012 /1433.
Cryptography & Network Security : Topic Seminar Description & Analysis Madhava.N 1RV06SCN05 2 nd Semester M.Tech CNE RVCE RSA ALGORITHM.
Chapter 3 – Public Key Cryptography and RSA (A). Private-Key Cryptography traditional private/secret/single-key cryptography uses one key shared by both.
Fall 2002CS 395: Computer Security1 Chapter 9: Public Key Cryptography.
Public Key Algorithms Lesson Introduction ●Modular arithmetic ●RSA ●Diffie-Hellman.
PUBLIC-KEY CRYPTOGRAPHY AND RSA – Chapter 9 PUBLIC-KEY CRYPTOGRAPHY AND RSA – Chapter 9 Principles Applications Requirements RSA Algorithm Description.
Computer Security Lecture 5 Ch.9 Public-Key Cryptography And RSA Prepared by Dr. Lamiaa Elshenawy.
Lecture 3 (Chapter 9) Public-Key Cryptography and RSA Prepared by Dr. Lamiaa M. Elshenawy 1.
By Marwan Al-Namari & Hafezah Ben Othman Author: William Stallings College of Computer Science at Al-Qunfudah Umm Al-Qura University, KSA, Makkah 1.
RSA Cryptosystem Great Theoretical Ideas In Computer Science S. Rudich V. Adamchik CS Spring 2006 Lecture 8Feb. 09, 2006Carnegie Mellon University.
Breaking Cryptosystems Joshua Langford University of Texas at Tyler Fall 2007 Advisor: Dr. Ramona Ranalli Alger.
CSEN 1001 Computer and Network Security Amr El Mougy Mouaz ElAbsawi.
RSA Algorithm Date: 96/10/17 Wun-Long Yang. Outline Introduction to RSA algorithm RSA efficient implementation & profiling.
RSA cryptosystem with large key length
Public Key Cryptography
최신정보보호기술 경일대학교 사이버보안학과 김 현성.
Attacks on Public Key Encryption Algorithms
Visit for more Learning Resources
Public Key Cryptosystem
Asymmetric-Key Cryptography
RSA Slides by Kent Seamons and Tim van der Horst
Lecture 5 RSA DR. Nermin Hamza.
Public Key Encryption and Digital Signatures
RSA A public Key Algorithm.
Public-key Cryptography
Public Key Encryption and the RSA Algorithm
The RSA Algorithm JooSeok Song Tue.
Private-Key Cryptography
امنيت در شبکه هاي کامپوتري (1386)
Real-world Security of Public Key Crypto
ICS 353: Design and Analysis of Algorithms
The RSA Algorithm JooSeok Song Tue.
RSA A public Key Algorthim.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
MSIT 543 Cryptography Concepts and Techniques How RSA Encryption Works
Chapter 3 - Public-Key Cryptography & Authentication
PUBLIC-KEY CRYPTOGRAPHY AND RSA – Chapter 9
Introduction to Algorithms Second Edition by
Introduction to Cryptography
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
The RSA Public-Key Encryption Algorithm
Public Key Cryptography
Presentation transcript:

رمزنگاري كليد عمومي بهروز ترك‏لاداني ladani@eng.ui.ac.ir 1

اهداف آشنايي با مفاهيم و کاربردهاي رمزنگاري کليد عمومي مقايسه روشهاي رمزنگاري کليد عمومي با رمز نگاري متقارن بررسی يک نمونه از کاربرد کليد عمومی در روش توزيع کليدDH

فهرست مطالب مباني رمزنگاري کليد عمومي مقايسه رمزنگاري متقارن و رمزنگاري کليد عمومي كاربردهاي رمزنگاري کليد عمومي توابع يك طرفه معرفي چند الگوريتم کليد عمومي پيوست ها

مباني رمزنگاري کليد عمومي رمزنگاري کليد عمومي اساساً با انگيزه رسيدن به دو هدف طراحي شد: حل مساله توزيع کليد امضاي ديجيتال ديفي و هلمن اولين راه حل را در 1976 ارايه دادند.

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

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

رمزگذاری کليد عمومي

مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي رمزنگاري مرسوم (کليد خصوصي) استفاده از يك كليد يکسان و مخفي براي رمزگذاري و رمزگشايي مشكل مديريت كليدها نياز به توافق بر روي كليد پيش از برقراري ارتباط براي ارتباط n نفر باهم به n(n-1)/2 كليد احتياج داريم عدم پشتيباني از امضاء الكترونيكي سريع‌‌تر از الگوريتمهاي رمزگذاری با كليد عمومي

مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي رمزگذاری مرسوم (کليد متقارن) براي امن بودن بايد: كليد مخفي نگه‌ داشته شود. رسيدن به پيام واضح از روي متن رمز شده از نظر محاسباتي نا ممکن باشد. اطلاع از الگوريتم و داشتن نمونه‌هايي از پيغام رمز شده براي تعيين كليد كافي نباشد.

مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي مقايسه رمزنگاري مرسوم و رمزنگاري کليد عمومي ملزومات امنيتي(رمزگذاری با كليد عمومي) تنها يكي از دو كليد بايد مخفي بماند رسيدن به پيام واضح از روي متن رمز شده حتي با داشتن کليد عمومي از نظر محاسباتي نا ممکن باشد. اطلاع از الگوريتم، داشتن يكي از كليدها و نيز دراختيار داشتن نمونه پيغام‌های رمزشده براي تعيين كليد دوم كافي نباشد.

جايگزيني يا تكميل؟ از نظر كاربردي، رمزگذاری با كليد عمومي بيش از آنكه جايگزيني براي رمزگذاری مرسوم باشد, نقش مكمل آنرا براي حل مشکلات توزيع كليد بازي مي كند.

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

نمادها و قراردادها کليد عمومي: کليد رمزگذاری اين کليد را براي شخص a با KUa نشان ميدهيم. کليد خصوصي: کليد رمز گشايي اين کليد را براي شخص a باKRa نشان ميدهيم.

محرمانگي و احراز هويت به صورت همزمان رمزگذاری کليد عمومي: محرمانگي و احراز هويت به صورت همزمان

كاربردهاي رمزگذاری کليد عمومي دسته بندي كلي كاربردها رمزگذاری/ رمز گشايي : براي حفظ محرمانگي امضاء رقمي : براي حفظ اصالت پيام و معين نمودن فرستنده پيام (پيوند دادن پيام با امضاء کننده) توزيع كليد : براي توافق طرفين روي كليد نشست مخفي

کاربردهاي برخي الگوريتمهاي کليد عمومي توزيع كليد امضاء رقمي رمزگذاری/ رمز گشايي الگوريتم √ RSA × Diffie Hellman DSS

جايگاه عملي رمزگذاری کليد عمومي کليدهاي اين نوع از الگوريتمها بسيار طولاني تر از الگوريتمهاي مرسوم (کليد متقارن) ميباشند. الگوريتم RSA با پيمانه 1024 بيتي امنيتی در حد الگوريتمهای متقارن با کليدهای 80 بيتي دارد. سرعت الگوريتمهاي کليد عمومي از الگوريتمهاي رمزگذاری مرسوم پايين تر است. RSA تقريباً 1000 بار کند تر از رمزهاي کليد متقارن (با امنيت يکسان) ميباشد.

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

توابع يك طرفه تابع يک طرفه: تابع f(.) را يک طرفه گوييم اگر يافتن مقدار ورودي تابع از روي مقدار خروجي از لحاظ محاسباتي ناممکن باشد. يک تابع يک طرفه همانند ماشين چرخ گوشت عمل ميکند! از روي خروجي (گوشت چرخ شده ) نمي توان ورودي را بازسازي کرد.

دريچه اما در برخي کاربردها نياز داريم تا ورودي تابع يک طرفه را معين کنيم... وجود يک دريچه در تابع: اطلاعات اضافي که با دانستن آنها ميتوانيم تابع را به روشي کارا معکوس کنيم.

توابع يك طرفه دريچه دار مجموعه اي از توابع معكوس پذير fk(.) به طوريكه : محاسبه y= fk(x) با دانستن k و x آسان باشد محاسبه fk-1(y) x=با دانستن k و y آسان باشد محاسبه fk-1(y) x= با دانستن y و مخفي بودن k امكانپذير نباشد

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

كليات الگوريتم رمز نگاري RSA توسط Adleman- Shamir- Rivestدر سال 1977 در MIT ارائه شد مشهورترين و پركاربردترين الگوريتم رمزگذاری كليد عمومي مبتني بر توان رساني پيمانه ايي استفاده از اعداد طبيعي خيلي بزرگ امنيت آن ناشي از دشوار بودن تجزيه اعداد بزرگ، که حاصلضرب دو عامل اول بزرگ هستند، می باشد. مستندات مربوط به آن تحت عنوان PKCS استاندارد شده است.

نمادگذاري RSA N : پيمانه محاسبات e: نماي رمزگذاری d: نماي رمزگشايي M: پيام ، عدد صحيح متعلق به تابع RSA: دريچه تابع همان d ميباشد. تابع معکوس:

مباني رياضي RSA مي خواهيم: Med mod N = M يك نتيجة فرعي از قضية اولر: اگر دو عدد اول p و q و دو عدد صحيح m و n داشته باشيم به نحوي كه n=p.q و 0< m < n ، داريم: mk.(n)+1 mod n = mk.(p-1)(q-1)+1 mod n = m mod n كه در آن k يك عدد صحيح دلخواه و (n) تعداد اعداد کوچکتر از n است که نسبت به n اول هستند ((n)=(p-1)(q-1)) . بنابر اين بايد داشته باشيم: e.d = k. (n) +1 يا به عبارت ديگر e.d = 1 (mod (n) ) بنابر اين بايد gcd((n), e) =1

RSA Key generation

RSA Encryption and Decryption

قراردادها و پرتکل RSA هم فرستنده و هم گيرنده مقدار N را مي‌دانند فرستنده مقدار e را مي‌داند کليد عمومی : (N , e) تنها گيرنده مقدار d را مي‌داند کليد خصوصی : (N, d) نيازمنديها: محاسبه Me و Cd آسان باشد محاسبه d با دانستن کليد عمومی غيرممكن باشد

RSA -مثال p = 17, q = 11, n = p*q= 187 (n) = 16*10 =160, pick e=7, d.e=1 mod (n)  d = 23

روشهاي کارا براي محاسبه نما براي محاسبه ab (mod N) الگوريتمهاي متفاوتي ابداع شده است. فرض کنيد bkbk-1…b0 نمايش مبناي 2 عدد b باشد. بنابراين خواهيم داشت:

الگوريتم توان و ضرب بر اين مبنا ميتوان الگوريتم زير را طراحي نمود:

مثال عددي الگوريتم توان و ضرب نتيجه الگوريتم توان رساندن سريع پيمانه ايي براي ab mod n که مقادير a،b و n عبارتند از: a=7,b=560=(1000110000)2,n=561

حملات وارد بر RSA حمله آزمون جامع(Brute Force) حملات رياضي حمله زماني طول كليد با پيدايش هر نسل جديد از پردازنده ها افزايش مي يابد، ضمن اينكه قدرت پردازشي هكرها زياد مي شود! طول کليد معادل تعداد بيتهای پيمانه محاسبات(N) می باشد. حملات رياضي تجزيه پيمانه N محاسبه (N) براي N هاي بزرگ محاسبه d حمله زماني زمان اجراي عمليات رمزگذاری يا واگشايي رمز ميتواند اطلاعاتي را در مورد کليد افشاء کند.

حملات رياضي RSA مقاله Dan Boneh در دانشگاه Stanford (پيوست) : Twenty Years of Attacks on the RSA Cryptosystem 1999

راه حل براي حملات رياضي قبل از اعمال تابع RSA پيام را پيش پردازش مينماييم. الگوريتم OAEP: Optimal Asymmetric Encryption Padding (استاندارد PKCS#1 V.2) با کمک اعمال توابع درهم ساز ومقادير تصادفي پيام را پردازش ميکند. (پيوست 3)

راههاي مقابله با حمله زماني به RSA استفاده از توان رساندن با زمان ثابت محاسباتي. اضافه كردن تاخيرهاي تصادفي قرار دادن اعمال اضافی و گمراه کننده در بين محاسبات

الگوريتم Diffie Hellman براي تبادل کليد. امنيت برمفروضات DH بر روي مقادير p و  توافق ميکنند. q يک عدد اول و  يک مولد براي اين عدد ميباشد.

الگوريتم Diffie - Hellman α , q : عمومی Alice Bob مقدار تصادفي XA را انتخاب ميکند مقدار تصادفيXB را انتخاب ميکند کليد مشترک عبارت است از

حمله مرد ميانی مهاجم به عنوان کانال ارتباطي ميان طرفين عمل ميکند. حمله فعال محسوب ميشود الگوريتم Diffie-Hellman را تهديد می کند.

حمله مردي در ميانه Alice Kevin Bob YA YK’ YK YB Bob گمان ميکند کليد K2 را با Alice به اشتراک گذاشته است Alice گمان ميکند کليد K1 را با Bob به اشتراک گذاشته است

پيوست ها

پيوست 1 توابع يک طرفه

توابع يک طرفه تعريف: تابع f(.) را يک طرفه گوييم اگر: طول ورودي و خروجي يکسان باشد. f(.)در زمان چند جمله ايي قابل محاسبه باشد. f-1(.) در زمان چند جمله اي تصادفي قابل محاسبه نباشد. توجه: تابع f(.) لزوماً يک به يک نيست. مقدار y و w لزوماً يکسان نيست.

سختي معکوس پذيري… براي n هاي به اندازه کافي بزرگ ماشينM تابع f(.)را حد اکثر بر روي n-k از ورودي ها معکوس ميکند. براي هر ماشين تورينگ M براي هر ثابت طبيعي k احتمال بر روي فضاي زير محاسبه ميشود: انتخابهاي ماشين M انتخاب تصادفي w

پيوست 1 حملات رياضي RSA

Factoring Large integer Open Problem: Is breaking RSA as hard as factoring: Fact: Let N,e be an RSA public key. Given the private key d, one can efficiently factor the modulus N=pq, Conversely, given the factorization of N, one can efficiently recover d.

Low Private Exponent Fast decryption requires small d. Theorem(M. Wiener) Let N=pq with qp2q. Let dN0.25/3. Given N,e with ed=1 mod (N), Marvin can efficiently recover d. Solutions. Large e: using N,e , where e= e+t(N) for some large t . Usually, eN1.5 is sufficient. Using CRT to accelerate decryption. However, given N,e, there exists an attack to factor N in O(min(dp1/2, dq1/2)). Hence dp,dq cannot be too small.

Optimal Asymmetric Encryption Padding پيوست 3 Optimal Asymmetric Encryption Padding

OAEP s t r G 0k1 M H r :مقدار تصادفي M: پيام :0k1 يک رشته شامل k1 عدد صفر G و H : توابع در هم ساز در انتها دو رشته s و t به هم الحاق شده و به تابع RSA خورانده ميشوند. با دانستن s و t به راحتی عمليات معکوس ميشوند. r = H(s) + t M|| 0k1 = G(r) + s