علی قلعه بان
دانشجوی دکتری فناوری اطلاعات

چگونه با Public Key اطلاعات خود را رمزنگاری کنیم ؟ آموزش و مثال

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
ببینید بزارید ساده شروع کنیم دو نفر هستن علی و فرهاد که میخان با هم اطلاعاتی را مبادله کنن ولی بطوریکه وسط در حین ارسال اطلاعات اگر هم کسی به این اطلاعات دسترسی پیدا کرد نتونه ازش چیزی سردربیاره در کل ما دو متد برای این کار داریم یکی symmetric هستش که در این حالت همون طور که در شکل زیر می بینید علی و فرهاد هر دو یک کلید واحد دارن علی اطلاعات رو با کلیدی که پیشش هست کدگذاری میکنه و ارسال میکنه فرهاد وقتی اطلاعات رو میگیره اونم با همان کلیدی که خودش داره رمز اطلاعات رو باز میکنه و به اطلاعات دسترسی پیدا میکنه خوب شاید در وهله اول این روش خوب به نظر برسه ولی از لحاظ امنیتی خوب نیست چون اگر این کلید به دست هر کس دیگه ای هم بیافته میتونه اطلاعات رو رمزگشایی کنه خوب راه کار چیه ؟
کدگذاری اطلاعات با public key به زبان بسیار ساده به همراه مثال آموزشی


راهکار اینه که یه روشی بکار گرفته بشه که اگر حتی کلید رمزکننده به دست کسی بیافته باز نتونه اطلاعات رو رمزگشایی کنه حالا میگید خوب این چطور میتونه اتفاق بیافته با کدگذاری asymmetricیا همان public key encryption در این حالت فرهاد یک کلید خصوصی private key تولید میکنه که همیشه پیش خودش نگه میداره بعد از همین کلید خصوصی یه کلید عمومی یا Public 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

نظرات