امضای دیجیتال در بلاکچین چیست
از امضای دیجیتال عموما برای پیادهسازی امضای الکترونیک استفاده میشود. امضای الکترونیک مفهوم وسیعتری است که به هر نوع دادهی الکترونیکی که نوعی امضا را در بر داشته باشد اطلاق میگردد. اما تمامی امضاهای الکترونیک از امضای دیجیتال استفاده نمیکنند.
امضای دیجیتال، یکی از راههای تضمین اصالت و اعتبار پیام و محتوا در بلاکچین یا سایر بسترهای مجازی است. در این مقاله والکس به زبان ساده توضیح خواهیم داد که امضای دیجیتال چیست و چه کاربردی به خصوص در ارز دیجیتال دارد. در نهایت راه دریافت یک امضای دیجیتال را به شما نشان خواهیم داد.
مفهوم امضای الکترونیک در ابتدا با اسکن امضای خطی در مواردی که امکان جعل آنها وجود داشت و یا اسناد زیادی نیاز به امضای شخص واحدی داشتند. مطرح شد.
چگونه روی ارز های دیجیتال سرمایه گذاری کنیم؟؟
نسل بعدی امضاهای دیجیتال با استفاده از قلمهای نوری و صفحه نمایشگرهای لمسی به وجود آمدند که در واقع همان نسخهی دیجیتالی امضاهای دستنویس بوده که با مزیتهایی همچون صرفهجویی در زمان و مصرف منابع و دشوارسازی جعل امضا روی کار آمدند.
امضای دیجیتال چیست؟
امضای دیجیتال یک طرح ریاضیوار برای تایید یک پیام دیجیتالی یا یک سند است. یک امضای معتبر، در پیام رمزنگاری شده باعث میشود که گیرنده به پیام و سند دریافت شده اعتماد کند. در واقع گیرنده زمانی که یک پیام با امضای دیجیتال دریافت کند، میتواند از سه چیز مطمئن باشد:
پیام توسط یک فرستنده امن ارسال شده است.
پیام در کانال ارسال تغییر نکرده است.
فرستنده پیام نمیتواند ارسال آن را رد و انکار کند.
امضاهای دیجیتال، یکی از کاربردهای استاندارد در بیشتر پروتکلهای رمزنگاری است. از این امضاها بیشتر در تأیید توزیع نرم افزاری اطلاعات یا تراکنشهای مالی استفاده میشود. نرمافزارهای مدیریت قرارداد و هر چیز دیگری که تشخیص جعل و دستکاری در آن مهم است، از امضاهای دیجیتال استفاده میکنند.
و اما امضای دیجیتالی که امروزه آن را میشناسیم یک نام کاربری و یک رمز عبور است که هویت شما در دنیای مجازی را ثابت میکند. امضای دیجیتال بر مبنای الگوریتم رمزنگاری نامتقارن ساخته میشود. رمزنگاری نامتقارن که با نام رمزنگاری کلید عمومی نیز شناخته میشود، از کلیدهای خصوصی و عمومی برای رمزنگاری و رمزگشایی دادهها استفاده مینماید. کلید خصوصی و عمومی در حقیقت رشته اعداد بزرگی هستند که با یکدیگر مطابقت داشته اما یکسان نیستند. (نامتقارن)
کلید عمومی با تمامی افراد شبکه به اشتراک گذاشته میشود در حالی که کلید خصوصی سری بوده و نزد شخص محفوظ نگه داشته میشود. هر یک از ما در زندگی روزمرهی خود بارها از این الگوریتم استفاده میکنیم. به عنوان مثال زمانی که برای یکی از دوستان خود ایمیل میفرستید آدرس ایمیل شما همان کلید عمومی و پسورد ورود به حسابتان همان کلید خصوصی شما خواهد بود.
از هر یک از جفت کلید عمومی و خصوصی میتوان برای رمز کردن پیام استفاده نمود. در بسیاری مواقع از امضای دیجیتال برای فراهم کردن یک لایهی امنیتی و معتبر برای ارسال پیامها در یک کانال غیرامن استفاده میشود.
امضاهای دیجیتال از بسیاری جهات مشابه امضاهای خطی هستند اما جعل آنها به مراتب از امضاهای دستنوشته دشوارتر است.
بیایید مفهوم امضای دیجیتال در بلاک چین را با مثالی بررسی کنیم:
پیش از این گفتیم که رمزنگاری کلید عمومی الگوریتم رمزنگاری است که به شما دو کلید میدهد: یک کلید عمومی و یک کلید خصوصی
شما کلید عمومیتان را به تمام دنیا اعلام میکنید و کلید خصوصیتان را نزد خویش نگه میدارید. آدرس اتریوم شما یک کلید عمومی بوده و کلید خصوصیتان در کیفپول سختافزاری، موبایلی و یا دسکتاپ شما، اترهای شما را ذخیره میکند. کلید عمومی را به عنوان شماره حساب بانکی خود در نظر بگیرید. اگر بخواهید مقداری اتر برای فردی بفرستید، آنها تنها شمارهی حساب و یا آدرس عمومی شما را میبینند. از آنجایی که شما تنها فردی هستید که کلید خصوصی مربوط به حسابتان را دارید، بنابراین تنها فردی نیز خواهید بود که به پولهای موجود در حساب دسترسی دارد.
امضاهای الکترونیکی و دیجیتال ممکن است به جای هم به کار برده شوند. اما در حقیقت بسیار متفاوتاند. تفاوت اصلی این دو امضا، در کاربرد آنها است. امضاهای دیجیتال را برای تأمین امنیت اسناد استفاده میکنند و فقط توسط یک اعتبارسنج معتبر صادر میشوند؛ به بیان دیگر، یک امضا شبیه اثر انگشت افراد در یک پیام رمزگذاری شده است. این در حالی است که کاربرد امضای الکترونیکی شبیه امضای واقعی افراد است که در سیستمهای اداری از آن استفاده میکنند.
امضای معمولی را میتوان جعل کرد اما جعل امضای دیجیتال به دلیل استفاده از نظریه اعداد تقریباً غیرممکن است. در واقع در امضاهای دیجیتال با استفاده از سیستم «رمزنگاری کلید عمومی» (Public Key Cryptogrpahy) کاربر، هم صاحب اختصاصی کلید عمومی است و هم کلید خصوصی. امضای الکترونیکی مانند یک رمز عبور عمل میکند، اما اگر سند تغییری کند، این امضا نمیتواند آن تغییر را نشان دهد و ثابت کند. در مقابل امضاهای الکترونیکی مانع از تغییر محتوای اسناد شده و اگر تغییری در آن ایجاد شود، امضا تغییر کرده یا از آن حذف میشود.
نکاتی که هنگام استفاده از این امضا باید آن را در نظر داشته باشید:
با استفاده از کلید خصوصی شما ایجاد میشود.
آفلاین عمل میکند. نیازی به اینترنت ندارد و برای ایجاد و تایید آن به کلید خصوصی احتیاج دارید.
و کلید عمومیِ شخص برای اینکه نودها کلید خصوصی مربوط به آدرس مقصد را تأیید کنند، کافی است.
کیف پولهای دیجیتال، به طور معمول امضاهای دیجیتال را در رمزارزها به وجود میآورند. با استفاده از کیف پول سختافزاری، تمام مراحل امضای تراکنش توسط کیف پول به صورت خودکار انجام میشود و تراکنش به صورت امضا شده از کیف پول خارج میشود.
رمزنگاری پیام با کلید خصوصی
برای ایجاد یک امضای دیجیتال به یک نرمافزار امضاکننده مانند یک سرویسدهندهی ایمیل نیاز است.
این برنامه، از دادههایی که میبایست امضا شوند، یک هش (Hash) تولید میکند. اما چرا چنین کاری انجام میشود؟
الگوریتمهای رمزنگاری کلید عمومی برای امضا کردن اسناد طولانی مناسب نیستند. برای صرفهجویی در زمان، اغلب پروتکلهای امضای دیجیتال به جای اینکه کل پیام را رمزنگاری کنند، خروجی یک تابع یک طرفه به نام هش را که به مراتب از پیام اصلی کوتاهتر است را رمزنگاری میکنند. تابع هش یک ورودی از دادهها که در اینجا کاراکترهای پیام هستند را گرفته و آن را به یک خروجی با طول ثابت نگاشت میکند.
پس از آن از کلید خصوصی برای رمزگذاری هش استفاده میکند. هش رمزگذاری شده در کنار سایر اطلاعات نظیر الگوریتم هشینگ، امضای دیجیتال را تشکیل میدهند.
بیشترین استفاده از امضاهای دیجیتال در پروتکلهای رمزنگاری نامتقارن استفاده است. ایده این امضا اولین بار در سال ۱۹۷۶ توسط ویتفید دیفای (Whitfield Diffie) و مارتین هلمن (Martin Hellman) ارائه شد. البته تیمی بزرگتر به توسعه و اجرا کردن این ایده کمک کردند. اولین بسته نرمافزاری امضای دیجیتال در سال 1989 با نام لوتوسنت به بازار عرضه شد.
طرحهای ابتدایی امضای دیجیتال از تبدیل دریچهای استفاده میکردند. تبدیل دریچهای یک تابع رمزنگاری است که در یک سو به آسانی محاسبه شده و در سوی مخالف محاسبهی آن برای پردازندهها بسیار دشوار است. هرچند زمان نشان داد که این روش در برابر حملهی هکرها آسیب پذیر است. چرا که در این روش، ابتدا پیام با روش درهم سازی، خلاصه شده و سپس خلاصه پیام امضا میشود. پس هکر ممکن است یک امضای جعلی بسازد و شبکه را با مشکل مواجه کند.
امضاهای دیجیتال چگونه کار میکنند؟
برای آنکه بدانیم امضای دیجیتال چگونه کار میکند، ابتدا باید نحوهی کار کردن آن در نظام رمزگذاری را درک کنیم. درواقع، باید بفهمیم که امضای دیجیتال چگونه امنیت پیام را حفظ کرده و در همان حال از اطلاعات حساس و کلیدی حفاظت میکند. برای مثال اگر مینا بخواهد پیامی رمزنگاریشده به علی بفرستد و کلید عمومی علی برای همگان قابل رؤیت باشد، مینا میتواند از کلید عمومی علی در الگوریتمی که پیامش را رمزنگاری میکند، استفاده کند. اشخاص دیگر ممکن است بتوانند پیام رمزنگاری شده را ببینند یا آن را رهگیری کنند، اما تا زمانی که کلید خصوصی علی را نداشته باشند، نمیتوانند محتوای پیام را رمزگشایی کنند؛ البته فقط خودِ علی از کلید خصوصی آگاه است. بنابراین، مینا بدون آنکه به کلید خصوصی علی احتیاج داشته باشد، میتواند اطمینان حاصل کند که فقط و فقط علی میتواند پیام اصلی را ببیند.
در امضای دیجیتال، همین فرآیند کلیدها به صورت برعکس عمل میکند. به جای اجرای محاسبه اولیه با کلید عمومی، مینا میتواند از کلید خصوصی خود در الگوریتم امضا استفاده کند تا امضایی را به وجود بیاورد که به پیام و کلید عمومیاش متصل باشد. در این وضعیت هیچکس نمیتواند به کلید خصوصی مینا دسترسی پیدا کرده و همچنین کسی قادر نخواهد بود صرفاً با امضا و کلید عمومی او امضای معتبری از او جعل کند. اما هرکس که به کلید عمومی مینا دسترسی داشته باشد، میتواند مطمئن شود که او با کلید خصوصیاش پیام را امضا کرده است.
تایید و رمزگشایی پیام با کلید عمومی
این فرآیند شامل دو مرحلهی تولید هش از روی پیام اصلی و رمزگشایی امضا میگردد. سناریوی زیر را در نظر بگیرید:
آلیس قصد دارد ایمیلی برای باب ارسال کند:
آلیس ابتدا پیامی که قصد ارسال آن را دارد، امضا میکند و این کار را در حقیقت با کلیک بر روی sign in در اپلیکیشن ایمیل خود انجام میدهد. مقدار هش توسط کامپیوتر آلیس محاسبه میگردد.
این هش با رمز عبور آلیس و یا همان کلید خصوصی او رمزنگاری شده و امضای دیجیتال را تشکیل میدهد.
پیام آلیس به همراه امضای دیجیتال او برای باب ارسال میشود.
پس از آنکه باب پیام آلیس را دریافت میکند، برنامهی ایمیلی که بر روی کامپیوتر او نصب است، تشخیص میدهد که این پیام حاوی امضا میباشد.
کامپیوتر باب امضای دیجیتال را با استفاده از کلید عمومی آلیس رمزگشایی کرده و هش پیام را مجددا خودش نیز محاسبه مینماید.
هشی که توسط کامپیوتر باب محاسبه شده با هش رمزگشایی شده مقایسه میشوند.
اگر این دو هش با یکدیگر متفاوت باشند، ممکن است داده در مسیر دچار دستکاری شده و یا فرستنده به اشتباه دادهها را با کلید خصوصیای رمزنگاری کرده که با کلید عمومی مطابقت نداشته است
برخی الگوریتمهای امضای دیجیتال
الگوریتمهای امضای دیجیتال مبتنی بر RSA مانند الگوریتم RSA-PSS
الگوریتم DSA و مشتق آن ECDSA
الگوریتم امضای دیجیتال منحنی ادواردز (Edwards-curve) و نوع دیگر آن Ed25519
الگوریتم ElGamal که الگوریتم DSA گرفته شده و زیرمجموعههای آن الگوریتمهای شنور (Schnorr) و Pointcheval–Stern
الگوریتم امضای دیجیتال رابین (Rabin)
الگوریتم BLS
امضاهای انکارناپذیر (Undeniable signatures)
صحبت پایانی
فناوری بلاکچین با داشتن ویژگیهای منحصر به فرد خود، اکنون تبدیل به یکی از ابزارهای امن برای حفظ حریم خصوصی و امنیت اطلاعات شده است. امضای دیجیتال تنها یکی از ابزارهای این فناوری در راستای حفظ امنیت کاربران است.
شما از چه کیف پولی برای نگهداری و ارسال ارزهای دیجیتال خود استفاده میکنید؟ آیا روش فعال سازی امضای دیجیتال در کیف پولتان را میدانید؟ نام کیف پولی را که از آن استفاده میکنید در بخش دیدگاهها برای ما بنویسید تا روش فعال کردن امضای دیجیتال در آن را برایتان شرح دهیم.