رمزنگاری تمرین و مطالعه تکنیک هایی برای برقراری ارتباط امن در حضور اشخاص ثالث به نام دشمن است. هدف اصلی آن اطمینان از حریم خصوصی، احراز هویت، یکپارچگی و عدم رد پیام ها یا داده ها است.
هنر رمزنگاری به قدمت خود نوشتن است. در ابتدا، برای اطمینان از اینکه فقط گیرندگان مورد نظر می توانند محتوای یک پیام را درک کنند، استفاده می شد. مصریان، یونانیان و رومیان باستان تکنیک های رمزنگاری را توسعه دادند و از آنها استفاده کردند. یک مثال معروف رمز سزار است، رمز جایگزینی که در آن هر حرف در متن ساده تعداد معینی از مکانها به سمت پایین الفبا جابهجا میشود.
دو دسته اصلی از الگوریتم های رمزنگاری وجود دارد:
رمزگذاری فرآیند تبدیل متن ساده به متن رمزی است که برای کسی غیر از دارنده کلید قابل خواندن نیست. رمزگشایی فرآیند معکوس است و متن رمز شده را به متن ساده قابل خواندن برمیگرداند. رابطه ریاضی را می توان به صورت زیر بیان کرد:
زیرساخت کلید عمومی چارچوبی برای مدیریت گواهیهای دیجیتال و رمزگذاری کلیدهای عمومی است. این به کاربران یک شبکه عمومی ناامن مانند اینترنت امکان می دهد تا داده ها را به صورت ایمن و خصوصی مبادله کنند.
توابع هش نوعی الگوریتم رمزنگاری هستند که رشته ای با اندازه ثابت از بایت ها (معروف به هش) را از داده های ورودی با هر اندازه تولید می کند. آنها برای اطمینان از یکپارچگی داده ها استفاده می شوند. یک مثال معروف الگوریتم SHA-256 است که در استخراج بیت کوین استفاده می شود.
امضای دیجیتال یک تکنیک رمزنگاری است که منشاء و یکپارچگی ارتباطات یا اسناد دیجیتال را تضمین می کند. امضای دیجیتال با استفاده از یک کلید خصوصی تولید میشود و هر کسی که کلید عمومی مربوطه را دارد میتواند تأیید شود.
Cryptanalysis مطالعه تجزیه و تحلیل سیستم های اطلاعاتی به منظور درک جنبه های پنهان سیستم ها است. برای نقض سیستم های امنیتی رمزنگاری و دسترسی به محتوای پیام های رمزگذاری شده استفاده می شود.
رمزنگاری طیف وسیعی از کاربردها، از جمله ایمن سازی ارتباطات محرمانه، حفاظت از اطلاعات دستگاه های ذخیره سازی، افزایش امنیت وب و شبکه، ایمن سازی تراکنش های مالی الکترونیکی، و تضمین یکپارچگی و اصالت امضاها و گواهی های دیجیتال را دارد.
با پیشرفت قدرت محاسباتی، مانند محاسبات کوانتومی، تکنیک های رمزنگاری فعلی با چالش های جدیدی روبرو هستند. رمزنگاران فعالانه در حال کار برای توسعه الگوریتم های جدیدی هستند که می توانند قدرت محاسباتی رایانه های کوانتومی را تحمل کنند.