در مقالات قبلی در مورد رمزنگاری متقارن به تفصیل صحبت کردیم. در این مقاله از فکت کوینز به بررسی رمزنگاری نامتقارن یا Asymmetric cryptography میپردازیم.
مقدمهای بر رمزنگاری نامتقارن
رمزنگاری نامتقارن که به رمزنگاری کلید عمومی نیز معروف است، یکی از مؤلفههای اصلی فناوری بلاکچین است. این شکل رمزنگاری امکان تایید صحت معاملات را فراهم میکند وهمچنین از داراییها در برابر حمله هکرها و خطرات دیگر محافظت میکند. رمزنگاری نامتقارن، نسخه پیشرفتهتری از رمزنگاری متقارن است.
بررسی مفاهیم در رمزنگاری نامتقارن
قبل از اینکه به بررسی رمزنگاری نامتقارن بپردازیم، برخی از اصطلاحات و مفاهیم استفادهشده در این مبحث را شرح میدهیم:
کلید خصوصی (Private Key)
کلید خصوصی یک کلید مخفی است که برای رمزگذاری و رمزگشایی پیامها استفاده میشود. کلید خصوصی همراه با کلید عمومی استفاده میشود. باید در همه زمانها خصوصی نگه داشته شود و هرگز نباید با کسی در میان گذاشته شود.
در ارزهای رمزنگاریشده، کلیدهای خصوصی توسط کیف پول برای محافظت از داراییها استفاده میشود. بهعنوان مثال، کیف پول بیت کوین دارای یک کلید خصوصی است که با آن در ارتباط است. هنگام ایجاد کیف پول جدید، کلید خصوصی و کلید عمومی همراه آن تولید میشوند. پس از دریافت آن، باید از کلید خصوصی خود پشتیبان تهیه کنید.
توجه: اگر کلید خصوصی خود را گم کنید، دیگر نمیتوانید به کیف پول یا موجودی آن دسترسی پیدا کنید. تهیه یک نسخه پشتیبان از آن یا نوشتن در دفتر خاطرات خصوصی یا چاپ آن، ایده خوبی است.
کلید عمومی (Public Key)
از کلید عمومی فقط برای رمزگذاری پیام استفاده میشود. این کلید میتواند برای افراد دیگر ارسال شود و هنگامی که فرستنده پیامی را با استفاده از کلید عمومی شما رمزگذاری کرد، میتوانید قفل آن را فقط با استفاده از کلید خصوصی خود باز کنید.
رمزنگاری نامتقارن چیست؟
رمزنگاری نامتقارن مشابه رمزنگاری متقارن، اما کمی پیچیدهتر است. تفاوت اصلی آن با رمزنگاری متقارن استفاده از جفت کلید است. رمزنگاری نامتقارن به منظور رمزگذاری و رمزگشایی دادهها، به جای یک کلید مشترک، از یک جفت کلید استفاده میکند. جفت کلید از 2 قسمت، یک کلید عمومی و یک کلید خصوصی تشکیل شده است.
یک کلید عمومی میتواند بهعنوان یک نام کاربری دیده شود، برای همه در دسترس است، قابل اشتراکگذاری است و همه میتوانند با آن نام کاربری تاریخچه حساب را مشاهده کنند. نام کاربری به یک رمز عبور (کلید خصوصی) گرهخورده است . اما هیچ راهی برای استخراج رمز ورود (کلید خصوصی) از روی نام کاربری وجود ندارد. یک کلید خصوصی میتواند بهعنوان رمز ورود حساب با نام کاربری خاص دیده شود. در دسترس عموم نیست و نباید با کسی به اشتراک گذاشته شود. کلید خصوصی برای تأیید اقدامات در حسابها استفاده میشود. برای دسترسی به حساب یا اجازه دادن به هر اقدامی در حساب، فقط کلید خصوصی مورد نیاز است.
رمزگذاری نامتقارن چگونه کار میکند؟
در شکل زیر میتوانید نحوه کارکرد این کلیدها را هنگام ارسال پیام به صورت ایمن برای کسی مشاهده کنید.
ابتدا فرستنده، پیام را با کلید عمومی گیرنده رمزگذاری میکند. فرستنده میتواند پیام (رمزگذاری شده) را با خیال راحت ارسال کند، زیرا تنها راه مشاهده پیام رمزگشایی آن با کلید خصوصی مربوطه است که فقط گیرنده دارد. سپس گیرنده پیام را دریافت میکند و میتواند با استفاده از کلید خصوصی رمزگشایی کند.
به دلیل استفاده از جفت کلید در رمزنگاری نامتقارن، این روش ایمنتری برای رمزگذاری دادهها است. میتوان اطمینان حاصل کرد فقط کسانی که قرار است آن را دریافت کنند قادر به رمزگشایی آن هستند. این جفت کلید همچنین اجازه میدهد تا از آنها برای اهداف احراز هویت استفاده شود.
کاربرد در بلاکچین ها
اکثر ارزهای دیجیتال از جفت کلید (و در نتیجه رمزنگاری نامتقارن) برای مدیریت «آدرس» در بلاکچین استفاده میکنند. کلید عمومی آدرسی است که «نگهدارنده» توکن هاست و هر کسی میتواند آن را مشاهده کند. کلید خصوصی برای دسترسی به آدرس و تأیید اقدامات برای «آدرس» استفاده میشود.
رمزنگاری نامتقارن کاربردهای زیادی در بلاک چینها دارد ، از اجرای در قراردادهای هوشمند ساده گرفته تا ساختارهای پیشرفته نیازمند مجوز.
انواع رمزگذاری نامتقارن
دو نوع اصلی الگوریتمهای رمزگذاری نامتقارن عبارتاند از:
الگوریتم رمزگذاری نامتقارن RSA
RSA مخفف نام سازندگان این الگوریتم است. در سال 1977 توسط رون ریوست (Ron Rivest)، آدی شامیر (Adi Shamir) و لئونارد آدلمان (Leonard Adleman) اختراع شد. RSA تاکنون پرکاربردترین الگوریتم رمزگذاری نامتقارن است. اساساً، این روش شامل دو عدد اول تصادفی بزرگ است. این اعداد برای ایجاد عدد بسیار بزرگ دیگری ضرب میشوند. معما در اینجا تعیین اعداد اصلی از حاصلضرب است.
یک مزیت بزرگی که RSA ارائه میدهد مقیاسپذیری آن است. RSA مبتنی بر یک رویکرد ساده ریاضی است و به همین دلیل اجرای آن در زیرساختهای کلید عمومی (PKI) ساده میشود. این سازگاری با PKI و امنیت آن ، RSA را به پرکاربردترین الگوریتم رمزگذاری نامتقارن که امروزه مورد استفاده قرار میگیرد، تبدیل کرده است. RSA در بسیاری از برنامهها از جمله گواهینامههای SSL/TLS، ارزهای دیجیتال و رمزگذاری ایمیل به طور گسترده مورد استفاده قرار میگیرد.
الگوریتم رمزگذاری نامتقارن ECC
در سال 1985، دو ریاضیدان به نامهای نیل کوبلیتز و ویکتور میلر استفاده از منحنیهای بیضوی در رمزنگاری را پیشنهاد دادند. پس از تقریباً دو دهه، الگوریتم ECC (Elliptic Curve Cryptography) درسال 2004 مورد استفاده قرار گرفت و ایده آنها به واقعیت تبدیل شد.
در مقایسه با RSA ، ECC از امنیت بیشتری برخوردار است. این الگوریتم سطح حفاظتی مشابه رمزنگاری نامتقارن RSA را فراهم میکند، اما از طول کلیدهای بسیار کوتاهتری استفاده میکند. مزیت دیگر کلیدهای کوتاهتر در ECC عملکرد سریعتر آن است. کلیدهای کوتاهتر به بار شبکه و توان محاسباتی کمتری نیاز دارند و این برای دستگاههایی با قابلیت ذخیرهسازی و پردازش محدود بسیار عالی است.
وقتی از ECC در گواهینامههای SSL/ TLS استفاده میشود، مدتزمان قابل توجهی برای انجام دست دادن SSL/ TLS کاهش مییابد و به شما در دانلود سریعتر وبسایت کمک میکند. الگوریتم رمزگذاری ECC برای کاربردهای رمزگذاری، اعمال امضاهای دیجیتال، تولید اعداد شبه تصادفی و غیره استفاده میشود.
نتیجه گیری؛ رمزنگاری نامتقارن
رمزنگاری نامتقارن به نوعی رمزنگاری اشاره دارد که در آن کلیدی که برای رمزگذاری دادهها استفاده میشود با کلیدی که برای رمزگشایی دادهها استفاده میشود متفاوت است. این روش به رمزنگاری کلید عمومی نیز معروف است. به ترتیب از هر دو کلید عمومی و خصوصی برای رمزگذاری و رمزگشایی دادهها استفاده میکند.
در رمزنگاری متقارن فقط یک کلید وجود دارد که برای رمزگشایی اطلاعات شما فقط با داشتن آن کلید میتوانید اطلاعات رمزگذاری شده را رمزگشایی کنید.
رمزنگاری نامتقارن مشابه رمزنگاری متقارن، اما کمی پیچیدهتر است. تفاوت اصلی آن با رمزنگاری متقارن استفاده از دو کلید است. رمزنگاری نامتقارن به منظور رمزگذاری و رمزگشایی دادهها، به جای یک کلید مشترک، از یک جفت کلید استفاده میکند که از یک کلید عمومی و یک کلید خصوصی تشکیل شده است.