در بحث رمزارزها، سیستم امضای دیجیتال معمولا از سه مرحلۀ اساسی تشکیل میشود: درهمسازی، امضاکردن و تاییدکردن.
درهمسازی دادهها
اولین گام درهمسازی پیام یا دادههای دیجیتال است. برای این امر دادهها را به یک الگوریتم درهمسازی میدهند و آن الگوریتم، یک مقدار هش ایجاد شود (یا همان چکیدۀ پیام) ایجاد میکند. همان طور که گفتیم، اندازۀ پیامها ممکن است بسیار متفاوت باشد؛ اما وقتی که درهم بشوند، مقدار هش همهشان به یک اندازۀ ثابت میماند. این بنیانیترین ویژگی تابع درهمسازی است.
برای تولید امضای دیجیتال حتما لازم نیست درهمسازی داده صورت بگیرد؛ زیرا شخص میتواند با کلیدی خصوصی پیامی را امضا کند که اصلا درهم نشده است. اما در رمزارزها، داده همیشه در هم میشود زیرا پرداختن به چکیدههای با اندازه یکسان کل فرایند را تسهیل میکند.
امضاکردن
پس از اینکه اطلاعات درهم شدند، فرستندۀ پیام باید آن را امضا کند. اینجاست که رمزنگاری با کلید عمومی وارد داستان میشود. چندین نوع الگوریتم امضای دیجیتال وجود دارند و هرکدام سازوکار خاص خودش را دارد. اما اساسا، پیام درهمشده را با کلیدی خصوصی امضا میکنند و دریافتکننده پیام، با استفاده از کلید عمومی (ارائهشده توسط امضاکننده) میتواند صحت پیام را بسنجد.
به زبان دیگر، اگر هنگامی که امضا ایجاد میشود کلید خصوصی در آن گنجانده نشود، گیرندۀ پیام نمیتواند با کلیدی عمومی متناظر صحت پیام را بررسی کند. هر دو کلید عمومی و خصوصی را فرستندۀ پیام ایجاد میکند؛ اما فقط کلید عمومی با گیرندۀ پیام به اشتراک گذاشته میشود.
شایان توجه آنکه امضاهای دیجیتالی مستقیما با محتوای هر پیام ارتباط دارند. بنابراین برخلاف امضاهای دستی، صرفنظر از پیام، امضاهای دیجیتالی معمولا یکساناند و هر پیام امضاشده امضای دیجیتالی متفاوتی خواهد داشت.
درستیسنجی
بیاید با یک مثال تمام فرایند را تا پیش از مرحلۀ نهایی، درستیسنجی، بررسی کنیم. فرض کنید آلیس پیامی برای باب مینویسد، آن را درهم میکند و سپس مقدار هش را با کلید خصوص خودش ترکیب میکند تا یک امضای دیجیتالی بسازد. این امضا نقش ردپای دیجیتالی یگانهای را برای پیام فوق بازی میکند.
هنگامی که باب پیام را دریافت میکند، میتواند با استفاده از کلید عمومی ارائهشده توسط آلیس درستی امضای دیجیتال را بسنجد. از این طریق، باب میتواند مطمئن شود که پیام را آلیس درست کرده است؛ زیرا فقط آلیس هست که کلید خصوصی متناظر با آن کلید عمومی را دارد (یا حداقل چنین توقعی میرود).
بنابراین، بسیار مهم است که آلیس کلید خصوصیاش را در جای امنی نگه دارد. اگر دست شخص دیگری به کلید خصوصی آلیس برسد، میتوانند امضاهای دیجیتالی ایجاد کنند و خودشان را به جای آلیس جا بزنند. در بحث بیتکوین، این یعنی شخصی میتواند از کلید خصوصی آلیس استفاده کند تا بیتکوینهای او را بدون اجازهاش انتقال دهد یا خرج کند.
دیدگاهتان را بنویسید