امضای دیجیتال (به انگلیسی Digital Signature) یک مکانیسم رمزنگاری است که از آن برای اعتبارسنجی اطلاعات دیجیتال استفاده میشود.
شاید بتوان این پدیده را به عنوان نسخه دیجیتال همان امضاهای خطی خودمان؛ اما با پیچیدگی و امنیت بیشتر بدانیم.
به طور ساده میتوان امضای دیجیتال را
یک کد تعریف کرد که به سند و یا یک پیام پیوست میشود.بعد از اینکه این کد تولید میشود، اثباتی است که این سند و یا پیام در راه فرستاده شدن از فرستنده تا گیرنده، دستخوش تغییرات نشده است.
استفاده از رمزنگاری برای امنکردن ارتباطات به دوران باستان باز میگردد؛ اما مفهوم امضای دیجیتال در دهه 1970 به لطف توسعه فناوری رمزنگاری کلید عمومی به وجود آمد.
خوب اکنون برای یادگیری عملکرد امضای دیجیتال، بهتر است که در ابتدا در مورد اصول اولیه تابع هش و رمزنگاری کلید عمومی صحبت کنیم.
هش کردن یکی از از عنصرهای اصلی در سیستم امضای دیجیتال است.
فرآیند هش کردن شامل فرستادن اطلاعات با هر سایز و رسیدن آن اطلاعات به دست گیرنده با یک سایز ثابت است.
این کار توسط االگوریتم های خاص با نام عملگرهای هش انجام میشود. اطلاعات فرستاده شده با عنوان مقدار هش معروف هستند.
با ترکیب کردن این فناوری با رمزنگاری میتوان عملگر هش رمزنگاری شده را به وجود آورد که با استفاده از آن اثر انگشت دیجیتال تولید میشود؛ یعنی هر تغییری که در اطلاعات اولیه ایجاد شود، یک خروجی کاملا متفاوت خواهد داد و به همین دلیل به طور گسترده از عملگر هش رمزنگاری شده برای اعتبارسنجی اطلاعات دیجیتال استفاده میشود.
رمزنگاری کلید عمومی (به انگلیسی Public-key cryptography) و یا به اختصار PKC به سیستمی گفته میشود که در آن از دو کلید متفاوت استفاده میشود: کلید عمومی و کلید شخصی یا خصوصی.
این دو کلید از نظر ریاضی به هم مربوط بوده و از آنها میتوان برای رمزنگاری اطلاعات و امضای دیجیتال استفاده کرد.
به عنوان یک ابزار رمزنگاری، PKC روش ابتداییتر رمزنگاری تقارنی است.
در سیستمهای سنتی تنها از یک کلید برای رمزنگاری و هم رمزگشایی اطلاعات استفاده میشود؛ اما در PKC برای رمزنگاری از کلید عمومی و برای رمزگشایی از کلید شخصی استفاده میکنیم.
علاوه بر این از طرح PKC میتوان برای تولید امضای دیجیتال استفاده کرد.
این فرآیند شامل هش کردن اطلاعات دیجیتال و کلید شخصی فرد امضاکننده میشود.
بعد از این مرحله دریافتکننده اطلاعات و یا پیام میتواند با همان کلید عمومی که فرد امضاکننده در اختیار او قرار داده است، اعتبار اطلاعات ارسالی را بررسی کند.
در برخی شرایط امضای دیجیتال رمزنگاری میگردد؛ اما این موضوع همیشگی نیست؛ برای مثال در بلاکچین بیتکوین از PKC و امضای دیجیتال استفاده میشود؛ ولی برخلاف باور عموم، هیچ رمزنگاری در این فرآیند وجود ندارد و در واقع بیتکوین از الگوریتم ECDS برای تایید تراکنشها استفاده میکند.
امضای دیجیتال چگونه کار میکند؟
در بحث ارزهای دیجیتال، به وجود آمدن یک امضای دیجیتال شامل سه مرحله اصلی است: هش کردن، امضا و تایید.
اولین قدم هش کردن اطلاعات دیجیتال و یا یک پیام است که این کار توسط الگوریتم هش کردن و تولید مقدار هش انجام میشود.
همانطور که گفته شد، هر پیامی میتواند یک اندازه متفاوت داشته باشد؛ اما وقتی این پیام هش میشود، طول تمام آنها یکسان است. این پایهایترین ویژگی عملگر هش است.
با این حال هش کردن اطلاعات یک اجبار و ضرورت در امضای دیجیتال نیست؛ زیرا میتوان برای تولید آن از یک کلید شخصی استفاده کرد؛ اما در بحث رمزارزها هش کردم الزامی است.
بعد از اینکه اطلاعات هش شد، فرستنده پیام باید آن را امضا کند و این زمانی است که رمزنگاری کلید عمومی وارد صحنه میشود.
چندین مکانیسم مختلف برای امضای دیجیتال وجود دارد که هرکدام از آنها روش خاص خود را دارند؛ اما در نهایت این پیام هش شده توسط یک کلید شخصی امضا گردیده و بعدا اعتبار آن توسط گیرنده پیام به وسیله یک کلید عمومی ایجاد شده توسط امضا کننده مورد بررسی قرار میگیرد.
به بیان دیگر اگر از کلید شخصی برای تولید امضای دیجیتال استفاده نشود، گیرنده اطلاعات و یا پیام نمیتواند با آن کلید عمومی اطلاعات را دریافت و اعتبار آن را تایید کند.
هم کلید شخصی و هم کلید عمومی توسط فرستنده اطلاعات به وجود میآید؛ اما گیرنده، تنها کلید عمومی را در اختیار خواهد داشت.
لازم به گفتن نیست که هر امضای دیجیتال وابسته به محتوای پیام ارسالی است؛ پس بر خلاف امضای دستنویس که بدون توجه به محتوا همیشه یکسان است، امضای دیجیتال با توجه به پیام و اطلاعات مختلف فرق میکند.
بگذارید تمام این فرآیند را تا پایان دوره اعتبارسنجی با یک مثال برای شما توضیح بدهم.
فرض کنید که علی یک پیام برای محمد نوشته، هش کرده و با ترکیب کردن با کلید شخصیاش، یک امضای دیجیتال برای آن تولید میکند. این امضا به عنوان اثر انگشت خاص این پیام محسوب میشود.
وقتی محمد پیام علی را دریافت میکند، میتواند با استفاده از کلید عمومیای که علی به او داده است، درستی امضای دیجیتال پیام را تایید کند.
به این طریق محمد میتواند مطمئن شود که پیام فرستاده شده توسط علی امضا شده است؛ زیرا کلید عمومی او تنها به کلید شخصی علی پاسخ میدهد (انتظاری که داریم این است).
پس بسیار مهم است که علی کلید شخصی خودش را همیشه در یک جای امن نگهداری کند.
اگر شخص دیگری کلید شخصی علی را به دست آورد، میتواند به جای او امضای دیجیتال تولید کرده و وانمود کند که علی است.
در بحث بیتکوین این موضوع ملموستر است؛ زیرا با استفاده از کلید شخصی علی، هرکسی میتواند از بیتکوینهای او برای خودش استفاده کند.
از امضای دیجیتال برای به دست آوردن سه نتیجه مهم استفاده میشود:
درستی اطلاعات، احراز هویت، گرفتن حق تکذیب (non-repudiation)
ر مورد هر سه این نتایج در ادامه توضیح خواهیم داد:
امضای دیجیتال در انواع مختلف اسناد و گواهینامهها قابل استفاده است و به همین دلیل این پدیده کاربردهای بسیاری دارد که مهمترین آنها را در ادامه به شما معرفی کردهایم:
طرحهای امضای دیجیتال در سه زمینه با محدودیتهایی مواجه است:
به طور ساده امضای دیجیتال زیر مجموعهای از امضای الکترونیک است که اشاره به هر نوع روش الکترونیک برای امضا کردن اسناد و مدارک دارد؛ در نتیجه تمام امضاهای دیجیتال، امضای الکترونیک است؛ اما برعکس این موضوع درست نیست.
تفاوت اصلی بین این دو روش احراز هویت است. در امضای دیجیتال از سیستمهای رمزنگاری؛ مانند عملگر هش، رمزنگاری کلید عمومی و تکنیکهای رمزنگاری استفاده میشود.
عملگر هش و رمزنگاری کلیدهای عمومی دو سیستم اصلی امضای دیجیتال هستند که اکنون کاربردهای بسیار گستردهای دارد.
اگر سیستم امضای دیجیتال به طور مناسب پیادهسازی شود، میتواند امنیت، درستی اطلاعات و روشهای احراز هویت برای تمام اطلاعات دیجیتال را بهبود ببخشید.
در زمینه رمزارزها از امضای دیجیتال برای تایید اعتبار تراکنشهای کریپتوکارنسی استفاده میشود.
امضای دیجیتال برای بیتکوین بسیار مهمتر است؛ زیرا مشخص میکند که این ارز دیجیتال بسیار ارزشمند تنها توسط صاحب اصلی آن در حال خرج شدن است.
هرچند که سالهاست در حال استفاده از امضای دیجیتال و الکترونیک هستیم؛ ولی فضای رشد بسیار زیادی برای این پدیدهها وجود دارد.
در حال حاضر بخش اعظمی از کارهای اداری و دفتری سراسر جهان به کاغذبازیهای معمول محدود میشود؛ اما به زودی خواهیم دید که استفاده از امضای دیجیتال گسترش یافته و به تدریج از سیستمهای سنتی به سمت دیجیتالی شدن مهاجرت خواهیم کرد.
استفاده از امضای دیجیتال میتواند هزینههای مربوط به کارهای اداری را نیز به اندازه قابل توجهی کاهش دهد.