ECDSA، کوتاهشدۀ عبارت Elliptic Curve Digital Signature Algorithm به معنای (الگوریتم امضای دیجیتال منحنیهای بیضوی) است؛ نسخهای از الگوریتم DSA که بهطور گسترده استفاده میشود و با استفاده از اندازۀ کلید کوچکتر، به سطوح مشابهی از امنیت دست مییابد. این کار، با استفاده از رمزنگاری منحنی بیضوی انجام میشود. یک تکنیک رمزنگاری کلید عمومی که در اواسط دهه ۲۰۰۰ توسعه یافت.
در این تکنیک، به جای اینکه امنیت خود را بر روی یک عدد صحیح بزرگ که حاصل چندین فاکتور اول بزرگ است قرار دهید از یک ECDLP (مساله لگاریتم گسسته منحنی بیضوی) بهره میبرید.
ECDSA چگونه عمل میکند؟
الگوریتم امضای دیجیتال منحنیهای بیضوی (ECDSA) یک الگوریتم امضای دیجیتال (DSA)است که از کلیدهای مشتق شده از رمزنگاری منحنی بیضوی (ECC)استفاده میکند. یک معادله بسیار کارآمد براساس رمزنگاری کلید عمومی (PKC)
این نوع امضای دیجیتال در بسیاری از سیستمهای امنیتی استفاده میشود؛ برای استفاده در برنامههای پیامرسانی امن محبوب است و اساس امنیت بیتکوین است.
این نوع امضاء، همچنین برای امنیت لایه انتقال (TLS)، جانشین لایه سوکتهای امن (SSL)، با رمزنگاری ارتباطات بین مرورگرهای وب و یک برنامه کاربردی وب استفاده میشود. اتصال رمزگذاری شده یک وبسایت HTTPS که با تصویری از یک قفل فیزیکی در مرورگر نشان داده میشود- از طریق گواهیهای امضا شده با استفاده از الگوریتم منحنی بیضوی انجام شدنی است.
ویژگی اصلی الگوریتم امضای دیجیتال منحنیهای بیضوی در مقابل الگوریتم محبوب دیگر، RSA، این است که ECDSA درجه بالاتری از امنیت را با طول کلید کوتاهتر فراهم میکند. این امر ROI آن را بیشتر افزایش میدهد زیرا از قدرت کامپیوتر کمتری نسبت به RSAm استفاده مینماید.
از سویی دیگر، ECDSA رمزنگاری قوی و کارآمد را فراهم میکند. به همین دلیل بسیاری از اپلیکیشنهای پیامرسانی و سایر پلتفرمهایی که دادهها را از طریق سیم منتقل میکنند از آن استفاده مینمایند.
سازوکار کلید عمومی و خصوصی در الگوریتم ECDSA
سازوکار الگوریتم امضای دیجیتال منحنیهای بیضوی از نظر تئوری پیچیده است که بهطور خلاصه، این مراحل را پشت سر میگذارد:
- انتخاب منحنی بیضوی؛
- انتخاب نقطهای بهعنوان مبدا به نام G Point به کمک تابعی مولد به نام G Generator؛
- انتخاب نقطهای تصادفی شامل اعداد صحیح روی منحنی در جایگاه کلید خصوصی؛
- ضرب اسکالر مختصات نقطۀ کلید خصوصی در نقطۀ مبدا G؛ و ایجاد یک نقطۀ جدید که همان کلید عمومی است.