رمزنگاری یا رمزگذاری (Encryption) فرآیند تبدیل و ذخیره اطلاعات با استفاده از یک الگوریتم خاص برای محافظت از آنها است در هر رمز گذاری یک کلید الگوریتم وجود دارد که تنها در اختیار خود رمزگذار می باشد. از این کلید برای معکوس کردن عمل رمز نگاری و اصطلاحاً رمزگشایی یا Decryptionاستفاده می شود. رمزنگاری مدت طولانی است که توسط دولت و نیروهای نظامی به منظور برقراری ارتباط امن و یا بعضا مخفی استفاده می شود اما درحال حاضر به طور معمول و در جهت حفاظت از اطلاعات در انواع مختلفی از سیستم های غیر نظامی نیز استفاده می شود.
به گزارش موسسه امنیت کامپیوتری (CSI) در سال 2007حدود 71% از اطلاعات منتقل شده و 53% از اطلاعات ذخیره شده برروی حافظه های کامپیوتری رمزگذاری شده بودند. رمزنگاری می تواند برای حفاظت از اطلاعات ذخیره شده بر روی انواع حافظه کامپیوتری از جمله حافظه های فلش مورد استفاده قرارگیرد. امروزه رمزگذاری برای محافظت از اطلاعات در حمل و نقل استفاده می شود. بعنوان مثال داده هایی که از طریق شبکه های مختلف، اینترنت ، تلفن همراه ، میکروفن بی سیم ، دستگاه مخابره داخل ساختمان، دستگاه های بلوتوث منتقل می شوند نیز کاربرد دارند. در سال های اخیر موارد بسیاری درمورد اطلاعاتی که درحین انتقال رهگیری شده اند گزارش شده است. برای رمز گذاری و حفاظت از اطلاعات روش های مختلفی وجود دارد اما یکی از قدیمیترین برنامه های کاربردی عمومی رمز نویسی PGP نام دارد، که در سال 1991 توسط Phil Zimmermannنوشته شده است.
الگوریتم های مورد استفاده برای رمزنگاری به دو دسته متقارن و نامتقارن تقسیم می شوند در الگوریتم های متقارن هر دو طرفی که قصد رد و بدل کردن اطلاعات را دارند از یک کلید مشترک برای رمزگذاری و نیز رمزگشایی استفاده میکنند. در این حالت بازگشایی و رمزگزاری اطلاعات دو فرآیند معکوس یکدیگر میباشند.
درالگوریتم های نامتقارن که امنیت بسیار بالاتری نسبت به الگورتیم متقارن دارد، به جای یک کلید مشترک از یک جفت کلید به نامهای کلید عمومی (Public Key) و خصوصی (Private Key) استفاده میشود. کد رمزگذاری عمومی است پس هر کسی می تواند پیغام خود را رمزگذاری کند اما کد رمزگشایی خصوصی است پس تنها گیرنده می تواند آن را از حالت رمزگذاری خارج کند. امروز استفاده از این روش در اکثر شبکه های کامپیوتری رایج است. تمام کامپیوترهای عضو شبکه به کلید عمومی دسترسی دارند و تنها گیرنده پیغام به کلید خصوصی دسترسی دارد.
Public key : برای به رمز گذاری اطلاعات استفاده می شود.
Plaintext : متنی است که قرار است رمزگذاری شود.
Encryption Algorithm : الگوریتم رمزگذاری اطلاعات
Private Key : کلیدی که برای رمزگشایی استفاده می شود.
Cipher text : متن تغییر یافته پس از رمز گذاری
Decryption Algorithms : الگوریتم رمزگشایی است.
برای رمز گذاری اطلاعات می توانید با توجه به میزان اهمیت و حجم و زمان محاسبات و با استفاده از اطلاعات ارائه شده در بالا یک روش را انتخاب و استفاده کنید. بطور خلاصه میتوان گفت که الگوریتم های متقارن دارای سرعت بالاتر و الگوریتمهای نامتقارن دارای امنیت بهتری هستند. در ضمن گاهی از ترکیبی از هردو الگوریتم استفاده می کنیم که به این این روش الگوریتم های ترکیبی (Hybrid) گفته میشود.
الگوریتم های نامتقارن و الگوریتم های کلید متقارن دارای دو ماهیت کاملاً متفاوت می باشند و کاربردهای متفاوتی نیز دارند به طور مثال در رمزنگاریهای ساده که حجم دادهها بسیار زیاد است از الگوریتم متقارن استفاده میشود زیرا دادهها با سرعت بالاتری رمزنگاری و رمزگشایی شوند. اما در پروتکل هایی که در اینترنت استفاده میشود، برای رمز نگاری کلید هایی که نیاز به مدیریت دارند از الگوریتمهای کلید عمومی استفاده میشود.