امضای دیجیتال (Digital Signature)
فهرست مطالب
رمزنگاری (Cryptography)
رمزنگاری یکی از فناوریهای پایه در بلاک چین است که انتقال یا ذخیرهی اطلاعات به صورت امن را از طریق تکنیکهای ریاضی فراهم میکند حتی اگر مسیر انتقال اطلاعات و کانالهای ارتباطی یا محل ذخیره اطلاعات ناامن باشند. رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آنها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند.
انواع رمزنگاری
رمزنگاری به دوطریق می تواند انجام شود.
1-رمزنگاری کلید متقارن یا تک کلیدی،
به آن دسته از الگوریتمها، پروتکلها و سیستمهای رمزنگاری گفته میشود که در آن هر دو طرف رد و بدل اطلاعات از یک کلید رمز یکسان برای عملیات رمزگذاری و رمزگشایی استفاده میکنند. در این قبیل سیستمها، یا کلیدهای رمزگذاری و رمزگشایی یکسان هستند یا با رابطهای بسیار ساده از یکدیگر قابل استخراج میباشند و رمزگذاری و رمزگشایی اطلاعات نیز دو فرایند معکوس یکدیگر میباشند.
2-رمزنگاری کلید نامتقارن
این نوع با هدف حل مشکل انتقال کلید که در روش متقارن پیشنهاد شد، بنا شده است. در این نوع از رمزنگاری، به جای یک کلید مشترک، از یک زوج کلید به نامهای کلید عمومی و کلید خصوصی استفاده میشود. کلید خصوصی تنها در اختیار دارندهی آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوصی بستگی دارد. کلید عمومی در اختیار کلیهی کسانی قرار داده میشود که با دارنده آن در ارتباط هستند. به مرور زمان، به غیر از حل مشکل انتقال کلید در روش متقارن، کاربردهای متعددی برای این نوع از رمزنگاری مطرح شده است. در سیستمهای رمزنگاری نامتقارن، بسته به کاربرد و پروتکل مورد نظر، گاهی از کلید عمومی برای رمزگذاری و از کلید خصوصی برای رمزگشایی استفاده میشود و گاهی نیز، بر عکس، کلید خصوصی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار میرود.
ترکیب این دو کلید با هم راهی برای ایجاد یک امضای دیجیتال است. یعنی عملکردی که قابل جعل و قابل انکار نباشد.
شرح امضای دیجیتال (Digital Signature)
ارزهای رمزنگاری شده مانند بیت کوین و اتریوم از یک شبکه نظیر به نظیر برای انجام معاملات استفاده می کنند. از آنجا که کل فرآیند آنلاین است ، این احتمال وجود دارد که معاملات ناپایدار و قابل هک باشند. در این مقاله می خواهیم ببینیم که ارز رمزنگاری شده چگونه از رمزنگاری استفاده می کند تا معاملات خود را بسیار امن کند. اصلی ترین تکنیک های رمزنگاری مورد استفاده در ارز های رمزپایه ، استفاده از تابع هش و امضای دیجیتال (Digital Signature) است.
لزوم استفاده از امضای دیجیتال (Digital Signature)
یکی از مهمترین ابزارهای رمزنگاری که در کریپتوکارنسی ها استفاده می شود مفهوم امضای دیجیتال است.امضا در زندگی واقعی چیست و چه خصوصیاتی دارد؟ کاغذی را تصور کنید که با امضای خود امضا کرده اید، یک امضای خوب چه کاری باید انجام دهد؟
- باید تأییدکننده باشد:امضا باید بتواند تأیید کند که شما واقعاً کاغذی را امضا کرده اید.
- نباید جعلی باشد.هیچ کس دیگری نباید بتواند امضای شما را جعل و کپی کند.
- عدم انکار:اگر چیزی را با امضای خود امضا کرده اید، پس نمی توانید آن را پس بگیرید یا ادعا کنید شخص دیگری این کار را به جای شما انجام داده است.
در دنیای واقعی، هرچقدر هم که امضا پیچیده باشد، همیشه احتمال جعل وجود دارد و این بسیار ناکارآمد و غیر قابل اعتماد است.
رمزنگاری با استفاده از «امضاهای دیجیتالی» که با استفاده از «کلیدها» انجام می شود، راه حلی را در اختیار ما قرار میدهد.
امضای دیجیتال (Digital Signature) چیست؟

