کلید عمومی و خصوصی چیست؟ نحوه عملکرد و تفاوت آنها
اگر با دنیای بلاکچین و ارزهای دیجیتال آشنایی داشته باشید، حتماً نام کلید عمومی و خصوصی را نیز شنیدهاید. در واقع کلید عمومی و خصوصی، جزئی جداییناپذیر از بلاکچین هستند.
چراکه وقتی یک کاربر ارز دیجیتال خریداری میکند، بدون استثنا یک کلید خصوصی در اختیار وی قرار میگیرد که میتواند چندین کلید عمومی داشته باشد.
به همین خاطر در ادامه قصد داریم تا با بررسی کلید عمومی و خصوصی در بلاکچین، به ماهیت انتقال داده در این شبکه و چگونگی رمزگذاری اطلاعات در حوزه رمزارزی پی ببریم. اگر این موضوع به هر دلیلی برای شما نیز جای سؤال و کنجکاوی دارد، با این مطلب از سیگما همراه شوید.
کلید عمومی (Public Keys) چیست؟
کلید عمومی یا پابلیک کی «Public Key» همانطور که از نام آن هم پیداست، خاصیت همگانی دارد، یعنی میتواند بهصورت عمومی در اختیار همه قرار بگیرد. درواقع کلید عمومی یک رشته کد است که در دنیای ارزهای دیجیتال بهعنوان آدرس کیفپول آن را میشناسیم. در وصف بیشتر کلید عمومی میتوان گفت:
- کلید عمومی فقط جهت رمزنگاری ایجاد شده است؛ بنابراین با استفاده از آن نمیتوان چیزی را از رمز خارج کرد (فقط میتوان آن را رمز کرد)!
- کلید عمومی به مثابه شماره کارت بانکی است. تمام افراد میتوانند شماره کارت یک شخص را در اختیار داشته باشند، اما نمیتوانند بهوسیله آن به اطلاعات حساب آن شخص دست پیدا کنند؛ بلکه فقط میتوانند از آن شماره برای واریز وجه استفاده کنند. کلید عمومی نیز فقط برای واریز ارز دیجیتال است و میتواند در اختیار هرکسی قرار بگیرد.
- کلید عمومی یک عدد بزرگ است که جهت رمز کردن دادهها استفاده میشود. کلید عمومی را میتوان در یک برنامه نرمافزاری تولید کرد؛ اما در اکثر مواقع این کلید توسط یک مرجع معتمد ارائه میشود. آنگاه از طریق یک مخزن (دایرکتوری) در دسترس عموم قرار میگیرد.
- تمامی کلیدهای عمومی در فضای مبادله ارزهای دیجیتال ۲۵۶ بایت طول دارند!
با توجه به آنچه گفته شد، میتوان فهمید که منظور از کلید عمومی چیست. اما هر کلید عمومی دارای یک کلید خصوصی است که در ادامه به تعریف آن نیز خواهیم پرداخت.
کلید خصوصی (Private Keys) چیست؟
کلید خصوصی یا پرایویت کی «Private Key» همانطور که از نام آن مشخص است، به کلیدی گفته میشود که خاصیت محرمانگی دارد و نمیتواند در اختیار عموم قرار بگیرد.
میتوان گفت که کلید خصوصی کلیدی است که کاربر به واسطهی آن میتوان اطلاعات رمزنگاری شده توسط کلید عمومی را بازگشایی نماید. در وصف بیشتر کلید خصوصی نیز میتوان گفت:
- کلید خصوصی جهت رمزگشایی و همچنین امضای دیجیتال دادهها به کار میرود.
- کلید خصوصی فقط میتواند در اختیار شخص صاحب کیفپول ارز دیجیتال قرار بگیرد و بهعنوان شناسه دیجیتال فرد شناخته میشود.
- اگر شخص دیگری بتواند کلید خصوصی شخص دیگر را بهدست آورد، میتواند به داراییهای دیجیتالی وی دسترسی پیدا کند!
- کلیدهای خصوصی را میتوان مانند رمز دوم کارتهای بانکی در نظر گرفت که فقط شخص دارنده کارت مجاز به داشتن آن است. اگر شخص دیگری رمز دوم کارت بانکی شخص دیگر را بهدست آورد، میتواند از محتوای کارت بانکی وی استفاده کند!
- کلیدهای خصوصی حدود 64 بیت طول دارند.
با توجه به آنچه در مورد کلید خصوصی هم گفته شد، حالا میدانیم این نوع کلید نیز به چه صورت عمل میکند. اما کلیدهای خصوصی و عمومی خود تحت یک شیوه رمزنگاری خاص قرار میگیرند که در ادامه ضمن بررسی روش تولید کلید عمومی و خصوصی در بلاکچین، به بررسی روشهای رمزنگاری آنها نیز خواهیم پرداخت.
مثالی برای درک علمکرد کلید عمومی و خصوصی
مهرداد میخواهد برای سارا یک ایمیل رمزگذاری شده بفرستد. برای این کار، مهرداد کلید عمومی سارا را میگیرد و پیام خود را برای او رمزگذاری میکند. سپس، وقتی که سارا پیام را دریافت میکند، کلید خصوصی را که فقط او میشناسد، میگیرد تا پیام را از مهرداد رمزگشایی کند.
اگرچه مهاجمان ممکن است سعی کنند سرور را به خطر بیاندازند و پیام را بخوانند، اما نمیتوانند این کار را انجام دهند، چراکه فاقد کلید خصوصی برای رمزگشایی پیام هستند.
فقط سارا میتواند پیام را رمزگشایی کند؛ چون او تنها کسی است که کلید خصوصی را دارد. وقتی سارا میخواهد پاسخ دهد، به سادگی این فرآیند را تکرار کرده و پیام خود را برای مهرداد با استفاده از کلید عمومی مهرداد رمزگذاری میکند!
تفاوت بین کلید عمومی و کلید خصوصی
اولین تفاوت کلید عمومی و خصوصی در این است که کلید عمومی را میتوان به اشتراک گذاشت، اما کلید خصوصی باید محرمانه باقی بماند.
تفاوت دیگر این است که کلید عمومی از روی کلید خصوصی ساخته میشود؛ بنابراین درصورت گم شدن، قابلیت بازیابی آن وجود دارد، اما برعکس آن ممکن نیست؛ یعنی اگر کلید خصوصی گم شود، از روی کلید عمومی نمیتوان آن را بازیابی کرد!
روش تولید کلید عمومی و کلید خصوصی
گفتیم که کلیدهای عمومی برای رمز کردن دادهها در شبکه بلاکچین مورد استفاده قرار میگیرند. اما وقتی یک داده رمزنگاری میشود، باید راهی برای رمزگشایی آن نیز وجود داشته باشد.
بنابراین کلیدهای عمومی همیشه با یک کلید خصوصی همراه هستند که بتواند دادهها را از رمز خارج کند. وقتی شما رمز کارت بانکی خود را در اختیار نداشته باشید، نمیتوانید از آن مبلغی را برداشت کنید.
بنابراین شخص نیز بدون داشتن کلید خصوصی نمیتواند از دارایی دیجیتالی خود که در توسط کلید خصوصی رمزنگاری شده، استفاده کند. بنابراین کلید عمومی و خصوصی در بلاک چین رابطه مستقیم با هم دارند و یکی بدون دیگری بیاثر خواهد بود. همانطور که قبلاً هم اشاره شد، این کلیدها میتوانند توسط نرمافزار یا یک سیستم معتمد تولید شوند و در مورد تولید آنها میتوان گفت:
- کلید عمومی و خصوصی واقعاً کلید نیستند، بلکه اعداد اول واقعاً بزرگی هستند که از نظر ریاضی با یکدیگر مرتبط هستند. مرتبط بودن در این مورد به این معنی است که هر چیزی که توسط کلید عمومی رمزگذاری شده است فقط توسط کلید خصوصی مربوطه قابل رمزگشایی است.
- شخص نمیتواند کلید خصوصی را بر اساس دانستن کلید عمومی حدس بزند. به همین دلیل، یک کلید عمومی را میتوان آزادانه به اشتراک گذاشت. اما کلید خصوصی فقط متعلق به یک نفر است.
- چندین الگوریتم ریاضی معروف وجود دارد که برای تولید کلید عمومی و خصوصی استفاده میشود که از جمله آنها میتوان «RSA» و «ECC» را نام برد.
کلیدهای عمومی و خصوصی که خود به روشهای مختلفی تولید میشوند، حاصل یک روش رمزنگاری بهنام رمزنگاری نامتقارن هستند که در برابر رمزنگاری متقارن قرار میگیرد و در ادامه به بررسی آنها خواهیم پرداخت.
منظور از رمزنگاری متقارن و نامتقارن چیست؟
هر روز که شما وارد اینترنت میشوید و در شبکههای اجتماعی گشت میزنید یا چیزی را در گوگل جستوجو میکنید، در حال استفاده از تکنولوژی رمزنگاری متقارن یا نامتقارن هستید.
هدف از رمزنگاری دادهها، انتقال امن آنها در بستر اینترنت است. به طوریکه فقط افراد موردنظر بتوانند محتوای ارائه شده را دریافت نمایند. به همین خاطر از روشهای خاصی برای رمزنگاری و رمزگشایی دادهها در بستر اینترنت استفاده میشود. الگوریتمهای رمزنگاری به دو گروه متقارن و نامتقارن تقسیم میشوند:
-
رمزنگاری متقارن «Symmetric Encryption»
تا قبل از دهه 70 میلادی، تنها روش رمزنگاری اطلاعات به روش متقارن بود. بنابراین میتوان گفت که استفاده از این نوع رمزنگاری سابقه طولانی دارد و تمام رمزنگاریهای کلاسیک در گروه رمزنگاری متقارن قرار میگیرند.در این روش، هر دو طرف فرستنده و گیرنده از یک کلید مشترک برای رمزنگاری و رمزگشایی دادهها استفاده میکنند.
از جمله روشهای رمزگذاری متقارن میتوان
«Data Encryption Standard (DES)» ،«Advanced Encryption Standard (AES)» و… را نام برد.
-
رمزنگاری نامتقارن «Asymmetric Encryption»
رمزنگاری نامتقارن جدیدتر از رمزنگاری متقارن است که در آن برعکس حالت قبل که تنها از یک کلید برای رمزنگاری و رمزگشایی اطلاعات استفاده میشد، در این روش از دو کلید برای منظور استفاده میشود که همانا کلیدهای عمومی و خصوصی هستند که آنها را تعریف کردیم.
از جمله انواع روشهای رمزنگاری نامتقارن میتوان
«Rivest Shamir Adleman (RSA)» ،«Elliptical Curve Cryptography (ECC)» و… را نام برد.
این دو نوع رمزنگاری جزو روشهای اصلی و رایج رمزنگاری در دنیای اینترنت هستند. با توجه به اینکه از شبکه بلاکچین نیز نوعی شبکه اینترنتی است، در رمزگذاری دادههای این شبکه نیز از همین روشها برای رمز کردن دادهها استفاده میشود. در ادامه به شما خواهیم گفت که کدامیک امنتر و کدام سریعتر هستند.
کدام نوع رمزنگاری امنتر است؟ متقارن یا نامتقارن؟
با توجه به آنچه تا به اینجا در مورد روشهای رمزنگاری متقارن و نامتقارن گفته شد، مشخص است که تفاوت آنها به نوع کلیدها خلاصه میشود؛ اما این تفاوت سبب شده است تا امنیت یکی بیشتر از دیگری شود و به این ترتیب سرعت آنها نیز با هم متفاوت باشد.
بنابراین در وصف امنیت این روشها میتوان گفت که رمزنگاری نامتقارن به واسطهی استفاده از دو کلید در ساختار خود، امنیت بالاتری به نسبت رمزنگاری متقارن دارد.
اما سرعت آن به نسبت متقارن کندتر است. چراکه رمزنگاری نامتقارن سرعت را فدای امنیت میکند و رمزنگاری متقارن نیز امنیت را فدای سرعت میکند.
اگرچه در تئوری کلیدهای عمومی میتوانند برای شکستن کلیدهای خصوصی استفاده شوند، اما در روش رمزنگاری نامتقارن، طول کلیدها فوقالعاده طولانی است تا شکستن توسط کلیدهای عمومی را غیرممکن سازد و امنیت را در بالاترین حد خود برقرار سازد!
کاربرد رمزنگاری نامتقارن در شبکه بلاکچین
تکنولوژی نوین بلاکچین بر پایه روش رمزنگاری نامتقارن شکل گرفته است. وقتی که شما یک کیفپول دیجیتالی ایجاد میکنید، معمولاً به شما یک سری کلمات ۱۲ تا ۲۴ کلمهای (بازیابی کلید خصوصی) به شما داده میشود.
این کلمات نمایشی از کلیدهای عمومی و خصوصی شما هستند. به همین خاطر وقتی شما در حال دریافت یا ارسال ارز دیجیتال به کیفپول دیگری هستید، تا ارز دیجیتال به مقصد موردنظر برسد، روش رمزنگاری نامتقارن استفاده میشود.
مزایا و معایب رمزنگاری نامتقارن
طبیعتاً هر روش رمزنگاری دارای مزایا و معایب خاص خود است. در وصف مزایا و معایب روش رمزگذاری نامتقارن که بدر شبکه بلاکچین مورد استفاده قرار میگیرد، میتوان مزایای آن را بهصورت زیر دستهبندی کرد:
- در روش نامتقارن، جهت تعویض کلید عمومی نیازی به کانال مخفی نیست. این در حالی است که در روش متقارن، کانالهای توزیع کلید باید برای مدت طولانی ایمن و مخفی شوند!
- رمزنگاری نامتقارن از امضای دیجیتالی پشتیبانی میکند که در طی آن هویت گیرنده تأیید میشود و تضمین میکند که اطلاعات توسط شخص موردنظر (نه شخص دیگر) ارسال شدهاند.
- رمزنگاری نامتقارن به نسبت رمزنگاری متقارن مشکلات مدیریت کلید کمتری ایجاد میکند.
موارد فوق مزایای رمزنگاری نامتقارن با استفاده از کلیدهای عمومی و خصوصی بود. اما این روش معایبی نیز دارد که آنها را میتوان بهصورت زیر بررسی کرد:
- در روش نامتقارن، فرآیند رمزگذاری مدت زیادی طول میکشد و به تلاش بیشتری هم نیاز دارد.
- اگر شخصی کلید خصوصی خود را گم کند، آن را برای همیشه از دست خواهد داد. چراکه کلید خصوصی قابل بازیابی نیست!
علاوه بر موارد فوق، همانطور که در قسمتهای قبل هم اشاره شد، سرعت رمزنگاری نامتقارن از روش متقارن کمتر است، چراکه زمان بیشتر صرف بالا بردن امنیت آن میشود. با این وجود در روش نامتقارن خود کاربران نیز با حفظ کلیدهای خصوصی و توجه به کلمات بازیابی کلید خصوصی میتوانند در امنیت آن دخیل باشند.
گفتار پایانی
کلیدهای عمومی و خصوصی نقش بهسزایی در رمزگذاری اطلاعات در شبکه بلاکچین دارند.
به همین خاطر است که آگاهی از کارکرد کلی آنها میتواند برای فعالیت در حوزه رمزارزی برای شما مفید باشد. شما چه اطلاعات دیگری در مورد کلیدهای عمومی و خصوصی دارید. لطفاً نظرات خود در این زمینه را با سایر کاربران سیگما به اشتراک بگذارید.
سؤالات متداول
- کلید عمومی چیست؟
کلید عمومی «Public Key» یک مجموعه کد رمزنگاری است که میتواند بهصورت عمومی در اختیار افراد قرار بگیرد.
- کلید خصوصی چیست؟
کلید خصوصی «Private Key» برای رمزگشایی دادههای کلید عمومی مورد استفاده قرار میگیرد و فقط باید در اختیار شخص گیرنده باشد.
- رمزنگاری متقارن چیست؟
رمزنگاری متقارن «Symmetric» روش قدیمی رمزنگاری در بستر اینترنت است که در آن هر دو طرف فرستنده و گیرنده از یک کلید مشترک برای رمزنگاری و رمزگشایی دادهها استفاده میکنند.
- رمزنگاری نامتقارن چیست؟
رمزنگاری نامتقارن «Asymmetric» روش جدیدتر رمزنگاری دادهها است که از دو کلید عمومی و خصوصی برای رمزنگاری و رمزگشایی دادهها استفاده میکند.
- کدام روش رمزنگاری امنتر است؟
روش رمزنگاری نامتقارن به دلیل استفاده از دو کلید از رمزنگاری متقارن که از یک کلید استفاده میکند، امنتر است.
دیدگاه ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
استفاده از کلمات و محتوای توهینآمیز و غیراخلاقی به هر شکل و هر شخص ممنوع است.
انتشار هرگونه دیدگاه غیراقتصادی، تبلیغ سایت، تبلیغ صفحات شبکههای اجتماعی، قراردادن اطلاعات تماس و لینکهای نامرتبط مجاز نیست.