You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
فرض کنید شخصی بهنام پوریا خواهان آن باشد تا سندی(دیجیتالی) را (در محیطی ناامن مانند اینترنت) منتشر کند با این ویژگی که سند گویای آن باشد که از طرف پوریا میباشد و درنتیجه موردتایید وی نیز میباشد. بدین منظور پوریا باید از پروتکلی به نام امضای دیجیتال که نوعی رمزنگاری نامتقارن میباشد، استفاده کند.
\\
در امضای دیجیتال ، شخصی میتواند پیام خود را امضا و آن را منتشر کند و هر شخص دیگری با دیدن پیام و امضا پی ببرد که آیا پیام دریافت شده از شخص موردنظر میباشد یا خیر. بدین منظور لازم است مکانیزمی وجود داشته باشد تا شخص گیرنده پیام ، صحت هویت فرستنده را تایید کند. برای اجرای این سیستم پوریا به عنوان امضاکننده میتواند از یک کلیدخصوصی برای امضای پیام و از یک کلیدعمومی متناسب با کلید خصوصی (کلید خصوصی و کلیدعمومی با هم وابسته و مربوط هستند و توسط الگوریتمی مشخص تولید میشوند) برای تایید امضا استفاده کند.
\\
در ادامه میخواهیم نشان دهیم در بطن این پروتکل، دو پروتکل دیگر به نام احرازهویت و اثبات دانش صفر نیز اجرا میشوند. به عبارت دیگر با امضای سند، امضاکننده هویت خود را نشان داده است و هر شخصی که سندامضاشده را ببیند متوجه میشود که پوریا آن را امضا کرده است و بنابراین پروتکل احرازهویت صورت گرفته است. در طرف دیگر پروتکل اثبات دانش صفر نیز انجام شده است به این صورت که بدون آنکه دانش امضاکننده یعنی کلیدخصوصی افشا شود، ویکتور(تاییدکننده) توانسته است امضا را با استفاده از کلیدعمومی(تاییدساز) که توسط امضاکننده همراه با پیام منتشر شده بود تاییدکند.
\\
در ادامه میخواهیم پروتکل امضا را براساس پروتکلی بهنام اثباتدانشصفرهویت پیادهسازی کنیم.