نحوه کار امضای دیجیتال

همانطور که بیان گردید، براي اينكه هويت فرستنده سند تاييد شود و نيز براي اطمينان از اينكه سند در طول مدت انتقال و رسیدن به گيرنده دستكاري نشده است از امضاي ديجيتالي استفاده مي‌‌شود.

به طور كلي سه دليل براي استفاده از امضاي ديجيتالي وجود دارد كه شامل:

  1. استفاده از كليد عمومي اين اجازه را به هر شخصي مي‌‌دهد كه كليد خود را به سمت فرستنده اطلاعات بفرستد و سپس گيرنده پس از دريافت اطلاعات آنرا توسط كليد خصوصي خود بازگشايي مي‌‌كند، بنابراين امضاي ديجيتالي اين امكان را مي‌‌دهد كه فرستنده يا گيرنده مطمئن شوند كه اطلاعات از محل يا شخص مورد نظر ارسال یا دريافت مي‌‌شود.
  2. در حالت معمولی اطلاعات در طول مدت انتقال ممكن است توسط ديگران دستكاري شود، لذا براي اينكه از صحت و عدم دستکاری شدن اطلاعات رسيده مطمئن شويم نياز به يك امضاي ديجيتالي داریم.
  3. از بین بردن امکان انکار و تردید. گيرنده اطلاعات براي اينكه مطمئن شود فرستنده بعدا در خصوص اطلاعاتي كه فرستاده است اعلام بي خبري نكند و باصطلاح آنها را رد نكند از فرستنده آن اطلاعات، يك امضا درخواست مي‌‌كند تا شاهدي بر اين ادعا باشد.

براي پياده سازي يك امضاي ديجيتالي نياز به سه الگوریتم[1] داريم:

الف- يك الگوريتم براي ايجاد كليد:

الگوریتم تولید کلید را که کلید خصوصی را بطور یکسان و تصادفی از مجموعه کلیدهای ممکن انتخاب می‌کند. خروجی‌های این الگوریتم کلید خصوصی و کلید عمومی مطابق با آن است

ب- الگوريتم دیگری براي ايجاد امضاء :

الگوریتم امضا که توسط آن با استفاده از کلید خصوصی و پیام، امضا شکل می‌گیرد.

– الگوريتم دیگری براي تاييد امضاء :

الگوریتمی که با استفاده از پیام دریافتی و کلید عمومی صحت امضا را بررسی می‌کند و با مطابقتی که انجام می‌دهد یا امضا را می پذیرد یا آن را رد می‌کند.

 

حال با یک مثال سعی در تشریح نحوه رمز نگاری در امضای دیجیتال می پردازیم. در صورتی که محمد پیام را ابتدا با کلید خصوصی خود رمزنگاری و سپس با کلید عمومی مسعود(گیرنده)، آن را مجددا رمزنگاری کند و پیام را ارسال نماید، در این صورت با توجه به قاعده ی گفته شده، مسعود برای خواندن پیام ابتدا باید پیام رمزی را با کلید خصوصی خود و سپس با کلید عمومی محمد رمزگشایی کند در نتیجه با توجه به اینکه رمزگشایی پیام با کلید عمومی محمد(فرستنده)، ملازمه با این مساله دارد که پیام در لحظه ی ارسال با کلید متناظر آن(کلید خصوصی) رمز نگاری شده باشد و می دانیم که اصولا دسترسی به کلید خصوصی محمد تنها برای شخص او امکان پذیر است، بنابراین این نتیجه ی منطقی بدست می آید که خود محمد این پیام را ارسال کرده است. چرا که هیچکس دیگری از کلید خصوصی محمد اطلاع ندارد.[2]

