راهکار اینه که یه روشی بکار گرفته بشه که اگر حتی کلید رمزکننده به دست کسی بیافته باز نتونه اطلاعات رو رمزگشایی کنه حالا میگید خوب این چطور میتونه اتفاق بیافته با کدگذاری asymmetricیا همان public key encryption در این حالت فرهاد یک کلید خصوصی private key تولید میکنه که همیشه پیش خودش نگه میداره بعد از همین کلید خصوصی یه کلید عمومی یا Public key تولید میکنه و به علی میده تا هر وقت علی خواست اطلاعاتی رو برای فرهاد بفرسته توسط کلید عمومی کدگذاری و ارسال کنه , حتی اگر کسی به اطلاعات رمز شده دسترسی پیدا کنه و حتی کلید عمومی که دست علی هست رو هم داشته باشه تا کلید خصوصی فرهاد نباشه اطلاعات رمزگشایی نمیشن .
خوب امیدوارم تا اینجا همه چیز شفاف بوده باشه حالا برای مثال هم که شده برای درک بهتر میریم سراغ مثال عملی تو این مثال ها ما از openssl برای این موضوع استفاده خواهیم کرد قبل از همه چیز باید کلید خصوصی ایجاد کنیم .
ایجاد کلید خصوصی
$ openssl genrsa -out private.pem 1024
سپس از طریق کلید ایجاد شده خصوصی کلید عمومی را باید تولید کنیم
$ openssl rsa -in private.pem -out public.pem -outform PEM -pubout
خوب حالا از طریق کلید عمومی یک فایلی را کدگذاری میکنیم در این دستور در بخش خروجی file.ssl فایل کدگذاری خروجی هست که شما کدگذاری نموده اید
$ openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
خوب فایل رمز شده رو با دستور زیر و با کلید خصوصی رمزگشایی میکنیم
$ openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
هرجای مطلب مفهوم نبود و یا سوالی پیش آمد کامنت بزارید جواب میدم .
نویسنده : علی قلعه بان , دانشجوی دکتری ,محقق ومتخصص فناوری اطلاعات
#کدگذاری #کدگذاری_با_public_key
سلام ممنون تقریبا بله چون بعد اینکه طرف در گاوصندوق رو ببنده دیگه خودش هم نمیتونه بازش کنه , 2 تا کلید بیشتر نیست پرایوت و پابلیک که پرایوت پیش گیرنده هستش پابلیک رو هم میدیم به فرستنده پابلیک میتونه دست خیلی ها باشه ولی هیچ کدوم تفاوتی با هم ندارن همشون یکی هستن یعنی تکثر ایجاد میشه ولی تنوع نه
ممنون از پاسختون!
از توضیح قسمت دوم اینطوری میشه گفت که در واقع ما یه گاو صندوق در باز داریم که کلیدش دست ماست! این گاو صندوق رو میفرستیم برای طرف مقابل پیام رو میذاره داخلش درشو میبنده و برای ما برمیگردونه! کلید گاوصندوق یدونست که فقط دست ماست! ما فقط میتونیم درونشون ببینیم!
در واقع در یک ارتباط ۴ کلید وجود داره! هر طرف کلید پابلیک و پرایویت خودش رو داره!
سلام ممنون از توجه شما
1-در اصل یک کلید پرایوت ایجاد میشه و کلید پابلیک از درون پرایوت ساخته میشه در کل دو تا میشه وبرای حفظ امنیت و اعمال پروتکل وجود دو کلید الزامی هستش و ناگزیر .
2-کلید پرایوت جایی منتقل نمیشه کسی که دریافت کننده پیام هست کلید پرایوت رو میسازه بعد ازش پابلیک میسازه پابلیک رو میفرسته برای ارسال کننده پیام و هر موقع از طرف ارسال کننده پیامی اومد با کلید پرایوت خودش پیام رو باز میکنه
سلام
ممنون از مطلب خوبتون!
دو تا سوال داشتم!
۱- مدل asymmetric برای هر ارتباط باید یک کلید پابلیک و یک کلید پرایویت تولید بشه؟؟ تعداد کلیدها زیاد نمیشه؟؟
۲- باز هم تو این مدل انتقال کلید پرایویت مهمه! چطور این کلید به صورت امن جا به جا میشه؟؟
سلام بله شدنش میشه ولی باید دقت کرد زمانی که کلید رو میسازیم از الگوریتم های قوی تری استفاده کنیم تا شکستنش هم سخت باشه بعدش هم به طور مثال برای شکستن یه کلید 512 بایتی اگر بخاهیم تجهیزات خیلی قوی دولتی داشته باشیم ماهها طول میکشه تا شکسته بشه حالا شما اگر روش های پیچیده تر استفاده کنید این عمل سخت تر خواهد شد .
سلام ، ممنون از مقاله مفیدتون.
ابهامی که برام پیش اومد اینه که اگه هکر وسط راه کلید عمومی رو بدست بیاره کلید خصوصی رو میتونه شبیه سازی کنه و در نتیجه اطلاعات رو بخونه دیگه؟