الگوریتم رمزنگاری کلید عمومی (PKC) با نام رمزنگاری نامتقارن هم شناخته میشه. فرقش با رمزنگاری متقارن هم اینه که رمزنگاری متقارن، از یک کلید استفاده میکنه، ولی رمزنگاری نامتقارن از دو کلید عمومی و خصوصی استفاده میکنه.
رمزنگاری کلید عمومی یک سری ویژگیهایی داره که به عنوان راه حلی برای چالشهای سایر روشهای رمزنگاری از اون استفاده میشه. از این نوع رمزنگاری در امنیت کامپیوترها و همینطور ارزهای دیجیتال استفاده گستردهای میشه.
کلید عمومی توسط ارسال کننده تراکنش و برای رمزنگاری اون استفاده میشه؛ در حالی که کلید خصوصی توسط دریافت کننده تراکنش و برای رمزگشایی اون مورد استفاده قرار میگیره. از اونجایی که این دو تا کلید با همدیگه متفاوتن، میشه بدون به خطر افتادن امنیت کلید خصوصی، کلید عمومی رو در اختیار دیگران قرار داد.
از اونجایی که الگوریتمهای رمزنگاری نامتقارن، جفت کلیدهایی تولید میکنن که از نظر ریاضیاتی به هم متصل هستن، طول کلیدشون خیلی بلندتر از کلیدهای رمزنگاری متقارن میشه. این طول بلندتر، که معمولا بین ۱۰۲۴ تا ۲۰۴۸ بیته، محاسبه کلید خصوصی از کلید عمومی رو به شدت دشوار میکنه. یکی از رایجترین الگوریتمها برای رمزنگاری نامتقارن، RSA هست.
در طرح RSA، کلیدها با استفاده از ضریبی تولید میشن که با ضرب دو عدد به دست میاد. به عبارت سادهتر، این ضریب دو کلید تولید میکنه: یک کلید عمومی که میشه به اشتراک گذاشت و یک کلید خصوصی که باید پنهان حفظ بشه.
یکی دیگه از کاربردهای الگوریتمهای رمزنگاری نامتقارن، تایید اطلاعات از طریق استفاده از امضاهای دیجیتالی هست. اساسا امضای دیجیتالی، هشیه که با استفاده از اطلاعات موجود در پیام ایجاد شده.
هنگامی که این پیام ارسال میشه، امضا توسط دریافت کننده و با استفاده از کلید عمومی ارسال کننده، قابل بررسیه. بنابراین، میتونن مبدا پیام رو تایید کنن و تضمین کنن که دستکاری صورت نگرفته.
این نوع رمزنگاری توسط بسیاری از سیستمهای کامپیوتری مدرن، به منظور ارائه امنیت برای اطلاعات مهم استفاده میشه. مثلا میشه به رمزنگاری ایمیلها با روشهای رمزنگاری کلید عمومی پرداخت، تا محتویات داخلش محرمانه باقی بمونه. همینطور پروتکل لایه سوکتهای ایمن (SSL) که ارتباطات ایمن با وبسایتها رو امکان پذیر میکنه هم از رمزنگاری نامتقارن استفاده میکنه.
الگوریتم رمزنگاری نامتقارن، همچنین در فناوری بلاک چین و ارزهای دیجیتال وجود داره؛ موقعی که کیف پول جدیدی ایجاد میشه، یک کلید عمومی و یک کلید خصوصی تولید میشه. آدرس کیف پول با استفاده از کلید عمومی تولید میشه و میشه اون رو به طور ایمن با دیگران به اشتراک گذاشت.
البته رمزنگاری نامتقارن مورد استفاده در ارزهای دیجیتال، با رمزنگاری استفاده شده در امنیت کامپیوترها متفاوته. برای مثال، بیت کوین و اتریوم از رمزنگاری مخصوصی به اسم الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) برای تایید تراکنشها استفاده میکنن.
کلید خصوصی برای ایجاد امضاهای دیجیتال و تایید تراکنشها مورد استفاده قرار میگیره؛ بنابراین باید به طور مخفی و پنهان حفظ بشه.
پس از اون که با تایید هش موجود در امضای دیجیتال، تراکنش تایید میشه، تراکنش مورد نظر میتونه به دفتر کل بلاک چین اضافه بشه. این سیستم تایید امضاهای دیجیتالی تضمین میکنه که فقط فردی که کلید خصوصی کیف پول رو داره، میتونه به سرمایه موجود دسترسی داشته باشه.
رمزنگاری نامتقارن یا کلید عمومی از یک اصل به نام "مشکل آسان و سخت" استفاده میکنه. به این معنی که در یک مسیر دوطرفه، مسیر رفت سادهس، ولی مسیر برگشت خیلی سخت و دشواره. یک مثال براتون میزنم:
اگر من به شما یک خودکار و کاغذ بدم و از شما بخوام که دو عددی که میخواید (هر عددی) رو در هم ضرب کنید؛ شما به راحتی پاسخ رو پیدا میکنید.
اما اگر همون پاسخ ضرب دو عدد رو به شما بدم و از شما بخوام که تمام اعدادی رو که در هم ضرب میشن تا این پاسخ به دست بیاد رو برام پیدا کنید، برای شما بسیار سخت خواهد بود.
در رمزنگاری کلید عمومی، از یک مشکل ساده ریاضیاتی برای ایجاد یک پیام استفاده میشه؛ اما برای کسی که نباید این پیام رو مشاهده کنه، رمزگشایی اون خیلی دشوار خواهد بود.
در بلاک چین و رمز ارزها، کلیدهای عمومی و خصوصی با همدیگه کار میکنن، تا من بتونم از کلید خصوصی برای انجام امضای دیجیتال پیامها یا تراکنشها استفاده کنم.
من از کلید عمومی (که همه میتونن ببینن) برای تایید کلید خصوصیای استفاده میکنم که امضای دیجیتال رو انجام داده؛ بنابراین همه مطمئن میشن که مالک این کلید خصوصی من هستم.
در بلاک چین و رمز ارزها، کلید عمومی و کلید خصوصی به این شکل کار میکنن. به این ترتیب، دیگه کسی نمیتونه داراییهای من رو امضا و خرج کنه.
منبع: میهن بلاکچین