امضای ECDSA امضای دیجیتالی است که این روزها مورداستفاده قرار میگیرد. این امضا بسیار کارآمدتر است؛ زیرا از کلیدهای کوچکتر برای ایجاد همان سطح امنیتی مانند سایر الگوریتمهای امضای دیجیتال استفاده میکند. ECDSA برای ایجاد گواهینامههای ECDSA استفاده میشود که نوعی سند الکترونیکی است که برای احراز هویت صاحب گواهی استفاده میشود.
گواهینامهها حاوی اطلاعاتی دربارهی کلید مورداستفاده برای ایجاد گواهی، اطلاعاتی دربارهی مالک گواهی و امضای صادرکننده گواهی است که یک نهاد مورداعتماد تأیید شده است. این صادرکننده مورداعتماد معمولاً یک مرجع گواهی است که دارای گواهی امضا شده نیز هست که میتوان آن را از طریق زنجیرهی اعتماد به مرجع صادرکنندهی گواهی اصلی ردیابی کرد.
آنچه قرار است بخوانید
امضای ECDSA چیست؟
ECDSA یا همان الگوریتم امضای دیجیتال منحنی بیضوی، یک طرح امضای دیجیتال امن رمزنگاری است که بر اساس رمزنگاری منحنی بیضوی (ECC) شکلگرفته است. ECDSA بر ریاضیات گروههای چرخهای منحنیهای بیضوی، بر روی میدانهای محدود و بر دشواری مسئلهی ECDLP که همان مسئلهی لگاریتم گسستهی منحنی بیضوی است متکی است. الگوریتم امضا و تأیید امضای ECDSA بر ضرب نقطهای EC متکی است و کلیدها و امضاهای قدرتمندی دارد.
ECDSA از منحنیهای بیضوی رمزنگاری (EC) روی میدانهای محدود به شکل کلاسیک ویراشتراس استفاده میکند. این منحنیها با پارامترهای دامنهی EC آنها که توسط استانداردهای رمزنگاری مختلف SECG:SEC2 و Brainpool(RFC 5639) مشخص شدهاند توصیف میشوند. منجیهای بیضوی که در رمزنگاری استفاده میشوند به شکل زیر تعریف میشوند:
- نقطه ژنراتور G، برای ضرب اسکالر روی منحنی (ضرب صحیح در نقطه EC) استفاده میشوند.
- ترتیب N از زیر نقاط گروه EC، تولید شده توسط G که طول کلیدهای خصوصی را تعیین میکند (مثلاً ۲۵۶ بیت)
ساخت کلید عمومی و خصوصی در سازوکار الگوریتم امضای ECDSA
جفت کلید ECDSA شامل موارد زیر است:
کلید خصوصی (عدد صحیح): privKey
کلید عمومی (نقطه EC): pubKey = privKey *G
کلید خصوصی بهعنوان یک عدد صحیح تصادفی در محدودهی [n-1…0]تولید میشود. کلید عمومی یا همان pubKey یک نقطه روی منحنی بیضی است که با ضرب نقطهی EC محاسبه میشود:
pubKey = privKey *G (کلید خصوصی، ضرب در نقطه متولد G)
نقطه EC کلید عمومی {x,y} را میتوان فقط به یکی از مختصات +۱ بیت فشرده کرد. برای منحنی secp256k1، کلید خصوصی ۲۵۶ بیتی عدد صحیح (۳۲ بیت) و کلید عمومی فشرده ۲۵۷ بیتی عدد صحیح (~۳۳ بایت) است.
مزایای امضای دیجیتال ECDSA
مزیت استفاده از ECDSA نسبت به دیگر رمزنگاریها، کلید عمومی جدید ECDSA است. این امضای دیجیتال در سال ۲۰۰۵ استاندارد شد. این موضوع همراه با پیچیدگی ECDSA این گزینه را هر سال به گزینهی مطلوبتری تبدیل میکند. این مزیت به این دلیل است که پروتکلهای جدیدتر استفاده از ECDSA را بهجای RSA برای توابع رمزنگاری کلید عمومی انتخاب میکنند. همچنین امکان تولید بینهایت کلیدهای عمومی کار با این الگوریتم را راحت کرده است.
دلیل دیگری که این امضا بر سایر امضاها مزیت دارد این است پیچیدگی این امضا باعث میشود در برابر روشهای کرک کنندهی رمزنگاری ایمنتر است. از سوی دیگر تأیید تراکنشها را ساده و سریع میکند و حتی میتوانید امضای دیجیتال را بدون مشکل امنیتی از سوی شخص ثالث تأیید کنید.
معایب الگوریتم امضای دیجیتال ECDSA
اگر بخواهیم دربارهی معایب این الگوریتم صحبت کنیم این است که ECDSA پیادهسازی پیچیدهای دارد و راحت تنظیم نمیشود. بسیاری از سازمانهای مختلفی که با این الگوریتم کار کردهاند دچار هک شدهاند؛ زیرا اجرای نادرست و پیچیدهی اولیهی آن کار با آن را دشوار کرده است.
علاوه براین، این روش رمزگذاری سرعت کم و مقیاسپذیری پایینی در برابر روشهای کوانتومی برای محاسبه دارد که میتواند در آینده مشکلساز باشد.
کاربردهای امضای ECDSA
ECDSA در بسیاری از سیستمهای امنیتی استفاده میشود و برای استفاده در برنامههای پیامرسانی امن محبوب است. این امضا را میتوان بهنوعی اساس امنیت بیت کوین دانست؛ زیرا آدرسهای بیتکوین بهعنوان کلیدهای عمومی عمل میکنند.
ECDSA همچنین برای امنیت لایهی حملونقل یعنی (TSL)، جانشین لایه سوکتهای امن (SSL) با رمزگذاری اتصالات بین مرورگرهای وب و یک برنامه وب استفاده میشود. اتصال رمزگذاری شده یک وبسایت HTTPS که با تصویری از قفل فیزیکی نشاندادهشده در مرورگر نشان داده است، از طریق گواهیهای امضا شده با استفاده از ECDSA ایجاد میشود.
این امضا همچنین به تأیید واریز و دریافت پول در کیف پولهای ارز دیجیتال کمک میکند و به حفظ حریم خصوصی کاربران در برنامههایی مانند TOR که برای ارتباط ناشناس طراحی شدهاند هم کاربرد دارد.
تفاوت امضای ECDSA و امضای اشنور
امضای اشنور و ECDSA هر دو طرحهای امضای رمزنگاری هستند که برای اطمینان از صحت و یکپارچگی پبامهای دیجیتال استفاده میشوند. این دو علاوه بر شباهتهای مهمی که دارند تفاوتهای کلیدی هم دارند که در ادامه به آنها اشاره میکنیم:
• مبانی ریاضی: ECDSA برای امنیت بیشتر روی دشواری حل مسئلهی لگاریتم گسسته منحنی بیضوی تکیه دارد درحالیکه اشنور با اینکه روی منحنیهای بیضوی عمل میکند؛ اما امنیت آن بر اساس سختی مسئله لگاریتم گسسته در گروه اعداد صحیح مدول یک عدد اول است.
• اندازهی امضا: امضاهای ECDSA معمولاً اندازهی بزرگتری نسبت به امضای اشنور دارند که باعث میشود فضای ذخیرهسازی و پهنای باند بیشتری مصرف کنند. بهطورکلی اشنور از نظر منابع بهصرفهتر است.
• خطیبودن: امضای EDCSA خطی نیست به این معنی که مجموع دو امضای تولید شده توسط کلید خصوصی با امضای مجموع دو کلید خصوصی یکسان نیست. اما اشنور خطی است و اجازهی استفاده از طرحهای چند امضایی کارآمد و تجمیع امضاهای متعدد در یک امضا را میدهد.
• فرایند تجمیع: امضاهای سنتی مانند ECDSA را نمیتوان بهراحتی جمع کرد؛ اما امضاهای اشنور ذاتاً چکشخوار هستند و میتوان آن را برای پروتکلهایی که نیاز به تجمیع چند امضا دارند مناسب است.
• تعاملی و غیرتعاملی بودن: ECDSA شامل یک فرایند تولید کلید تعاملی است؛ اما اشنور از تولید کلیدهای غیرتعاملی پشتیبانی میکند.
جمعبندی
در این مقاله تلاش کردیم دربارهی امضای ECDCSA و الگوریتم آن صحبت کنیم. البته الگوریتم این امضا بسیار پیچیده و درک آن سخت است؛ اما اگر یک ریاضیدان یا یک توسعهدهنده هستید که میخواهید دانش کسب کنید این اطلاعات برای شروع این موضوع مناسب است. آنچه مهم است این است که دنیای امضاها هر روز در حال تکامل است و هر روز گزینههای بهتر و امنتری به وجود میآیند.