یک امضای دیجیتال نوعی رمزنگاری نامتقارن است. هنگامی که پیغامی از کانالی ناامن ارسال میشود، یک امضای دیجیتال که به شکل صحیح به انجام رسیده باشد میتواند برای شخص گیرنده پیام دلیلی باشد تا ادعای شخص فرستنده را باور کند و یا به عبارت بهتر شخص گیرنده از طریق امضای دیجیتال میتواند این اطمینان را حاصل کند که همان شخص فرستنده نامه را امضا کرده است و نامه جعلی نیست. امضاهای دیجیتال در بسیاری از جنبهها مشابه امضاهای سنتی دستی هستند؛ انجام امضاهای دیجیتال به شکل صحیح بسیار مشکلتر از یک امضای دستی است. طرحها فایل امضای دیجیتال بر مبنای رمزنگاری نامتقارن هستند و می بایست به شکل صحیح صورت گیرد تا موثر واقع شود. همچنین امضاهای دیجیتال میتوانند امضاهایی غیرقابل انکار را ایجاد کنند به این معنی که شخص امضاکننده نمیتواند تا زمانی که کلید شخصی فرد به صورت مخفی باقیمانده است، ادعا کند که من این نامه که امضای من را به همراه دارد، امضا نکرده ام. ولی در زمانی که کلید شخصی فرد در شبکه از حالت مخفی خارج شود یا زمان اعتبار امضای او به اتمام برسد شخص میتواند امضای دیجیتال خود را انکار کند هرچند که در این حالت نیز با وجود ساختار قوی امضای دیجیتال، این امضا اعتبار خود را حفظ میکند. پیغامهای امضا شده با امضای دیجیتال امکان ارائه به صورت یک رشته بیتی را دارند. مانند: پست الکترونیک، قراردادها و یا پیام هایی که از طریق قواعد رمزنگاری های دیگر ارسال شده باشند.
امضا های دیجیتال اغلب برای به انجام رساندن امضاهای الکترونیکی به کار میروند. در تعدادی از کشورها، مانند آمریکا و کشورهای اتحادیه اروپا، امضاهای الکترونیکی قوانین مخصوص به خود را دارند. هرچند، قوانین دربارهٔ امضاهای الکترونیکی همواره روشن نمیسازند که آیا امضاهای دیجیتال به درستی به کار گرفته شده اند و یا اهمیت آنها به چه میزان است. در حالت کلی قوانین به شکل واضح در اختیار کاربران قرار نمیگیرد و گاهی آنان را به گمراهی می کشاند.
مشخصات امضا دیجیتال
طرح امضای دیجیتال معمولاً سه الگوریتم را شامل میشود: ۱- الگوریتم تولید کلید را که کلید خصوصی را بطور یکسان و تصادفی از مجموعه کلیدهای ممکن انتخاب میکند. خروجیهای این الگوریتم کلید خصوصی و کلید عمومی مطابق با آن است.۲- الگوریتم امضا که توسط آن با استفاده از کلید خصوصی و پیام، امضا شکل میگیرد. ۳-الگوریتمی که با استفاده از پیام دریافتی و کلید عمومی صحت امضا را بررسی میکند و با مطابقتی که انجام میدهد یا امضا را می پذیرد یا آن را رد میکند.
دو ویژگی اصلی که در امضای دیجیتال مورد نیاز است: اول، امضای تولید شده از پیام مشخص و ثابت هنگامی که توسط کلید عمومی مورد بررسی قرار میگیرد فقط در مورد همان پیام ارسالی میتواند عمل تطبیق را صورت دهد و در مورد هر پیام متفاوت و خاص میباشد. ثانیاً، امضای دیجیتال می بایست قابلیت اجرا توسط الگوریتم را داشته باشد و بتواند فایل امضای معتبر برای مهمانی که کلید خصوصی را دارا نمیباشد ایجاد نماید.
تاریخچه بر اساس اسناد معتبر "دیدگاههای جدید در رمزنگاری" در سال ۱۹۷۶ توسط ویتفید دیفای و مارتین هیلمن برای تشریح ایدههای اولیه طرح فایل امضای دیجیتال ارائه شد. البته به نظر میرسد طرحهای اولیه دیگری نیز در آن زمان وجود داشته است. مدت کوتاهی پس از آن جمع دیگری از محققین به نامهای ریوست، شمیر و آدلمن، الگوریتم آر اس اِی را ابداع کردند که میتوانست برای تولید امضای دیجیتال اولیه به کار رود . اول بسته نرمافزاری امضای دیجیتال با عنوان لوتوس نت در سال ۱۹۸۹ بر مبنای همین الگوریتم به بازار عرضه شد.
در سال ۱۹۸۴ میشلی، گلدواسر و ریوست با تمام دقت موارد مورد نیاز را برای برقراری امنیت در طرح امضای دیجیتال بررسی کردند. آنها با بررسی مدلهای مختلف حمله برای امضای دیجیتال توانستند طرح فایل امضای دیجیتال جی ام آر را ارائه کنند که میتواند در مقابل حمله به پیام و جعلی بودن آن مقاومت کند.
طرح های ابتدایی امضای دیجیتال مشابه همدیگر بودند: آنها از جایگشت(تبدیل) دریچهای استفاده میکردند، مانند تابع آر اس اِی و یا در برخی موارد از طرح امضای رابین بهره میگرفتند. جایگشت دریچهای نوعی از مجموعه جایگشت هاست که به وسیله پارامترها مشخص میشود که در محاسبههای رو به جلو سریع عمل میکند ولی در محاسبههای بازگشتی با مشکل مواجه میشود. با این وجود برای هر پارامتر یک دریچه وجود دارد که حتی محاسبههای بازگشتی را آسان می کند. جایگشتهای دریچهای میتوانند مانند سیستمهای رمزگذاری با کلید عمومی باشند. در جایی که پارامتر به عنوان کلید عمومی و جایگشت دریچهای به عنوان کلید پنهان است رمزگذاری مانند محاسبه جایگشت در جهت رو به جلوست و رمز گشایی مانند محاسبه در جهت معکوس است. همچنین جایگشتهای دریچهای میتوانند مانند طرح فایل امضا دیچیتال باشند، به این صورت که محاسبه در جهت معکوس با کلید پنهان مانند امضا کردن است و محاسبه در جهت پیش رو مانند بررسی صحت امضاست. به دلیل این همخوانی امضاهای دیجیتال اغلب بر پایه سامانه رمزنگاری با کلید عمومی تشریح میشوند اما این تنها روش پیاده سازی امضای دیجیتال نیست.
ولی این نوع طرح امضای دیجیتال در برابر حملات آسیب پذیر است و شخص مهاجم میتواند با دست کاری در روش بررسی صحت امضا، یک امضای دیجیتال جعلی برای خود ساخته و شبکه را با مشکل مواجه سازد. هرچند این نوع امضا به شکل مستقیم به کار گرفته نمیشود ولی ترجیحاً ابتدا پیام را با استفاده از روشهای درهم سازی خلاصه میکنند و سپس خلاصه پیام را امضا میکنند و در نتیجه استفاده از همین ترفند و با توجه به توضیحات شکل ۲ شخص مهاجم فقط میتواند یک امضای دیجیتال جعلی برای خود درست کند که این امض با محتویات مربوط به خروجی تابع درهم سازی از پیام خلاصه شده تطابق ندارد و شخص مهاجم نمیتواند به محتویات پیام خدشهای وارد کند.
همچنین دلایل متنوعی وجود دارد تا افرادی که می خواهند از امضای دیجیتال استفاده کنند از خلاصه پیام و خروجی تابع درهم سازی برای امضا استفاده کنند. اولین دلیل ایجاد بازدهی مناسب برای طرح امضای دیجیتال است زیرا فایل امضا خیلی کوتاهتر خواهد بود و در نتیجه زمان کمتری صرف میشود. دومین دلیل برای سازگاری بیشتر است زیرا با استفاده از تابع درهم سازی شما میتوانید خروجی مطابق با نوع الگوریتمی که به کار گرفته اید داشته باشید. سومین دلیل برای درستی اجرای امضای دیجیتال است : بدون استفاده از تابع درهم سازی ممکن است پیام شما در هنگام امضا به دلیل مشکل فضا به بخشهای مختفل تقسیم شود و شخص دریافت کننده نتواند به درستی منظور فرستنده را دریافت کند بنابراین از این تابع استفاده میکند تا خود پیام را به شکل خلاصه و بدون ایجاد مشکل ارسال کند.
نظریههای امنیتی در تحقیقات میشلی، گلدواسر و ریوست مراتب متفاوت حمله به امضاهای دیجیتال را برای ایجاد دیوار دفاعی مناسب بررسی کردند و نتایج زیر به دست آمد: ۱- در حمله کلید یگانه، مهاجم فقط روند بررسی و تایید کلید عمومی را بدست میآورد و از این طریق سامانه را مورد تهاجم قرار میدهد. ۲- در حمله با پیام آشکار، مهاجم یک کلید کارآمد برای مجموعهای از پیامهای آشکار و مشخص در اختیار دارد و فقط با استفاده از پیام مشخص میتواند حمله کند و توانایی انتخاب پیام برای مورد حمله قرار دادن نخواهد داشت. ۳- در انطباق پیام انتخاب شده، مهاجم ابتدا امضا را بر روی یک پیام دلخواه که مورد انتخاب مهاجم است یاد میگیرد و از آن امضا استفاده میکند. در ادامه مراحل نتایج حمله به سامانه امضای دیجیتال از طریق روشهای مذکور مطرح میشود: ۱- در مرحله اول امکان ترمیم و استفاده مجدد از امضای دیجیتال را از بین خواهد برد. ۲- توانایی جعل امضا در یک سطح گسترده از دیگر نتایج حمله به امضای دیجیتال است. در این مرحله شخص مهاجم توانایی جعل امضا برای هر پیامی را به دست خواهدآورد. ۳- جعل در مورد پیامهای انتخابی؛ در این مورد مهاجم میتواند جعل امضا را در مورد پیام انتخابی خود انجام دهد. ۴- در این مورد از نتایج حمله به امضای دیجیتال شخص مهاجم فقط میتواند از طریق امضای در دسترس خود و برخی پیامها به محتویات آنها دست پیدا کند و دیگر شخص مهاجم توانایی انتخاب ندارد و انتخابهای او محدود میشود.
معایب امضای دیجیتال
با وجود تمام مزایایی که امضای دیجیتال دارد و در ادامه همین مقاله به بررسی آن می پردازیم ولی این طرح همچنان در حل برخی مشکلات که در ادامه آنها را مطرح می کنیم ناتوان است. الگوریتم و قوانین مربوط به آن نمیتوانند تاریخ و زمان امضای یک سند را در ذیل آن درج کنند از همین جهت شخص دریافت کننده نمیتواند این اطمینان را حاصل کند که نامه واقعاً در چه تاریخ و زمانی به امضا رسیده است. ممکن است در محتویات سند تاریخی درج شده باشد و با تاریخی که شخص نامه را امضا کرده باشد مطابقت نداشته باشد. البته برای حل این مشکل میتوان از یک راه حل با عنوان زمان اعتماد به مهرو امضا استفاده کرد. همانطور که در ابتدای تعریف امضای دیجیتال اشاره شد این طرح غیر قابل انکار است و ساختار امضای دیجیتال بر همین اساس شکل گرفته است. همانطور که می دانید تکذیب در لغت به معنی انکار هرگونه مسئولیت نسبت به یک فعالیت است. هنگامی که پیامی ارسال میشود و فرستده آن را همراه امضا دریافت میکند در واقع این اطمینان در شخص دریافت کننده ایجاد میشود که نامه را چه کسی امضا کرده است و انکار امضا کاری مشکل به نظر میرسد. البته تا زمانی که کلید خصوصی به صورت مخفی باقی بماند شخص فرستنده نمیتواند چنین ادعایی داشته باشد ولی هنگامی که فایل امضای شخصی مورد حمله قرار بگیرد نه تنها خود فایل امضا اعتبار لازم را از دست میدهد بلکه استفاده از زمان اعتبار مهر و امضا نیز دیگر کاربردی نخواهد داشت. البته یادآوری این نکته لازم است هنگامی که شما در سامانه خود از کلید عمومی بهره میگیرد دیگر نمیتوانید امضای خود را انکار کنید و در صورتی این موضوع امکان پذیر است که کل شبکه مورد حمله واقع شود و سامانه از اعتبار لازم ساقط شود. بنا براین توجه به انتخاب یک راه حل درست برای پیاده سازی طرح امضای دیجیتال از اهمیت ویژهای برخوردار است و همانطور که عنوان شد ممکن است با یک مشکل کل اعتبار مجموعه زیر سوال برود. مطابق اصول فنی امضای دیجیتال که در توضیحهای ابتدایی آورده شده است، فایل امضای دیجیتال رشتهای از بیتها را در اجرای این طرح به کار میبرد. در واقع افراد در این طرح مجموعهای از بیتها را که ترجمه پیام است امضا میکنندآن آنها ترجمه معنایی آنها ذرهها امضا میکنند . مشکل دیگر امضای دیجیتال این است که چون پیام توسط یک تابع مشخص به مجموعهای از بیتها ترجمه و پردازش میشود ممکن است در طی مرحله انتقال و دریافت پیام ترجمه پیام دچار خدشه شود و مفهوم دیگری به خود گیرد. برای حل این مشکل از روشی با عنوان دبلیو وای اس آی دبلیو وای اس استفاده میشود به این معنا که همان چیزی که مشاهده میشود امضا میشود. در این روش همان اطلاعات ترجمه شده خود را بدون آن که اطلاعات مخفی دیگری در آن قرار گیرد امضا میکند و پس از امضا و تایید اطلاعات از سوی شخص فرستنده درون سامانه به کار گرفته میشود. در واقع این روش ضمانت نامه محکمی برای امضای دیجیتال به شمار میرود و در سیستمهای رایانهای مدرن قابلیت پیاده سازی و اجرا را خواهد داشت.
مزایای امضای دیجیتال
حال در این بخش مزایای استفاده از امضای دیجیتال را مورد بررسی قرار خواهیم داد. یکی از دلایل به کار گیری امضاهای دیجیتالی که یک دلیل عادی به شمار میرود ایجاد اعتبار برای امضاها در یک سامانه تبادل داده و اطلاعات است. در واقع استفاده از امضای دیجیتال سندیت و اعتبار ویژهای به یک سند می بخشند. وقتی که هر فرد دارای یک کلید خصوصی در این سامانه است با استفاده از آن میتواند سند را امضا کرده و به آن ارزش و اعتبار داده و سپس آن را ارسال کند. اهمیت ایجاد اطمینان قطعی و محکم برای شخص دریافت کننده پیام دربارهٔ صحت ادعای فرستنده در برخی از انواع انتقال اطلاعات مانند دادههای مالی به خوبی خود را نشان میدهد و اهمیت وجود امضای دیجیتال درست را بیش از پیش به نمایش می گذارد. به عنوان مثال تصورکنید شعبهای از یک بانک قصد دارد دستوری را به دفتر مرکزی با نک به منظور درخواست ایجاد تعادل در حسابهای خود را ارسال کند . اگر شخص دریافت کننده در دفتر مرکزی متقاعد نشود که این پیام، یک پیام صادقانه است و از سوی یک منبع مجاز ارسال شده است طبق درخواست عمل نکرده و در نتیجه مشکلاتی را به وجود میآورد. در موارد بسیار زیادی، فرستنده و گیرنده پیام نیاز دارند این اطمینان را به دست بیاورند که پیام در مدت ارسال بدون تغییر باقیمانده است. هرچند رمزنگاری محتوای پیام را مخفی میکند ولی ممکن است امضا در یک سامانه از اعتبار ساقط شود و محتویات یک پیام دست خوش تغییرات گردد. ولی استفاده از امضای دیجیتال به عنوان روشی از رمز نگاری میتواند ضامن درستی و بی نقصی یک پیام در طی عملیات انتقال اطلاعات باشد زیرا همانطور که در ساختار اجرایی شدن الگوریتم مشاهده کردید از تابع درهم سازی بهره گرفته شده است و همین نکته ضمانت بهتری را برای درستی و صحت یک پیام ایجاد می نماید.