صفحه 1:
صفحه 2:
صفحه 3:
تاریخچه
۳ elo b 6559 ping SII JLeaalb 4353 1984 Jlw 59 *
رمزنكارى نامتقارن (كليد عمومى) عرضه كرد كه از لحاظ
reoerrre| Prareeeng| PO =| race rare] ( ل ل 1م
Rey Yap CRCCar ear hee ras) Fey Ay: We rROWIN Ty CrgT.) ige]|
Peper ley) Vir tyre bee npr arse repr Pes
| ا ا eer)
صفحه 4:
بجه ۵6
0 روت
۲۵ ۲۱«
Bob
فلا
یک کلید ۰
فرض کنید آلیس می خواهد برای خود یک کلید عمومی و یک کل
ع ل ا ا ل ال
كليد عمومى آليس براى او بفرستد.
صفحه 5:
الكوريتم الجمال : محاسبه كليد عمومى Gee
۱ _ آلیس یک عدد اول بسیار بزرگ (ملاً ۲۰۰ رقمی) به نام ۳) اتتخاب کند .
لت
Lees] g ا ا ا لان ار
آن را +" می نامد. ۳
2
ا اا SS Seles. ان ا Steer een ۱
1ط
۴.سپس ) را به شکل زیر بدست می آيد
ام
erTe te Lay ا ل ل ل ل ل ل
دهد در حالی ا م م ل ل
©5506
ال ۱
Pe ered a]
صفحه 6:
3
Pet] Pee | 530000 1
باب مى خواهد ييام 57 را به آليس بفرستد ييام ها را به بلوك هاى 1" كاركترى تقسيّ.
Benes ا ا ل 0 5 roe ل ل 0 0
الى
۳ ۳ ۱0۹ 0 val hee eRe ne ag
". هر بلوك 0() را طبق رابطهى زير به دو عدد
| تبدیل و برای آلیس می فرستد:
m: B‘mod p ( ۰(
+++ باب برای بلوک های متوالی را تغییر می دهد
1
که به شکل زیر است.
۱
صفحه 7:
Pee Sere ا
صفحه 8:
0 Pee ees
5310 lic
pare eee St
Caled: ano ا ا ا UES TOTES,
Cerne NRC Et]
. را (با ترتیبی متفاوت) تولید می کند 2 nS eS)
1 Ter ic
۱۳ ل
لمان 3 كليد خصوصى
)۳,9,۵(
LS ealsl DP ={08,..., 9}
صفحه 9:
چرا است و جلوتر نرفته ايم ؟
Beer eee Wh Sa A er tere OCR CRE ا ا
sere rd
يس توان ها به ييمانه 5 0 38S 9 به صورت منظم تکرار خواهد شد :
2047-17 أو .كو
7 - 17047و .(6و ) - 47ممر أو .720و + 7 mod 72و
صفحه 10:
۱
چرا « عدد اول و بزرگ است؟
0 NT eee Tee Ruy pene NG CACC TS? Eke ig
Rens rree Ree reaper acer ee ECCT
يس در مورد وجود ريشه هاى اوليه براى هر مجموعه م*,1 با فرض اول يودن 7 شكى نيست و حتى
تعداد مولد ها را می توانیم بدست بياوریم ولی آن چه تا به امروز لاینحل باقی مانده است روشی
است كه بر اساس ما مولدهای یک مجموعه مثل 1,*۳" را یافت و در اين خصوص
پاید به سعی و خطا و آزمون متوسل شد .
ار 19
شود
0-00
1 - 9 )
تعداد ریشه های اولیه به پیمانه 0 : )1 مم دلق
252*171 101 1 [1 0 0 Cd
است از
2۴1
تابع اویلر : تعداد اعداد صحیح مثبت کوچکتر از 8 به طوری که نسبت به 9 اول باشند : 51
gcd(a,n)=1 RCE SC cs]
9
پروژه :
ElGamal
استاد درس :
دانشجو :فهیمه محمدی
دانشکده فنی و
حرفه ای
حضرت فاطمه
الزهرا(س)
کرمان
تاريخچه
• در سال 1984دکتر طاهرالجم ال الگ وریتم دیگ ری را ب رای
رمزنگاری نامتقارن (کلید عمومی) عرض ه ک رد ک ه از لح اظ
استحکام و اطمین ان می توانس ت ب ا RSAرق ابت کن د ولی
این الگوریتم نسبت به RSAبسیار پیچیده تر و کندتر بود .
• این الگوریتم ب ه ن ام ش خص ایش ان ب ه ELGAMALش هرت
ی افت و توس ط ( NSAآژانس ام نیت ملی آمریک ا) م ورد
حمایت قرار گرفت .
PR. Key
}{p,g,a
PU. Key
}{p,g,b
)gkmod p, mi Bk mod
( p
Alic
Bob
فرض کنید آلیس می خواه د ب رای خ ود ی ک کلی د عم ومی و ی ک کلی د
خصوصی انتخاب کند تا دیگران پیام های خ ود را پس از رمزنگ اری با
کلید عمومی آلیس برای او بفرستد.
الگوریتم الجمال :محاسبه کلید عمومی و خصوصی
.1
آلیس یک عدد اول بسیار بزرگ (مثًال 200رقمی) به نام Pانتخاب کند .
عدد اول بسیار بزرگ P
.2از ریشه های اولیه ( )Primitive rootیا مول د مجموع ه Z*pع ددی را انتخ اب می کن د و
آن را gمی نامد.
ریشه اولیه g : Z*p
.3عدد aرا به شرط
نزد خود نگه می دارد.
انتخ اب کرده و آن را کلی د خصوص ی خ ود قرار داده و
.4سپس Bرا به شکل زیر بدست می آید
B= ga mod p
.5آلیس سه مجموعه عدد ( )p,g,Bرا به عن وان کلی د عم ومی در اختیار همگ ان قرار می
دهد در حالی که کلید خصوصی اش ( )p,g,aاست که کلید خصوصی را مخفی نگ ه می
دارد .
) (P,g,Bکلید عمومی
) (P,g,aکلید خصوصی
الگوریتم الجمال :رمزنگاری
باب می خواهد پیام mرا به آلیس بفرستد پیام ها را به بل وک های Iک ارکتری تقس یم می
کند .و به بلوک طبق قاعده ی کامال دلخ واه ی ک ع دد ص حیح ب ه ن ام Miنسبت می ده د ب ه
طوریکه
.1باب یک عدد کامال تصادفی و دلخواه به نام Kبا شرط
.2هر بلوک Miرا طبق رابطه ی زیر به دو عدد
انتخاب می کند
تبدیل و برای آلیس می فرستد:
( )gkmod p, mi Bk mod p
*** باب برای بلوک های متوالی Kرا تغییر می دهد
بدین ترتیب بلوک ها رمز می شود
آنچه که آلیس به ازای هر بلوک رمز شده دریافت می کن د عبارت اس ت از زوج ع دد
که به شکل زیر است.
صحیح
γ=gkmod p
, δ= mi Bk mod p
.
الگوريتم الجمال :رمز گشايي
PR. Key
PU. Key
}{p,g,a
}{p,g,b
( )gkmod p, mi Bk mod p
آلیس می تواند طبق رابطه های زیر داده های رمز شده را رمزگشایی کند:
ریشه های اولیه ))Primitive Rootیا مولد
p عدد اول است
Z*p = { 1, …, p-1{
ویژگی یک مولد مثل gاین است که باقیمانده توانهای مت والی gاز g0ت ا gp-2
تمام اعداد مجموعه
{ ,Z*p = { 1, … p-1را (با ترتیبی متفاوت) تولید می کند .
این همان مفهومی است که برای انتخاب عدد gدر کلید عمومی و کلید خصوصی به آن اشاره شد :
gh Mod P
مثال :
30 Mod 7 = 1
31 Mod 7 = 3
32 Mod 7 = 2
33 Mod 7 = 6
34 Mod 7 = 4
35 Mod 7 = 5
) (P,g,Bکلید عمومی
کلید خصوصی
)(P,g,a
P=7
{=
Z*7
1,2,…, 6
در این ج44دول فق44ط g=3و g=5اس44ت ک44ه { Z*7 = { 1,2,…, 6را تولی44د می کن44د
پس{3و }5ریشه های اولیه هستند.
چرا
است و جلوتر نرفته ایم ؟
قضیه فرما :هرگاه pعددی اول و gیک عدد مثبت غیر قابل تقسیم بر pباشد :
پس داریم :
پس توان ها به پیمانه 6تغییر می کنند و نتایج به صورت منظم تکرار خواهد شد :
به همین خاطر g0تا gp-2است .
چرا pعدد اول و بزرگ است ؟
قضیه :هرگاه pعددی اول باشد ،بدون شک ریشه های اولیه به پیمانه pوجود دارند .
اگر عدد اول نباشد ممکن است ریشه اولیه نداشته باشند.
پس در مورد وجود ریشه های اولیه برای هر مجموع ه Z*pبا فرض اول ب ودن pش کی نیس ت و ح تی
تعداد مولد ها را می توانیم بدست بیاوریم ولی آن چه تا به امروز الینحل باقی مان ده اس ت روش ی
است که بر اساس آن بتوان مس تقیمًا مول دهای ی ک مجموع ه مث ل Z*pرا یافت و در این خص وص
باید به سعی و خطا و آزمون متوسل شد .
عدد اول انتخابی باید بسیار بزرگ باشد تا تعداد ریشه های اولیه Z*pبیشتر شود و جستجو سخت تر
شود .
تعداد ریشه های اولیه به پیمانه : p
قضیه :می دانیم که p( Z*pعدد اول است ) همیشه دارای ریشه اولیه است بنابراین تعداد ریشه ها عبارت
است از :
تابع اویلر :تعداد اعداد صحیح مثبت کوچکتر از nبه طوری که نسبت به nاول باشند :
اگر pعدد اول باشد .
مثال: