رمزنگاری، شیوه باستانی حفاظت از اطلاعات است كه سابقه آن به حدود 4000 سال پیش از میلاد باز می گردد. اطلاعاتی مانند اطلاعات طبقه بندی شده نظامی، اطلاعات حساس مؤسسات مالی، كلمات عبور كه بر روی سیستم های كامپیوتری ذخیره شده اند و داده هایی كه بر روی اینترنت و یا از طریق امواج رادیویی انتشار می یابند.
رمزنگاری منجر به تغییر شكل اصل اطلاعات كه به آن متن آشكار یا Plaintext می گویند به اطلاعات دیگری به نام متن رمز شده یا cipher میشود كه غالباً ظاهری نامفهوم و تصادفی دارد. اطلاعات تغییر شكل یافته را cryptogram می نامند. معمولاً از روش های برگشت پذیر برای رمزنگاری متون استفاده می شود به طوری كه دریافت كننده در مقصد بتواند متن رمز را به صورت متن آشكار یا همان متن اولیه در آورد. تكنیك ها یا قوانینی كه برای رمزنگاری مورد استفاده قرار می گیرند به عنوان الگوریتم های رمزنگاری شناخته می شوند كه میزان سادگی یا پیچیدگی یك فرآیند رمزنگاری را تعیین می كنند. بسیاری از روشهای رمزنگاری از فرمولهای ساده ریاضی استفاده می كنند كه چندین بار و با تركیب های متفاوت به كار گرفته می شوند.
بسیاری از آنها نیز از یك مقدار محرمانه به نام كلید برای رمزنگاری و رمزگشایی استفاده می كنند. كلید نوعی كلمه عبور است كه تنها فرستنده و گیرنده متن از آن آگاهی دارند. الگوریتم رمزنگاری با استفاده از قوانین ریاضی كلید مزبور را كه معمولاً رشته ای طولانی از اعداد است، بر اطلاعاتی كه باید رمزنگاری یا رمزگشایی شوند، اعمال می كند. بر خلاف یك كلمه عبور معمولی، كلید به كاربر اجازه دسترسی مستقیم به اطلاعات را نمی دهد. در عوض الگوریتم رمزنگاری با استفاده از كلید میتواند داده های رمز شده را به صورت اولیه درآورد. در واقع بدون كلید، اطلاعات رمزنگاری شده غیر قابل دسترسی هستند.
امنیت هر الگوریتم رمزنگاری مستقیماً به پیچیده بودن اصولی مربوط است كه الگوریتم بر اساس آن بنا شده است.، اما اساساً امنیت رمزنگاری بر اساس پنهان ماندن كلید و نه الگوریتم مورد استفاده است. در حقیقت، با فرض اینكه كه الگوریتم از قدرت كافی برخوردار باشد (یعنی اینكه ضعف شناخته‌شده‌ای كه بتوان برای نفوذ به الگوریتم از آن استفاده كرد، وجود نداشته باشد) تنها روش درك متن اصلی برای یك استراق سمع كننده، كشف كلید است.
در بیشتر انواع حمله، حمله‌كننده تمام كلیدهای ممكن را تولید و روی متن رمزشده اعمال می‌كند تا در نهایت یكی از آنها نتیجه درستی دهد. تمام الگوریتمهای رمزنگاری در برابر این نوع حمله آسیب‌پذیر هستند، اما با استفاده از كلیدهای طولانی‌تر، می‌توان كار را برای حمله‌كننده مشكل‌تر كرد. هزینه امتحان كردن تمام كلیدهای ممكن با تعداد بیتهای استفاده شده در كلید بصورت نمایی اضافه می‌شود، و این در حالیست كه انجام عملیات رمزنگاری و رمزگشایی بسیار كمتر افزایش می‌یابد.
 
الگوریتمهای متقارن
DES كه یك الگوریتم كلید متقارن است معمولا از كلیدهای ۶۴ بیتی برای رمزنگاری و رمزگشایی استفاده می‌كند. الگوریتم متن اولیه را به بلوكهای ۶۴ بیتی می‌شكند و آنها را یكی‌یكی رمز می‌كند.
3DES الگوریتم پیشرفته‌تر است و در آن الگوریتم DES سه بار اعمال می‌شود. نسخه دیگری از این الگوریتم (پایدار‌تر از قبلیها) از كلیدهای ۵۶بیتی و با فضای كلید موثر ۱۶۸بیت استفاده می‌كند و سه بار عملیات رمزنگاری را انجام می‌دهد.
جدول زیر زمان لازم برای یافتن كلید در الگوریتم DES‌ را نشان میدهد.
 
طول كلید
تعداد كلیدهای ممكن
زمان مورد نیاز برای ۱
رمزگشایی در هر میلی‌ثانیه
زمان مورد نیاز برای ۱،۰۰۰،۰۰۰ رمزگشایی در هر میلی‌ثانیه
۳۲ بیت
۱۰۹×۴/۳ =۲۳۲
۳۵/۸ دقیقه = ۲۳۱میلی‌ثانیه
۲/۱۵ میلی‌ثانیه
۵۶ بیت
۱۰۱۶×۷/۲ =۲۵۶
۱۱۴۲ سال = ۲۵۵میلی‌ثانیه
۱۰ ساعت
۱۲۸ بیت
۱۰۳۸×۳/۴ =۲۱۲۸
۱۰۲۴×۵/۴ سال = ۲۱۲۷میلی‌ثانیه
۱۰۱۸×۵/۴ سال
۱۶۸ بیت
۱۰۵۰×۳/۷ =۲۱۶۸
۱۰۳۶×۵/۹ سال = ۲۱۶۷میلی‌ثانیه
۱۰۳۰×۵/۹ سال
ستون سوم مربوط به كامپیوترهایی است كه می‌توانند در هر میلی‌ثانیه یك رمزگشایی را انجام دهند كه برای كامپیوترهای امروزی توان محاسباتی معقولی محسوب می‌شود. ستون آخر برای سیستمهای بسیار بزرگ محاسباتی است بطوریكه قدرت پردازش یك میلیون برابر زیاد شده باشد.
بدون در نظر گرفتن طول كلید، الگوریتمهای متقارن قوی نیز نمی‌توانند امنیت الگوریتمهای نامتقارن را داشته باشند، زیرا كلید باید بین دو طرف ارتباط مبادله شود.
 
الگوریتمهای نامتقارن
عموماً سیستمی امن محسوب می‌شود كه هزینه شكستن آن بیشتر از ارزش دیتایی باشد كه نگهداری می‌كند. اما در ذهن داشته باشید كه با افزایش قدرت محاسباتی، سیستمهای رمزنگاری، آسانتر توسط روشهای سعی و خطا مورد حمله قرار خواهند گرفت.
برای مثال، طبق گزارشی از سایت RSA، تخمین زده می شود كه یك كلید ۲۱۵  بیتی می تواند با هزینه ای كمتر از ۱ میلیون دلار و یك تلاش ۸ ماهه شكسته شود. RSA توصیه میكند كه كلیدهای ۲۱۵  بیتی در حال حاضر امنیت كافی ایجاد نمی كنند و باید بنفع كلیدهای ۸۶۷ بیتی برای استفاده های شخصی كنار بروند! به همین ترتیب برای استفاده شركتها كلیدهای ۱۰۲۴بیتی و از ۲۰۴۸بیت برای كلیدهای فوق العاده ارزشمند استفاده شود. جدول زیر
 نشان‌دهنده افراد یا گروههایی است كه توانایی شكستن كلیدها با طولهای متفاوت را دارند.
 
طول كلید
نفوذگران بالقوه
۲۵۶ بیتی
افراد عادی
۳۸۴ بیتی
گروههای تحقیق دانشگاهی و شركتها
۵۱۲ بیتی
گروههای دولتی با تمام امكانات
۷۶۸ بیتی
امن برای كوتاه مدت
۱۰۲۴ بیتی
امن تا آینده نزدیك
۲۰۴۸
امن احتمالا تا چند ده سال!