ریاضی در رمزنگاری
رمزنگاری یک هنر قدیمی است و برای قرنها بمنظور محافظت از پیغامهایی که بین فرماندهان، جاسوسان، عشاق و دیگران ردوبدل میشده، استفاده شده است.
هنگامی که با امنیت دیتا سروکار داریم، نیاز به اثبات هویت فرستنده و گیرنده پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم. این سه موضوع یعنی محرمانگی، تصدیق هویت و جامعیت در قلب امنیت ارتباطات دیتای مدرن قرار دارند و میتوانند از رمزنگاری استفاده کنند.
اغلب این مساله باید تضمین شود که یک پیغام فقط میتواند توسط کسانی خوانده
شود که پیغام برای آنها ارسال شده است و دیگران این اجازه را ندارند. روشی
که تامین کننده این مساله باشد "رمزگذاری" نام دارد. رمزگذاری هنر نوشتن
بصورت رمز است بطوریکه هیچکس بغیر از دریافت کننده موردنظر نتواند محتوای
پیغام را بخواند.
رمزنگاری مخففها و اصطلاحات مخصوص به خود را دارد و برای درک عمیقتر به
مقداری از دانش ریاضیات نیاز است. برای محافظت از دیتای اصلی ( که بعنوان
plaintext شناخته میشود)، آنرا با استفاده از یک کلید رمزگذاری(رشتهای
محدود از بیتها) و تابع رمزگذار متناظر با آن بصورت رمز در میآوریم تا کسی
که دیتای حاصله را میخواند قادر به درک آن نباشد. دیتای رمزشده (که
بعنوان ciphertext شناخته میشود) بصورت یک سری بیمعنی از بیتها بدون
داشتن رابطه مشخصی با دیتای اصلی بنظر میرسد. برای حصول متن اولیه
دریافتکننده آنرا با استفاده از کلید رمزگشایی و تابع رمزگشای متناظر با
آن، رمزگشایی میکند. یک شخص ثالت (مثلا یک هکر) میتواند برای اینکه بدون
دانستن کلید به دیتای اصلی دست یابد، کشف رمز (cryptanalysis) کند.
بخاطرداشتن وجود این شخص ثالث بسیار مهم است.