امضای دیجیتالی مکانیسم رمزنگاری است که برای تأیید صحت و یکپارچگی داده های دیجیتال استفاده می شود. ممکن است ما آن را نسخه دیجیتالی امضاهای دست نویس معمولی بدانیم، اما دارای پیچیدگی و امنیت بالاتری است.
به زبان ساده، ممکن است یک امضای دیجیتالی را به عنوان کدی توصیف کنیم که به پیام یا سندی متصل است. پس از تولید ، کد به عنوان اثبات عدم دستکاری پیام در طول مسیر خود از فرستنده به گیرنده عمل می کند.
اگرچه مفهوم ایمن سازی ارتباطات با استفاده از رمزنگاری به دوران باستان برمی گردد، اما طرح های امضای دیجیتال در دهه 1970 به لطف توسعه رمزنگاری کلید عمومی (PKC) به یک واقعیت ممکن تبدیل شد. بنابراین، برای یادگیری نحوه کار امضاهای دیجیتالی، ابتدا باید اصول توابع هش و رمزنگاری کلید عمومی را درک کنیم.
توابع هش (Hash functions)
هش کردن یکی از عناصر اصلی سیستم امضای دیجیتال است. فرآیند هش کردن شامل تبدیل داده ها از هر اندازه به یک خروجی با طول ثابت است. این کار توسط نوع خاصی از الگوریتم های معروف به توابع هش انجام می شود. خروجی تولید شده توسط یک تابع هش به عنوان یک مقدار هش شناخته می شود.
وقتی هش با رمزنگاری ترکیب شود، می توان از توابع هش رمزنگاری شده برای تولید مقدار هش استفاده کرد که به عنوان اثر انگشت دیجیتال منحصر به فرد عمل می کند. این بدان معنی است که هرگونه تغییر در داده های ورودی (پیام) منجر به خروجی کاملاً متفاوتی می شود (مقدار هش). و بهمین دلیل است که توابع هش رمزنگاری برای تأیید صحت داده های دیجیتالی به طور گسترده مورد استفاده قرار میگیرند.
رمزنگاری کلید عمومی (PKC)
رمزنگاری کلید عمومی یا PKC، به یک سیستم رمزنگاری اشاره دارد که از یک جفت کلید استفاده می کند: یک کلید عمومی و یک کلید خصوصی. این دو کلید از نظر ریاضی با هم مرتبط هستند و می توانند برای رمزگذاری داده ها و امضای دیجیتال مورد استفاده واقع شوند.
PKC به عنوان یک ابزار رمزگذاری ، از روشهای ابتدایی رمزگذاری متقارن ایمن تر است. در حالی که سیستم های قدیمی برای رمزگذاری و رمزگشایی اطلاعات به همان کلید متکی هستند ، PKC امکان رمزگذاری داده ها با کلید عمومی و رمزگشایی داده ها با کلید خصوصی مربوطه را فراهم می کند.
در اصل، فرآیند امضای دیجیتال (Digital Signature) شامل هش پیام (یا داده های دیجیتال) همراه با کلید خصوصی امضا کننده است. در مرحله بعدی ، گیرنده پیام می تواند با استفاده از کلید عمومی ارائه شده توسط امضا کنندها اعتبار امضا را بررسی کند.
در برخی شرایط ، امضاهای دیجیتال ممکن است رمزگذاری داشته باشند، اما همیشه اینطور نیست. به عنوان مثال ، بلاکچین Bitcoin از PKC و امضاهای دیجیتال استفاده می کند. از نظر فنی، بیت کوین اصطلاحاً الگوریتم امضای دیجیتال Elliptic Curve (ECDSA) را برای تأیید اعتبار معاملات به کار می گیرد.
مراحل کار امضاهای دیجیتالی