در پایان ذکر این نکته ضروری است که قانون نمونه امضای الکترونیکی آنسیترال به بی طرفی تکنولوژیکی معتقد است. این قانون با توجه به سرعت موجود در ابداع روش های نوین ایجاد امضای الکترونیکی مانند امضای دیجیتالی طبق الگوریتم ریاضی، اسکن امضای کاغذی، اثر انگشت، خصوصیت عنبیه چشم یا ویژگی های بیولوژیکی افراد، بدون در نظر گرفتن نوع تکنولوژی به کار رفته برای ایجاد آن، معیارهایی را برای اعتبار حقوقی انواع مختلف امضاهای الکترونیکی که هم اکنون رایج است یا ممکن است در آینده ایجاد شود و امضاهای دست نویس و یا سایر شیوه های سنتی تولید امضا مانند مهر و تمبر، رفتاری مادی صورت گیرد.

[1] الگوریتم امضای دیجیتال :

1- تولید کلید

تولید کلید شامل دو مرحله است. مرحله اول انتخاب پارامترها الگوریتم است که می‌توانند بین کاربران مختلف سیستم به اشتراک گذاشته شوند، در حالیکه مرحله دوم به محاسبه کلیدهای خصوصی و عمومی برای یک کاربر مجزا می‌پردازد.

2- انتخاب پارامترهای الگوریتم

  • یک تابع پنهانی در هم تصویب شده H را انتخاب کنید

بر روی طول کلید N,Lتصمیم بگیرید. این اندازه گیری اولیه قدرت پنهانی کلید است. دی اس اس اصلی ما را وادار می‌کند تا مضربی از ۶۴ بین ۵۱۲و ۱۰۲۴ باشد.

  • یک بیت اولیه n را به گونه‌ای برگزینید که N کمتر یا مساوی با طول خروجی درهم باشد.
  • یک بیت اولیه l با مدول p را به گونه‌ای انتخاب کنید که p–۱ مضربی از q باشد.
  • عددی را به عنوان g = h(p–۱)/q برگزینید.

پارامترهای الگوریتم (p, q, g) ممکن است بین کاربران سیستم به اشتراک گذاشته شود. به ازای هر کاربر یک مجموعه از پارامترها به کلیدها تخصیص میابد.

3- تخصیص کلید به کاربر

به ازای هر کاربر یک مجموعه از پارامترها به کلید تخصص میابد مرحله دوم کلیدهای عمومی و اختصاصی را برای یک کاربر مجزا محاسبه می‌کند.

  • انتخاب x با روش‌های تصادفی
  • محاسبه باقی‌مانده y = gx
  • کلید عمومی(p, q, g, y)و کلید خصوصی x است.

4- الگوریتم تولید امضا

  • تولید یک کلید تصادفی k باید بعد از یکبار استفاده از بین رفته و دیگر مورد استفاده قرار نگیرد.
  • سپسزوج مرتب امضا (r,s)به صورت زیر محاسبه می‌شوند.

r = (gk mod p) mod q s = [k-1(H(M) + xr)] mod q

(r,s) به پیام M الحاق شده وفرستاده می‌شود.

5- درستی الگوریتم تصدیق امضا

گیرنده ,M و (r,,s,) را دریافت می‌کنند. مقادیر زیر را محاسبه می‌کند:

  • w = (s’)-1mod q
  • u1= [H(M’)w] mod q
  • u2= [(r’)w] mod q
  • v = [(gu1yu2) mod p] mod q

اگر v=r, امضا معتبر است.

6- حساسیت

با DSA پیش بینی ناپذیری و محرمانه بودن و منحصربه‌فردی مقدار تصادفی امضا K بسیار حائز اهمیت است. اهمیت این موارد به اندازه‌ای است که نقض هر یک از این سه لازمه می‌تواند کل کلید خصوصی شما را برای یک مهاجم آشکار نماید. دو بار استفاده از یک مقدار مشابه حتی با مخفی نگه داشتن K استفاده از یک مقدار قابل پیش بینی یا فاش شدن حتی چند بیت از K در هر یک چند امضا برای در هم شکستن DSA کافی است.

 

[2]  Rezende, Pedro, A.D. (2001). The Possible Law On Digital Electronic, p4

لینک جزییات بیشتر و دانلود این پایان نامه:

مطالعه تطبیقی امضای الکترونیکیدر حقوق ایران با سیستم های حقوقی کامن لا و رومی – ژرمنی