مقدمه
رمزنگاری علم کدها و رمزهاست. یک هنر قدیمی استو برای قرنها بمنظورمحافظت از پیغامهایی که بین فرماندهان؛جاسوسان، عشاق و دیگران رد وبدل می شده،استفاده شده است تا پیغامهای آنها محرمانه بماند. به عبارت دیگر می توان گفت و رمزنگاری از دیر باز به عنوان یک ضرورت برای حفاظت از اطلاعات خصوصی در مقابل دسترسی های غیر مجاز در تجارت و سیاست و مسایل نظامی وجود داشته است. به طور مثال تلاش برای ارسال یک پیام سری بین دو هم پیمان به گونه ای که حتی اگر توسط دشمن دریافت شود قابل درک نباشد ، در رم نیز دیذه شده است. هنگامی که با امنیت دیتا سرو کار داریم ، نیاز به اثبات هویت فرستنده و گیرنده پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم. این سه موضوع یعنی محرمانگی ، تصدیق هویت و جامعیت در قلب امنیت ارتباطات دیتای مردن قرار دارندو می توانند از رمز نگاری استفاده کنند.
اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده شودکه پیغام برای آنها ارسال شده است و دیگران ابن اجازه را ندارند. روشی که تامین کننده این مساله باشد"رمزنگاری" نام دارد. رمز نگاری هنر نوشتن بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده مورد نظر نتواند محتوای پیغام را بخواند.
رمزنگاری مخفف ها و اصطلاحات مخصوص به خود را دارد. برای درک عمیق تر بهمقداری از دانش ریاضیات نیاز است. برای محافظت از دیتای اصلی ( که بعنوان plaintext شناخته می شود)،آنرا با استفاده از یک کلید ( رشته ای محدود از بیتها )بصورت رمز در می آوریم تا کسی که دیتای حاصله را می خواند قادر به در ک آن نباشد.
دیتای رمز شده ( که بعنوان ciphertext شناخته می شود) بصورت یک سری بی معنی از بیتها بدون داشتن رابطه مشخصی با دیتای اصلی بنظر می رسد. برای حصول متن اولیه دریافت کننده آنرا رمز گشایی می کند. یک شخص ثالث (مثلا یک هکر) می تواند برای اینکه بدون دانستن کلید به دیتای اصلی دست یابد،کشف رمز نوشته(cryptanalysis)کند. بخاطر داشتن وجود این شخص ثالث بسیار مهم است. رمز نگاری دو جزء اصلی دارد، یک الگوریتم یک مبدل یا فرمول ریاضی است. تعداد کمی الگوریتم قدرتمن وجود دارد که بیشتر آنها بعنوان استانداردها یا مقالات ریاضی منتشر شده اند. کلید یک رشته از ارقام دودویی(صفر و یک )است که بخودی خود بی معنی است.
دیتای اویله اغلب قبل از رمز شدن بازچینی می شود، این عمل عموما بعنوان scrambling شناخته می شود. بصورت مشخص تر ، hash function ها بلوکی از دیتا را که ( که می تواند هر اندازه ای داشته باشد) به طول از پیش مشخص شده کاهش می دهد. البته دیتای اولیه نمی تواند از hashed value بازسازی شود. hash function ها اغلب بعنوان بخشی از یک سیستم تایید هویت مورد نیاز هستند؛ خلاصه ای از پیغام (شامل مهم ترین قسمتها مانند شماره پیام ، تاریخ و ساعت، و نواحی مهم دیتا ) قبل از رمز نگاریخود پیام ،ساخته و hash می شود. یک چک تایید پیام (Message Authentication Check) یاMAC یک الگوریتم ثابت با تولید یک امضاء بر روی پیام با استفاده از یک کلید است. هدف آن نشان دادن این مطلب است که پیام بین ارسال و دریافت تغییر نکرده است . هنگامی که رمز نگاری توسط کلید عمومی برای تایید هویت فرستنده پیام استفاده می شود، منجر به ایجاد امضای دیچتال(digital signature) می شود. طراحی الگوریتمهای رمزنگاری مقوله ای برای متخصصان ریاضی است. طراحان سیستمهایی که در آنها از رمز نگاری استفاده می شود، باید از نقاط قوت و ضعف الگوریتمهای موجود مطلع باشندو برای تعییین الگوریتم مناسب قدرت تصمیم گیری داشته باشند. با وجود کثرت تعداد الگوریتمهای موجود، الگوریتمهای کمی هنوز با گذشت زمان ارزش خود را حفظ کرده اند. بنابراین تعداد الگوریتمهای استفاده شده در سیستمهای کامپیوتری عملی و در سیستمهای بر پایه کارت هوشمند بسیار کم است. از آنجا که بحث و بررسی در خصوص امضای دیجیتال بدون نگاهی هر چند کوتاه بر رمز نگاری و سیستم ها و الگوریتمها ی مختلف مرتبط با آن غیر ممکن به نظر می رسد.