1-هش کردن داده ها (Hashing the data)
اولین مرحله هش پیام یا داده های دیجیتالی است. این کار با ارسال داده ها از طریق الگوریتم هش انجام می شود تا یک مقدار هش تولید شود. همانطور که گفته شد ، اندازه پیام ها می تواند متغیر باشد، اما وقتی هش می شوند، تمام مقادیر هش آنها دارای طول یکسانی هستند. این مهم ترین ویژگی یک تابع هش است.
با این حال ، هش کردن داده ها برای تولید امضای دیجیتال (Digital Signature) ضروری نیست. زیرا می توان از یک کلید خصوصی برای امضای پیامی استفاده کرد که اصلاً هش نشده است. اما برای ارزهای رمزنگاری شده ، داده ها همیشه هش داده می شوند زیرا برخورد با هش های با طول ثابت کل روند را تسهیل می کند.
2-امضا کردن (Signing)
پس از هش شدن اطلاعات، فرستنده پیام باید آن را امضا کند. این لحظه ای است که رمزنگاری با کلید عمومی وارد عمل می شود. انواع مختلفی از الگوریتم های امضای دیجیتال وجود دارد ، هر کدام مکانیزم خاص خود را دارند. اما در اصل، پیام هش شده با یک کلید خصوصی امضا می شود و سپس گیرنده پیام می تواند اعتبار آن را با استفاده از کلید عمومی مربوطه (که توسط امضا کننده ارائه شده است) چک کند.
به عبارت دیگر، اگر هنگام تولید امضا، کلید خصوصی در آن گنجانده نشود، گیرنده پیام نمی تواند از کلید عمومی مربوطه برای تأیید اعتبار آن استفاده کند. کلیدهای عمومی و خصوصی توسط فرستنده پیام تولید می شوند. اما فقط کلید عمومی با گیرنده به اشتراک گذاشته می شود.
شایان ذکر است که امضاهای دیجیتالی ارتباط مستقیمی با محتوای هر پیام دارند. بنابراین برخلاف امضاهای دست نویس، هر پیام دیجیتالی با امضای دیجیتال متفاوت است.
3-راستی آزمایی کردن(Verifying)
تصور کنید که آلیس پیامی برای باب می نویسد، آن را هش می کند و سپس مقدار هش را با کلید خصوصی خود ترکیب می کند تا امضای دیجیتالی تولید کند. این امضا به عنوان اثر انگشت دیجیتالی منحصر به فرد آن پیام خاص کار خواهد کرد.
وقتی باب پیام را دریافت کرد ، می تواند با استفاده از کلید عمومی ارائه شده توسط آلیس ، اعتبار امضای دیجیتالی را چک کند. از این طریق، باب می تواند مطمئن باشد که امضا توسط آلیس ایجاد شده است. زیرا فقط او دارای کلید خصوصی است که با آن کلید عمومی مطابقت دارد .
بنابراین ، برای آلیس بسیار مهم است که کلید خصوصی خود را مخفی نگه دارد. اگر شخص دیگری کلید خصوصی آلیس را بگیرد ، می تواند امضای دیجیتالی ایجاد کند و خود را آلیس معرفی کند. و از این راه برای جابجایی یا خرج بیت کوین بدون اجازه وی استفاده کند.
دلیل اهمیت امضاهای دیجیتالی
از امضاهای دیجیتالی اغلب برای دستیابی به سه نتیجه استفاده می شود:
1-یکپارچگی داده.
باب می تواند تأیید کند که پیام آلیس در طول مسیر تغییر نکرده است. هر تغییری در پیام امضای کاملاً متفاوتی ایجاد می کند.
2- احراز هویت
تا زمانی که کلید خصوصی آلیس مخفی است ، باب می تواند با استفاده از کلید عمومی تأیید کند که امضای دیجیتال توسط هیچ کس دیگری ثبت نشده است.
3-عدم انکار
پس از تولید امضا ، آلیس نمی تواند امضای آن را در آینده انکار کند ، مگر اینکه کلید خصوصی اش به نوعی در خطر باشد.
کاربرد امضای دیجیتال (Digital Signature)
امضای دیجیتال را می توان برای انواع مختلف اسناد و مدارک دیجیتال اعمال کرد. برخی از موارد رایج استفاده عبارتند از:
1-فناوری اطلاعات
برای افزایش امنیت سیستم های ارتباطی اینترنتی.
2-دارایی، مالی و سرمایه گذاری
امضاهای دیجیتالی را می توان برای حسابرسی ، گزارش هزینه ها ، موافقت نامه های وام و موارد دیگر استفاده کرد.
3-مراقبت های بهداشتی
امضاهای دیجیتالی می تواند از تقلب در نسخه ها و سوابق پزشکی جلوگیری کند.
محدودیت های امضای دیجیتال (Digital Signature)
چالش های عمده ای که در استفاده از امضای دیجیتال روبرو هستند :
- کیفیت الگوریتم های مورد استفاده در امضای دیجیتال مهم است.
- اگر الگوریتم ها خوب باشند ، اما پیاده سازی آنها صحیح نباشد ، سیستم امضای دیجیتال احتمالاً نقایصی دارد.
- برای کاربران رمز ارز ، از دست دادن کلید خصوصی ممکن است منجر به خسارات مالی قابل توجهی شود.