پروتکل تبادل کلید دیفی-هلمن: تفاوت میان نسخه‌ها

جز
! colspan="3" | طرف اول
|-
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | پنهان
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | محاسبه
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | ارسال
|-
| align="center" |
| align="center" | '''p ، g'''
| align="center" |
|-
| align="center" | '''a'''
| align="center" |
| align="center" |
|-
| align="center" |
| align="center" |
| align="center" | '''g<sup>a</sup>''' mod p
|-
| align="center" |
|-
| align="center" |
| align="center" | '''g<sup>b</sup>''' mod p)'''<sup>a</sup>''' mod p)
| align="center" |
! colspan="3" | طرف دوم
|-
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | ارسال
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | محاسبه
| align="center" bgcolor="#D0D0D0" style="font-size: 90%;" | پنهان
|-
| align="center" |
| align="center" | '''p ، g'''
| align="center" |
|-
| align="center" |
| align="center" |
| align="center" | '''b'''
|-
| align="center" |
| align="center" | …
| align="center" |
|-
| align="center" | '''g<sup>b'''</sup> mod p
| align="center" |
| align="center" |
|-
| align="center" |
| align="center" | '''g<sup>a</sup>''' mod p)'''<sup>b</sup>''' mod p)
| align="center" |
# طرفین روی مقدار عدد اول ۲۳ = ''p'' و مقدار اولیهٔ ۵ = ''g'' توافق می‌کنند.
# طرف اول مقدار پنهانی ۶ = ''a'' را انتخاب و (''g<sup>a</sup>'' mod ''p'') را برای طرف دوم ارسال می‌کند.
#* ۸ = ( ۲۳ ۵<sup>۶</sup>mod )
# طرف دوم مقدار پنهانی ۱۵ = ''b'' را انتخاب و (''g<sup>b</sup>'' mod ''p'') را برای طرف اول ارسال می‌کند.
#* ۱۹ = ( ۲۳ ۵<sup>۱۵</sup>mod )
# طرف اول مقدار ''g<sup>b</sup>'' mod ''p'')''<sup>a</sup>'' mod ''p'') را محاسبه کرده و به عنوان کلید رمز مشترک در نظر می‌گیرد.
#* ۲ = ( ۲۳ ۱۹<sup>۶</sup>mod )
# طرف دوم مقدار ''g<sup>a</sup>'' mod ''p'')''<sup>b</sup>'' mod ''p'') را محاسبه کرده و به عنوان کلید رمز مشترک در نظر می‌گیرد.
#* ۲ = ( ۲۳ ۸<sup>۱۵</sup>mod )
 
== امنیت پروتکل دیفی-هلمن ==
 
== مشکل شناسایی طرفین در پروتکل دیفی-هلمن ==
فرمول‌های پیشنهادی اولیه این پروتکل که در قسمت بالا ارائه شد، امکان [[شناسایی]] متقابل طرفین را فراهم نمی‌سازد. به همین دلیل اگر طرف سومی روی خط ارتباطی و بین طرف اول و دوم قرار بگیرد، می‌تواند بدون اینکه شناسایی شود، با هر یک از طرفین به طور جداگانه طبق پروتکل دیفی-هلمن به رد و بدل کلید رمز بپردازد. (به چنین نوع حمله ای،حمله‌ای، [[حمله مرد میانی]] گفته می‌شود). به این ترتیب طرف سوم خواهد توانست بدون اینکه طرفین اول و دوم متوجه شوند، تمام پیام‌های آن دو را بخواند که برای این کار کافی است ابتدا پیام هر یک از آن‌ها را با کلید رمز مربوط به خودش [[رمزگشایی]] کند و سپس با کلید رمز طرف دیگر [[رمزگذاری]] نموده و برایش ارسال نماید.
 
برای مقاوم کردن پروتکل دیفی-هلمن در مقابل این مشکل، لازم است که یک مکانیزم برای [[شناسایی]] طرفین به مراحل این پروتکل اضافه گردد. همین امر باعث شده است که پروتکل‌های مختلف شناسایی با استفاده از مکانیزم تبادل کلید دیفی-هلمن ارائه شود.
== پیوند به بیرون ==
* [http://pikneek.com/security/diffie-hellman-key-exchange نگاهی به Diffie–Hellman Key Exchange]
 
 
[[رده:الگوریتم‌های رمزنگاری]]
۱۷٬۷۰۷

ویرایش