امضای دیجیتال یا digital signature
امضای دیجیتال (Digital Signature) یک مکانیزم رمزنگاری است که برای تأیید و صحت دادههای دیجیتال مورد استفاده قرار میگیرد. ممکن است ما آن را به عنوان یک نسخه دیجیتالی از امضاهای دستنویس معمولی، اما با سطح پیچیدگی و امنیت بالاتر در نظر بگیریم.
امضای دیجیتال به زبان ساده ، ممکن است یک امضای دیجیتالی را به عنوان کدی که به یک پیام یا سند متصل است، توصیف کنیم. پس از تولید، کد به اثبات میرساند که پیام در طول مسیر از فرستنده تا گیرنده دستکاری نشده است. اگرچه مفهوم تضمین ارتباطات با استفاده از رمزنگاری به دوران باستان برمیگردد، طرحهای امضا دیجیتالی در دهه 1970 به لطف توسعه رمزنگاری عمومی-کلید (PKC) به واقعیت تبدیل شدند. بنابراین، برای یادگیری نحوه عملکرد امضاهای دیجیتال ، ابتدا باید اصول عملکردهای هش و رمزنگاری کلید عمومی را درک کنیم.
امضای دیجیتال را می توان به عنوان مکانیزمی در نظر گرفت که در آن پیام ها در جریان تبادل اطلاعات، معتبر می شوند. این امضا با امکاناتی نظیر تایید و احراز هویت، حفظ امنیت و غیر قابل انکار بودن مانع هر گونه دستکاری، خدشه دار شدن و تغییر اطلاعات محرمانه می شود. از جمله تفاوت های این امضا با امضاهای سنتی می توان به وضعیت ثبات آنها اشاره کرد. به این صورت که امضاهای دستی حتما باید ثابت باشند و فرد امضا کننده نمی تواند آن ها را تغییر دهند اما امضاهای دیجیتال به دلیل این که ماهیت آنها به پیام ها وابسته هستند، به ازای هر پیام می توانند تغییر یابند.
امضاهای دیجیتال برای سندهای داخل سامانه، تبادل داده و اطلاعات اعتبار ویژهای به همراه دارد. افراد دارای کلید خصوصی می توانند سند مورد نظر خود را به کمک آن امضا و برای شخص گیرنده ارسال کنند. امضای دیجیتال به دلیل بهره گیری از تابع درهم سازی به یک پیام موجود در سیستم اعتبار می بخشد به طوری که ضامن انتقال یک پیام در حین عملیات انتقال داده ها و پیام ها هستند.
کاربردهای امضای دیجیتال
از طریق امضاهای دیجیتال علاوه بر این که دسترسی کاربران به حساب هایشان کاملا کنترل می شود، کاربران می توانند روی سندهای الکترونیکی خود، امضای دیجیتالی ثبت کنند و همچنین برداشت و نقل وانتقالات پولی پس از تایید توسط صاحبان حساب انجام می شود. اگر کاربران برای انجام مبادلات خود از امضاهای دیجیتال استفاده کنند، می توانند به راحتی اعتماد طرف مقابل را جلب کنند.
معایب امضای دیجیتال
الگوریتم و قوانین امضای دیجیتال قابلیت درج تاریخ و زمان را در پایین سند ندارد، بنابراین شخص دریافت کننده نامه اطمینانی از تاریخ و زمانی که نامه به digital signature رسیده است، ندارند. حتی ممکن است تاریخی که داخل نامه درج شده، با تاریخی که فرد نامه را امضا کرده مغایر باشد. البته این مشکل از طریق راهکار زمان اعتماد به مهر و امضا، حل می شود. با وجود اینکه digital signature دارای قابلیت غیر قابل انکار می باشد اما اگر کلید خصوصی افشا بشود علاوه بر این که از اعتبار ساقط می شود، استفاده از زمان اعتبار مهر و امضا نیز تاثیری ندارد.
زمانی که افراد از کلید عمومی در سامانه استفاده می کنند دیگر نمی توانند امضای خود را انکار کنند مگر این که کل شبکه دچار حمله شده باشد و اعتبار خود را از دست بدهد. مشکل بعدی digital signature این می باشد که پیام ها به یک مجموعه از بیت ها توسط تابع مشخص ترجمه و پردازش می شود بنابراین ممکن است در مراحل انتقال و دریافت مفهوم پیام تغییر کند و به آن خدشه وارد شود.
برای رفع این مشکل میتوان از روشی که یک ضمانت نامه معتبر برای امضاهای دیجیتال هستند و قابلیت پیاده سازی و اجرا در شبکه های کامپیوتری نوین را دارند، استفاده کرد. به این ترتیب همان چیزی که مشاهده می شود به امضا در می آید. در این روش فقط اطلاعات ترجمه شده امضا می شود بدون اینکه اطلاعات مخفی در آن قرار بگیرد و پس از امضا در صورت تایید توسط فرستنده، وارد سامانه می شود.
توابع هش چیست؟
هشینگ یکی از عناصر اصلی سیستم امضای دیجیتال است. فرایند هش کردن شامل تبدیل دادههای هر اندازه به یک خروجی با اندازه ثابت است. این کار توسط یک نوع خاص از الگوریتمهای معروف به نام توابع هش انجام میشود. خروجی حاصل از یک تابع هش به عنوان مقدار هش پیام شناخته می شود. هنگامی که با رمزنگاری ترکیب میشود، از توابع هش به اصطلاح رمزنگاری میتوان برای تولید یک مقدار هش (هضم) استفاده کرد که به عنوان اثر انگشت دیجیتال بینظیر عمل میکند. این بدان معنی است که هرگونه تغییر در دادههای ورودی (پیام) منجر به خروجی کاملا متفاوت (مقدار هش) میشود. به همین دلیل است که توابع هش رمزنگاری به طور گستردهای برای تأیید صحت دادههای دیجیتال استفاده میشود.
رمزنگاری کلید عمومی (PKC) چیست؟
رمزنگاری کلید عمومی یا PKC به سیستم رمزنگاری اشاره دارد که از یک جفت کلید استفاده میکند: یک کلید عمومی و یک کلید خصوصی. این دو کلید به لحاظ ریاضیاتی مرتبط هستند و میتوانند برای رمزگذاری دادهها و امضاهای دیجیتالی مورد استفاده قرار گیرند. PKC به عنوان یک ابزار رمزگذاری، نسبت به روشهای مهمتر رمزگذاری متقارن از امنیت بیشتری برخوردار است. در حالی که سیستمهای قدیمیتر به رمزگذاری و رمزگشایی اطلاعات به همان کلید متکی هستند، PKC رمزگذاری داده ها را با کلید عمومی و رمزگشایی داده ها با کلید خصوصی مربوط به آن امکان پذیر می کند.
به غیر از این، طرح PKC ممکن است در تولید امضاهای دیجیتال نیز اعمال شود. در اصل، این فرایند شامل هشدار یک پیام (یا داده های دیجیتالی) به همراه کلید خصوصی امضاکننده است. در مرحله بعد، گیرنده پیام می تواند با استفاده از کلید عمومی ارائه شده توسط امضاکننده، بررسی کند که آیا امضا معتبر است یا نیست. در برخی شرایط، امضاي ديجيتال ممکن است شامل رمزگذاری باشند، اما همیشه اینگونه نیست. به عنوان مثال، blockchain Bitcoin از PKC و امضاهای دیجیتال استفاده میکند، برخلاف بسیاری که تمایل دارند باور کنند، هیچ رمزگذاری در این فرآیند وجود ندارد. از نظر فنی، بیت کوین برای تأیید اعتبار معاملات، به اصطلاح الگوریتم امضاي ديجيتال منحنی (Elliptic Curve (ECDSA را استفاده میکند.
الگوریتم های امضا دیجیتال
digital signature شامل 3 الگوریتم می باشد که عبارتنداز:
1- الگوریتم تولید کلید: در این الگوریتم کلیدهای خصوصی و کلید عمومی منطبق با آن ایجاد می شود.
تولید کلید خصوصی به این صورت است که از میان مجموعه کلیدها، یک کلید خصوصی را به صورت کاملا تصادفی و یکسان انتخاب می کند.
2- الگوریتم امضا: در این الگوریتم به وسیله کلید خصوصی و پیام، امضاهای دیجیتال ایجاد می شوند.
3- الگوریتم تایید و بررسی: در این الگوریتم صحت و درستی یک امضا از طریق کلید عمومی و پیام دریافتی بررسی میشود، اگر مورد تایید باشد، آن امضا پذیرفته شده در غیر این صورت رد می شود.
رمزنگاری از طریق کلید عمومی
رمزنگاری از طریق کلید عمومی پایه و اساس تبادل اطلاعات در فضای اینترنت است. همچنین روشی برای ایجاد امضاهای دیجیتال و ایجاد رابطه مخفی بین دو نفر بدون نیاز به تغییر کلید خصوصی می باشد. در این روش کلیدهای رمزنگاری و رمزگشایی با یکدیگر متفاوت هستند، به همین دلیل یک روش رمزنگاری نامتقارن به حساب می آید. در رمزنگاری از طریق کلید عمومی کاربران دو کلید خصوصی و عمومی برای انجام رمزنگاری در اختیار دارند. کلید خصوصی مانند یک راز باید توسط کاربر نگهداری شود اما کلید عمومی در اختیار همه کاربران قرار دارد. رمزنگاری نامتقارن علاوه بر اینکه در رمزنگاری مورد استفاده قرار می گیرد، برای رمزگشایی نیز به کار می رود. برای پیام هایی که رمزنگاری آنها با کلید عمومی انجام شده است، رمزگشایی تنها با کلید خصوصی منطبق انجام می شود. کلیدهای خصوصی از طریق کلیدهای عمومی ایجاد نمی شوند.
امضای دیجیتال چگونه کار می کنند؟
در زمینه رمزنگاری، یک سیستم امضای دیجیتالی معمولا از سه مرحله اساسی تشکیل شده است: هش کردن، امضا و تأیید صحت.
هش کردن داده ها اولین قدم برای امضای دیجیتال هش کردن پیام یا دادههای دیجیتال است. این کار با ارسال اطلاعات از طریق الگوریتم هشی کردن انجام میشود تا یک مقدار هش ایجاد شود. همانطور که گفته شد، پیام ها میتوانند از نظر اندازه تفاوت زیادی داشته باشند. اما هنگام هش شدن، تمام مقادیر هش آنها طول یکسانی دارند. این ابتداییترین ویژگی یک تابع هش است. با این حال، هش کردن دادهها برای تولید Digital Signature ضروری نیست، زیرا میتوان از یک کلید خصوصی برای امضا پیامی استفاده کرد که به هیچ وجه قابل دسترسی نباشد. اما برای ارزهای دیجیتال، دادهها همیشه از بین میروند زیرا برخورد با هشهایی با طول ثابت کل فرآیند را تسهیل میکند.
امضا کردن پس از هش اطلاعات، فرستنده پیام باید آن را امضا کند. این لحظهای است که رمزنگاری کلید عمومی در معرض نمایش قرار میگیرد. انواع مختلفی از الگوریتمهای امضای دیجیتال وجود دارد که هر یک مکانیزم خاص خود را دارند. اما در اصل، پیام هش شده با یک کلید خصوصی امضا میشود، و گیرنده پیام میتواند اعتبار خود را با استفاده از کلید عمومی مربوطه (ارائه شده توسط امضاکننده) بررسی کند. به عبارت دیگر، اگر در هنگام تولید امضای کلید خصوصی وجود نداشته باشد، گیرنده پیام قادر به استفاده از کلید عمومی مربوطه برای تأیید صحت آن نخواهد بود. هر دو کلید عمومی و خصوصی توسط فرستنده پیام تولید میشوند، اما فقط کلید عمومی با گیرنده به اشتراک گذاشته میشود.
شایان ذکر است که امضاهای دیجیتال به طور مستقیم با محتوای هر پیام مرتبط هستند. بنابراین برخلاف امضاهای دستنویس، که صرف نظر از پیام، تمایل به یکسان بودن دارند، هر پیام امضا شده دیجیتالی امضای دیجیتالی متفاوتی خواهد داشت.
تفاوت امضای دیجیتال و الکترونیکی تأیید بیایید مثالی بزنیم تا کل مراحل را تا آخرین مرحله تأیید نشان دهیم. تصور کنید که آلیس پیامی به باب مینویسد، آن را هش می کند. سپس مقدار هش را با کلید خصوصی خود ترکیب می کند تا یک امضای دیجیتالی تولید کند. امضا بهعنوان اثر انگشتدیجیتال بینظیر از آن پیام خاص کار خواهد کرد. هنگامی که باب پیام را دریافت کرد، میتواند اعتبار امضای دیجیتال را با استفاده از کلید عمومی ارائه شده توسط آلیس بررسی کند. با این روش، باب میتواند اطمینان داشته باشد که امضا توسط آلیس ایجاد شده است. زیرا تنها او کلید خصوصی را دارد که با آن کلید عمومی مطابقت دارد.
بنابراین، آلیس بسیار مهم است که کلید خصوصی خود را مخفی نگه دارد. اگر شخص دیگری کلید خصوصی آلیس را بگیرد، میتواند امضاهای دیجیتالی ایجاد کند و وانمود کند که آلیس است. در زمینه بیت کوین، این بدان معنی است که کسی میتواند از کلید خصوصی آلیس برای انتقال یا هزینه بیت کوین های خود بدون اجازه استفاده کند.
تفاوت امضای دیجیتال و الکترونیکی
به عبارت ساده، امضاهای دیجیتالی مربوط به یک نوع خاص از امضاهای الکترونیکی است. بنابراین، تمام امضاهای دیجیتالی امضاهای الکترونیکی هستند، اما برعکس همیشه درست نیست. تفاوت اصلی بین آنها، روش احراز هویت است. امضاهای دیجیتالی سیستمهای رمزنگاری مانند کارکردهای هش ، رمزنگاری کلید عمومی و تکنیکهای رمزگذاری را به کار میگیرند.
توابع هش و رمزنگاری کلید عمومی در هسته سیستمهای امضای دیجیتالی قرار دارند، که اکنون برای طیف گسترده ای از موارد استفاده استفاده میشود. در صورت اجرای صحیح، امضاهای دیجیتال میتوانند امنیت را افزایش دهند، یکپارچگی را تضمین کرده و تأیید هویت انواع دادههای دیجیتال را تسهیل کنند. در قلمرو بلاکچین، از امضاهای دیجیتالی برای امضاو مجاز کردن معاملات رمزنگاری استفاده میشود. آنها از اهمیت ویژهای برای بیت کوین برخوردار هستند زیرا امضاها اطمینان میدهند که سکهها فقط توسط افرادی که دارای کلیدهای خصوصی مربوطه هستند میتوانند هزینه شوند. اگرچه سالها است که از امضای الکترونیکی و دیجیتال استفاده میکنیم، اما هنوز فضای زیادی برای رشد وجود دارد.
دلیل اهمیت امضای دیجیتال
امضاهای دیجیتالی اغلب برای دستیابی به سه نتیجه استفاده میشوند: یکپارچگی دادهها، تأیید اعتبار و عدم بازپرداخت.
یکپارچگی داده: باب میتواند تأیید کند که پیام آلیس در طول مسیر تغییر نکرده است. هرگونه تغییر در پیام، امضای کاملا متفاوتی را ایجاد میکند. اعتبار: تا زمانی که کلید خصوصی آلیس مخفی نگه داشته شود، باب میتواند از کلید عمومی خود برای تأیید اینکه امضاهای دیجیتال توسط آلیس و هیچ کس دیگری ایجاد نشده است استفاده کند. عدم رد پس از ایجاد امضا، آلیس قادر به انکار آن نیست که در آینده امضا کند. مگر اینکه کلید خصوصی وی به نوعی به خطر بیفتد.
رمزنگاری کلید عمومی (PKC) چیست؟
رمزنگاری کلید عمومی یا PKC به سیستم رمزنگاری اشاره دارد که از یک جفت کلید استفاده میکند: یک کلید عمومی و یک کلید خصوصی. این دو کلید به لحاظ ریاضیاتی مرتبط هستند و میتوانند برای رمزگذاری دادهها و امضاهای دیجیتالی مورد استفاده قرار گیرند. PKC به عنوان یک ابزار رمزگذاری، نسبت به روشهای مهمتر رمزگذاری متقارن از امنیت بیشتری برخوردار است. در حالی که سیستمهای قدیمیتر به رمزگذاری و رمزگشایی اطلاعات به همان کلید متکی هستند، PKC رمزگذاری داده ها را با کلید عمومی و رمزگشایی داده ها با کلید خصوصی مربوط به آن امکان پذیر می کند.
به غیر از این، طرح PKC ممکن است در تولید امضاهای دیجیتال نیز اعمال شود. در اصل، این فرایند شامل هشدار یک پیام (یا داده های دیجیتالی) به همراه کلید خصوصی امضاکننده است. در مرحله بعد، گیرنده پیام می تواند با استفاده از کلید عمومی ارائه شده توسط امضاکننده، بررسی کند که آیا امضا معتبر است یا نیست. در برخی شرایط، امضاي ديجيتال ممکن است شامل رمزگذاری باشند، اما همیشه اینگونه نیست. به عنوان مثال، blockchain Bitcoin از PKC و امضاهای دیجیتال استفاده میکند، برخلاف بسیاری که تمایل دارند باور کنند، هیچ رمزگذاری در این فرآیند وجود ندارد. از نظر فنی، بیت کوین برای تأیید اعتبار معاملات، به اصطلاح الگوریتم امضاي ديجيتال منحنی (Elliptic Curve (ECDSA را استفاده میکند.
ثبت دیدگاه
0دیدگاه
دیدگاهی ثبت نشده است.
اولین نفری باشید که دیدگاهتان ثبت میشود.