DSA چیست و چگونه از دادههای شما هنگام ارسال آن در سراسر وب محافظت میکند؟
امضای دیجیتال برای تأیید صحت سند و هویت فرستنده بر معماری رمزنگاری کلید عمومی متکی است. دو راه استاندارد برای به دست آوردن امضای دیجیتال، الگوریتم های RSA (Rivest-Shamir-Adleman) و DSA (امضای دیجیتال) هستند، اما هر دو در انجام عملکردهای رمزگذاری و رمزگشایی متفاوت هستند.
این مقاله مروری بر یکی از الگوریتمهای استاندارد صنعتی DSA، فرآیند کار آن با مروری کوتاه بر تولید و تأیید کلید و امضا، مراحل دخیل در فرآیند کلی، مزایا/معایب آن و کاربرد آن ارائه میکند.
مقدمه ای بر الگوریتم های امضای دیجیتال
DSA (الگوریتم امضای دیجیتال) ویژگی های جبری مسائل لگاریتمی گسسته و توان مدولار را برای تولید امضای الکترونیکی برای کاربردهای مختلف ترکیب می کند. در سال 1991 پیشنهاد شد و به عنوان یک استاندارد پردازش اطلاعات فدرال توسط NIST (موسسه ملی استاندارد و فناوری) در سال 1994 پذیرفته شد.
اکثر الگوریتمهای ایجاد امضای دیجیتال از روش معمول امضای خلاصه پیام (هش پیام واقعی) با کلید خصوصی منبع برای ایجاد اثر انگشت دیجیتال پیروی میکنند.
با این حال، وضعیت در DSA متفاوت است زیرا با ترکیب دو تابع امضا و تأیید پیچیده و منحصر به فرد، دو امضا تولید می کند. از این رو، الگوریتم DSA استفاده ساده از کلیدهای خصوصی و عمومی در ابتدا و انتهای ارتباط نیست.
اهمیت الگوریتم امضای دیجیتال
با توجه به افزایش روزافزون تهدیدات سایبری، هر زمان که کاربر دادهای را از طریق اینترنت ارسال میکند، لازم است صحت مالک آن شناسایی و تأیید شود. ما باید اطمینان حاصل کنیم که صاحب سند معتبر است و هیچکس هیچ تغییری در حین انتقال ایجاد نکرده است.
امضای دیجیتال، امضای الکترونیکی است که به گیرنده کمک می کند تا مبدأ پیام را تأیید کند. شما می توانید این امضاهای الکترونیکی را از طریق الگوریتم های مختلف ایجاد کنید که DSA یکی از آنهاست. در DSA، فرستنده یک امضای دیجیتال ایجاد میکند تا آن را با پیام اضافه کند تا هر کسی بتواند آن را در انتهای گیرنده احراز هویت کند.
مزایای ارائه شده توسط DSA عبارتند از:
- عدم رد: پس از تأیید امضا، فرستنده نمی تواند ادعا کند که داده ها را ارسال نکرده است.
- یکپارچگی: اصلاح داده ها در حین انتقال از تأیید نهایی یا رمزگشایی پیام جلوگیری می کند.
- احراز هویت پیام: ترکیب سمت راست کلیدهای خصوصی/عمومی به تأیید منشاء فرستنده کمک می کند.
چگونه الگوریتم فرستنده را احراز هویت می کند؟
الگوریتم DSA بر روی مکانیسم محاسباتی سیستماتیک کار می کند که یک مقدار هش و یک امضای دیجیتالی را محاسبه می کند که دو عدد 160 بیتی را از خلاصه پیام و کلید خصوصی تشکیل می دهد. تصادفی بودن امضا را غیر قطعی می کند. از یک کلید عمومی برای احراز هویت امضا استفاده می کند که بسیار پیچیده تر از RSA است.
چرخه DSA این سه مرحله اصلی را برای تکمیل فرآیند دنبال می کند:
- تولید کلید: این فرآیند بر مفهوم توان مدولار برای به دست آوردن کلیدهای خصوصی (x) و عمومی (y) که شرایط ریاضی 0 < x < q و y = gx mod p را برآورده می کند، متکی است. در جایی که q یک مقسوم علیه اول است، p یک عدد اول است، و g این g**q mod p = 1 و g = h**((p–1)/q) mod p را برآورده میکند. بنابراین بسته های کلید خصوصی و عمومی {p,q,g,x} و {p,q,g,y} ایجاد می شود.
- تولید امضا: یک الگوریتم هش یک خلاصه پیام تولید می کند که به عنوان ورودی به یک تابع امضا ارسال می شود تا دو خروجی متغیر r و s ایجاد کند که به عنوان امضای {r,s} بسته بندی می شوند به طوری که پیام و این متغیرها به صورت یک ارسال می شوند. بسته به گیرنده
- تأیید امضا: این فرآیند از تابع هش برای خروجی خلاصه استفاده میکند و متغیر s را با پارامترهای دیگر از مرحله تولید کلید برای تولید مؤلفه تأیید v. ترکیب میکند. تابع تأیید، متغیر محاسبهشده v را با پارامتر r از {M,s، مقایسه میکند. r} بسته نرم افزاری.
برای خلاصه کردن فرآیند فوق به صورت غیر ریاضی:
- شما کلیدهایی را با کمک الگوریتم تولید کلید برای امضای سند ایجاد می کنید.
- سپس از یک الگوریتم امضای دیجیتال برای تولید امضا استفاده کنید.
- از یک تابع هش برای ایجاد خلاصه پیام استفاده کنید و آن را با DSA ترکیب کنید تا امضای دیجیتال تولید شود.
- امضا را همراه با داده ها ارسال کنید تا گیرنده احراز هویت کند.
- گیرنده با استفاده از یک الگوریتم تأیید اعتبار امضا را تأیید می کند. این تابع هش است که در بالا برای ایجاد خلاصه پیام استفاده شده است.
مزایای استفاده از الگوریتم امضای دیجیتال
- محاسبه سریع امضا
- برای کل فرآیند به فضای ذخیره سازی کمتری نیاز دارد
- به صورت رایگان (بدون ثبت اختراع) برای استفاده جهانی بدون هزینه.
- طول امضای کوچک
- مشاهده در زمان واقعی
- غیر تهاجمی
- DSA در سطح جهانی برای انطباق قانونی پذیرفته شده است.
- زمان کارآمد (مصرف زمان کم در مقایسه با فرآیندهای امضای فیزیکی و غیره)
معایب استفاده از الگوریتم امضای دیجیتال
- این فرآیند شامل قابلیت های تبادل کلید نمی شود.
- رمزنگاری زیربنایی باید جدید باشد تا از قدرت آن اطمینان حاصل شود.
- استانداردسازی فروشندگان سخت افزار و نرم افزار کامپیوتر در RSA ممکن است به دلیل دومین استاندارد احراز هویت DSA مشکلاتی ایجاد کند.
- عملیات باقیمانده پیچیده به زمان زیادی برای محاسبه و در نتیجه تأیید امضا نیاز دارد.
- این فقط احراز هویت را تضمین می کند، نه محرمانه بودن، زیرا الگوریتم داده ها را رمزگذاری نمی کند.
- الگوریتمهای DSA هش SHA1 را برای تولید خلاصه پیام محاسبه میکنند. از این رو، تمام معایب تابع هش SHA1 را در الگوریتم منعکس می کند.
DSA در مقابل RSA
الگوریتم امضای دیجیتال یک الگوریتم رمزگذاری کلید نامتقارن است که توسط آژانس های ایالات متحده برای ارتباطات مخفی و غیر مخفی اتخاذ شده است. در حالی که RSA یک الگوریتم رمزنگاری با کلید عمومی است که از محاسبات مدولار نیز استفاده میکند، قدرت آن به مشکل فاکتورسازی اعداد اول برای ایمنسازی ارتباطات و امضای دیجیتال متکی است. از این رو، بر خلاف الگوریتم های رمزگذاری معمولی مانند RSA، DSA یک استاندارد فقط برای امضای دیجیتال است.
حتی اگر هر دو الگوریتم های ریاضی متفاوتی را در خود جای دهند، قدرت رمزنگاری معادل است. تفاوت اصلی بین این دو الگوریتم به سرعت، عملکرد و پشتیبانی از پروتکل SSH محدود می شود.
- برخلاف DSA، RSA در رمزگشایی، تولید کلید و تأیید کند است اما در رمزگذاری و امضا سریع است. با این حال، احراز هویت به هر دو نیاز دارد، و اختلاف سرعت در برنامههای کاربردی واقعی ناچیز است.
- تفاوت دیگر در پشتیبانی از پروتکل شبکه Secure Shell نهفته است. RSA از SSH اصلی و نسخه دوم امن آن SSH2 پشتیبانی می کند، در حالی که DSA فقط با SSH2 کار می کند.
منبع داده را با DSA تأیید اعتبار کنید
امضای دیجیتال نیاز دنیای به هم پیوسته امروزی برای ایجاد یک محیط امن و مطمئن است. آنها یک راه عالی برای احراز هویت هر رکورد از طریق اینترنت هستند. این مقاله الگوریتمهای امضای دیجیتال را با مروری کوتاه بر روند کار، مزایا، معایب، محدودیتهای امنیتی و مقایسه با RSA معرفی میکند.