امضاهای دیجیتال اثبات میکنن که امضا و کلید عمومی با کلید خصوصی یکسانی تولید شده.
امضا کردن
یه امضای دیجیتال دو جزء داره:
۱- جزء تصادفی
۲- جزء مربوط به امضا (کلید خصوصی+دادهی تراکنشی که داریم امضای دیجیتالی رو براش ایجاد میکنیم.)
۱– جزء تصادفی
با تولید یه عدد تصادفی شروع میکنیم؛ و بعد، این عدد رو با نقطهی تولیدکنندهی خم بیضوی (نقطهای که برای تولید کلید عمومی هم استفاده میشه) ضرب میکنیم.
جز تصادفی امضای دیجیتال، نقطهای روی خم منحنیه که نتیجهی نهایی رو میده. اما ما فقط مختصات xش رو در نظر میگیرم:
به اختصار بهش میگیم «r».
عملا این کار شبیه تولید یه کلید خصوصی و یه کلید عمومیه. با این تفاوت که اینجا داریم یه بخش تصادفی هم به امضای دیجیتالمون اضافه میکنیم.
پس حالا نصف امضای دیجیتالمون آمادهست؛ اما کلید خصوصیمون رو تا اینجا برای هیچ کاری استفاده نکردیم.
۲– جزء مربوط به امضا
اول، کلید خصوصیمون رو برمیداریم و در r (مختصات x از نقطهی تصادفی منحنیای که پیدا کردیم) ضرب میکنیم.
مرحلهی بعد، چیزی رو که قراره امضا کنیم رو هم بهش اضافه میکنیم. به این چیز «پیام» گفته میشه. در بیتکوین، پیام، هش کل دادهی تراکنشه که بیتکوینی که میخوایم باز کنیم رو در خودش جا میده.
مشمول کردن هش تراکنش، باعث میشه که امضا به یه تراکنش وصل بشه (و قابل استفاده تو تراکنش دیگهای نباشه.)
در نهایت، به یه اندازهی مناسب، همهی اینها رو به عدد تصادفی اولیهمون تقسیم میکنیم:
و … هجی مجی لاترجی! جزء حیاتی «امضا» از امضای دیجیتالمون آمادهست. به اختصار به این بخش میگیم «s».
و حالا بخش جالب ماجرا …
اگه کسی از ما بخواد که اثبات کنیم کلید خصوصی مربوط به یه کلید عمومی رو میدونیم، میتونیم امضای دیجیتالمون (r و s) رو ارائه کنیم.
اما چطوری یه نفر میتونه از این اطلاعات به عنوان اثبات استفاده کنه؟
تایید کردن
در بیتکوین، کل این امضا به قسمتی از تراکنش میره که بهش میگیم «اسکریپت بازگشایی». کلید خصوصیای که از اون برای تولید امضا استفاده کردیم همون کلیدیه که به آدرس بیتکوینهای قفلشده وصل میشه.
هدفمون تایید این مسالهست که آیا کلید عمومی و امضای دیجیتال از یه کلید خصوصی ایجاد شدن یا نه.
برای تایید اینکه آیا کلید خصوصی درستی برای تولید امضای دیجیتال استفاده شده یا نه، کسی که این امضای دیجیتال رو بررسی میکنه باید از هر دو جزء استفاده کنه تا دو نقطهی جدید روی منحنی بیضوی پیدا بشه.
نقطهی ۱
پیام رو به s تقسیم میکنیم. اولین نقطه فقط نقش نقطهی تولیدکننده رو داره که با این مقدار ضرب شده:
نقطهی ۲
r رو به s تقسیم میکنیم.
دومین نقطه فقط نقش کلید عمومی رو داره که با این مقدار ضرب شده:
و در آخر …
اگه این دو تا نقطه رو با هم جمع کنیم، یه نقطهی سومی روی منحنی به دست میاریم:
و اگه مختصات x از این نقطهی سوم با مختصات x نقطهی تصادفی که باهاش شروع کردیم (یعنی r) یکسان باشه، پس اثبات میشه که امضای دیجیتال با استفاده از کلید خصوصی مربوط به این کلید عمومی تولید شده.
ممکنه بفرمایید چطور تقسیم انجام میدهید ؟ تا جایی که من میدونم ، چیزی به اسم تقسیم در روابط منحنی وجود نداره ! لطفا اگر مطلبی منتشر میکنید ، در درستی ان دقت کنید
منظور شما کدوم قسمت از متن هست؟