کلید عمومی و خصوصی چیست؟

بیشتر ارزهای دیجیتال و پروژههای کریپتویی بر بستر فناوری بلاک چین طراحی و ساخته شدهاند. یکی از بخشهای مهم در پیادهسازی این شبکهها استفاده از سیستمهای رمزنگاری است به طوری که تقریبا هیچ پروژهای در این حوزه وجود ندارد که از یکی از متدهای رمزنگاری اطلاعات استفاده نکرده باشد. در همین راستا، ممکن است اسامی کلید خصوصی و عمومی را به دفعات در مقالات این حوزه شنیده باشید که دو مفهوم کلیدی مربوط به بخش رمزنگاری اطلاعات در شبکههای بلاک چینی هستند.
در دنیای برنامههای کامپیوتری، از سیستمهای رمزنگاری مختلفی استفاده میشود. یکی از این سیستمها، رمزنگاری نامتقارن نام دارد که به رمزنگاری کلید عمومی نیز معروف است و دقیقا همان روشی است که در شبکه بیشتر ارزهای دیجیتال استفاده میشود و کاربرها، آن را با دو مفهوم کلید خصوصی و عمومی میشناسند. در این مطلب میخواهیم به طور مفصل در مورد این سیستم رمزنگاری صحبت کنیم. پس اگر به این نوع مباحث فنی علاقهمندید، در این مقاله اطلاعات خوبی برای شما گردآوری شده است.
رمزنگاری کلید عمومی
«رمزنگاری کلید عمومی» (Public Key Cryptography) یا PKC یکی از روشهای رمزنگاری به روش نامتقارن (Asymmetric) است که بر اساس یک منطق جالب مبتنی بر ریاضیات کار میکند. منظور از نامتقارن در این نامگذاری این است که برای رمزگذاری (Encryption) و رمزگشایی (Decryption) اطلاعات از دو پارامتر مختلف استفاده میشود که به آنها «کلید خصوصی و عمومی» (Private and Public Key) گفته میشود.
سیستم رمزنگاری کلید عمومی در حقیقت بر اساس یک مفهوم کلی در دنیای کامپیوتر به نام «Trapdoor Function» کار میکند. Trapdoor به معنی دریچه (یا یک حفره کوچک یا راه فرار) است و به عملیات ریاضی خاصی اشاره میکند که انجامِ آن در یک جهت بسیار ساده، ولی انجام آن در جهت مخالف بسیار سخت و زمانبر است، مگر اینکه کلید یا پارامتر رمزگشایی در جهت مخالف، در دسترس باشد.
در این سیستم، اطلاعات اولیه که به آنها «Plaintext» (یا متن ساده) گفته میشود، به روشی یک طرفه، به «Ciphertext» (یا متن رمزشده) طوری تغییر شکل داده میشود که امکان معکوس کردن آن وجود نداشته باشد. منظور از روش یکطرفه، استفاده از توابع ریاضی مثل «تابع هش» (Hash Function) است که میتواند Plaintextها را به عنوان ورودی گرفته و در خروجی Ciphertext تولید کند.
این تابع، خروجی را با استفاده از چندین هزار عملیات ریاضی تصادفی، طوری تولید میکند که اگر بخواهیم از خروجی به ورودی اولیه برسیم، شاید به چندهزار سال زمان نیاز باشد. به همین خاطر آنها را برگشت ناپذیر مینامند.