1 / 16

رمزنگاری نامتقارن کلید عمومی

رمزنگاری نامتقارن کلید عمومی. تنها چند الگوریتم کلید عمومی هم امن و هم کاربردی هستند. الگوریتم زیر برای رمزنگاری و امضای دیجیتال مناسب هستند: RSA (1978) ElGamal (1985) Schnorr (1990) ECC (1985) DSA (1991) تنها برای امضای دیجیتال مفید است. تبادل کلید Diffie–Hellman. q : عددی اول

vian
Download Presentation

رمزنگاری نامتقارن کلید عمومی

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. رمزنگاری نامتقارن کلید عمومی

  2. تنها چند الگوریتم کلید عمومی هم امن و هم کاربردی هستند. الگوریتم زیر برای رمزنگاری و امضای دیجیتال مناسب هستند: • RSA (1978) • ElGamal (1985) • Schnorr (1990) • ECC (1985) • DSA (1991) تنها برای امضای دیجیتال مفید است.

  3. تبادل کلید Diffie–Hellman • q: عددی اول • α: عنصر اولیه ای از q • برای هر عدد صحیح Y، عدد منحصر بفرد x را پیدا می‎ کنیم که : Y ≡ αX (mod q), 1 <= X <=q − 1 • بنابراین: X = log αYover GF(q), 1 <= Y <=q − 1 • محاسبه Y از Xنسبتاً ساده بوده اما محاسبه X ازYبسیار مشکل است

  4. گام های Diffie–Hellman • مقادیر عمومی:q, α, Yi,Yj • مقادیر خصوصی: Xi,Xj • کلید محرمانه:Kij • کاربر i عدد صحیح تصادفی Xi را انتخاب می‎ کند. • کاربر j عدد صحیح تصادفی Xj را انتخاب می‎ کند. • کاربر i مقدار Xi را محرمانه نگه داشته، اما مقدار Yi≡ αXi (mod q) را برای کاربر j ارسال می‎ کند. • کاربر j مقدار Xj را محرمانه نگه داشته، اما مقدار Yj≡ αXi (mod q) را برای کاربر i ارسال می‎ کند. • هر دو کاربر i و j مقدار را به عنوان کلید مشترک محاسبه می‎ کنند.. • کاربر i: Kij ≡ YjXi (mod q) ≡ (αXj )Xi (mod q) ≡ αXiXj (mod q) • کاربر j: Kij ≡ YiXj (mod q)≡ (αXi )Xj≡ αXiXj (mod q)

  5. مثال • α = 2 و q = 11 • 2λ (1<=λ<=10): 21 22 23 24 25 26 27 28 29 210 • 2λ (mod 11) : 2 4 8 5 10 9 7 3 6 1 • کاربر i،Xi= 5 را انتخاب می‎ کند. • کاربر iمقدار Yi≡ αXi (mod q)≡ 25 (mod 11) ≡ 10 را برای کاربر j ارسال می‎ کند. • کاربر j،Xj= 7 را انتخاب می‎ کند. • کاربر jمقدار Yj≡ αXj (mod q)≡ 27 (mod 11) ≡ 7 را برای کاربر i ارسال می‎ کند. • در نهایت کاربر i و j کلید مشترک را حساب می‎ کنند. • کاربر i: Kij≡ YjXi (mod q) ≡ 75 (mod 11) ≡ 10 • کاربر j: Kji≡ Yixj (mod q) ≡ 107(mod 11) ≡ 10

  6. الگوریتم رمزنگاری RSA • p و q دو عدد اول بزرگ • n = pq • φ(n) = (p − 1)(q − 1) • e به نحوی که eوφ(n)نسبت به هم اول باشند • کلید رمزگشایی d به صورت زیر محاسبه می‎ شود • d ≡ e−1 (mod φ(n)) • or ed ≡ 1 (mod φ(n))

  7. کلید عمومی : • n(حاصل ضرب دو عدد اول p و q) • e(کلید رمز، نسبتاً اول با φ(n) = (p − 1)(q − 1) ) کلید خصوصی: • d(کلید رمزگشایی، d ≡ e−1 (mod φ(n)) ) رمزنگاری: • c ≡ me (mod n) رمزگشایی: • m ≡ cd (mod n) • cd≡ (me)d≡ med≡ m (mod n) در پیاده سازی سخت افزاری RSA 1000 مرتبه از DES کندتر است. امنیت RSA به سختی عمل فاکتور گیری اعداد بزرک بستگی دارد. در حال حاضر n باید عددی بزرگ تر از 129رقمی باشد.

  8. مثال • p = 17 وq = 31 • n = pq = 17 × 31 = 527 • φ(n) = (p − 1)(q − 1) = 16 × 30 = 480 • اگر e=7 انتخاب شود: • d ≡ e−1(mod φ(n)) ≡ 7−1(mod 480) ≡ 343ed≡7 × 343 (mod 480) ≡2401 (mod 480) ≡ 1 بنابراین d=7 • کلید عمومی (e, n)برای رمزنگاری پیام m لازم است، اگر m=2 باشد: • c ≡ me (mod n) ≡ 27 (mod 527) ≡ 128 • کلید خصوصی d برای رمزگشایی لازم است: • m ≡ cd (mod n)≡ 128343(mod 527) ≡ 2

  9. Example • پیام: ‘INFORMATION SECURITY’ • پیام بر اساس جدول انکد می‎شود • m = (0914061518130120091514001905032118092025) • p = 47 و q = 71انتخاب شده و بنابراین pq = 47 × 71 = 3337 • φ(n) = (p − 1)(q − 1) = 46 × 70 = 3220 • پیام اصلی به بلوک های چهار رقمی شکسته می‎ شود • 0914 0615 1813 0120 0915 • 1400 1905 0321 1809 2025

  10. بر اساس d ≡ e−1 (mod φ(n)) ≡ 79−1(mod 3220) ≡ 1019 مقدار e = 79 انتخاب میشود. • رمزنگاری بلوک اول: • c1 ≡ m1e(mod n)≡ 91479(mod 3337)≡ 3223

  11. امضای RSA • اگر کاربر A بخواهد پیام را کلید خصوصی خود امضا کند: • ϕ(nA) ≡ lcm (pA− 1, qA− 1) • lcm به معنای کوچکترین مضرب مشترک است. • (eA, dA) به نحوی که eA•dA≡ 1 (mod ϕ(nA)) • dA:کلید خصوصی A • پیام امضا شده: • c ≡ mdA(mod nA) • nAو eAبه عنوان کلید عمومی منتشر میشود

  12. مثال • p = 11 و q = 17 بنابراین: n=pq =187 • ϕ(n) = lcm (p − 1, q − 1)=lcm (10, 16) = 80 • eA= 27 انتخاب می‎ شود به نحوی که : • eAdA≡1(mod (nA)) 27dA≡1(mod80) dA=3 • فرض کنید پیام اصلی m=55 • امضای پیام: • c ≡ mdA (mod 187)≡ 553(mod 187) ≡ 132 • ایجاد مجدد پیام: • m ≡ ceA (mod n) ≡ 13227 (mod 187) ≡ 55

  13. مثال • اگر طول پیام خیلی بزرگ باشد، برای افزایش کارایی ابتدا خلاصه پیام را با کمک RSA محاسبه کرده و سپس پیام خلاصه شده را امضا می‎کنیم. • برای محاسبه خلاصه پیام = 75139m h ≡ H(m) (mod n) ≡ H(75139) (mod 187) ≡ 86a0aab5631e729b0730757b0770947307d9f597 ≡ 768587753333627872847426508024461003561962698135(mod 187) (decimal) ≡ 11 • کاربر A مقدار h را با کلید خصوصی dA امضا می‎ کند: c ≡ hdA (mod n)≡113(mod 187) ≡ 22 • برای بررسی اعتبار امضا داریم: h ≡ ceA (mod n) ≡ 2227 (mod 187) ≡ 11

More Related