رمزنگاری و یا نوشتن کد نخستین بار توسط دانشمندان ایرانی، (که بشر امروزی هر چه علم در ریاضیات و نجوم و فیزیک و شیمی و پزشکی و هنر و موسیقی دارد از برکت وجود این مردان بزرگ ایران زمین است، )ابداع گشت. کسانی مانند "دانشمند دانشمندان" خیام، خوارزمی، مجوسی، رازی، پور علی سینا، فارابی، خواجه نصیرالدین توسی، ابوبکر کرجی و و و
نامه نگاریها و مقالات خود را برمز بروشهای کاملا خصوصی و پیچیده که معمولا ابداع خودشان بود و رمزگشایی وکلید شکستن آنرا نیز تنها خود میدانستند، مینوشتند. یکی از این رمزنگاریها سایفر نامیده میشود که چون کاملا بر اساس جبر و ریاضیات است آنرا به خیام نسبت میدهند.
در عمل رمزنگاری سایفر یک الگوریتم برای قفلگذاری یا قفلشکنی بعنوان یکسری مراحل تعریف شده بکار میرود. سایفر از آنجهت مورداستفاده قرار میگیرد که زمان کمتری صرف رمزنگاری میشود. شیوه رمزنگاری بروش سایفر بدین صورت است که اطلاعات متن آشکار را برمز یا کد تبدیل میکند. به بیان دیگر سایفر همان کدگذاری است بااین حال مفهوم مجزا در رمزنگاری میباشد. کدها معمولاً طولانی و یا کوتاه هستند اما در روش سایفر بتعداد کاراکترهای فایل کد نوشته میشود یعنی تعداد کاراکترهای فایل با کاراکترهای کد برابر است.
ریشه کلمه "سایفر" از همان کلمه "صفر" در زبان پارسی که مادر تمامی زبانهای دنیاست گرفته شده است.
در بیان عادی کد رمز "سایفر" خوانده میشود. اگر چه این دو کلمه دو مقوله جداگانه میباشند. یکی از مثالهای بارز برای این روش میتوان به پیامهای تلگراف اشاره کرد که بکوتاه شدن تلگراف پیامهای طولانی که ناشی از ورود به قراردادهای تجاری با استفاده از تبادل تلگراف مورد استفاده قرار گرفت. سایفر به بیان دیگر در یک سطح پایینتر کار میکند؛ سطح حروف انفرادی یا گروه کوچک کاراکترها یا در بیان مدرن تک بیتی و چند بیتی. بعضی از سیستمها از هردو نحوه کد گذاری استفاده میکنند استفاده از superencipherment برای افزایش امنیت است. در برخی موارد کدها و رمزهای نیز مترادف جایگزین و جابجا میشود.
در زمانهای قدیم برای جابجایی نامههای محرمانه از روش کدبندی نامهها استفاده میکردند و گیرنده با در دست داشتن کد رمز اقدام به ترجمه نامهها مینمود.
روش رمزنگاری پارسی (امروزه اکثرا از این روش استفاده میکنند) را میتوان بدو صورت تقسیم کرد که براساس دادههای ورودی و براساس کلیدهاو نوع رمز مورد استفاده کلیدی تقسیم میشوند:
- الگوریتمهای کلید متقارن، که در آن از یک کلید مشابه برای رمزنگاری و رمزگشایی استفاده میشود،
-و الگوریتمهای کلید نامتقارن ، که در آن دو کلید متفاوت برای رمزگذاری و رمزگشایی استفاده میشود. سایفرها میتوانند بدو صورت ورودی تقسیم شوند. سایفرهای بلاک که در اندازههای مشخص رمزنگاری میشود و سایفرهای جریاندار که بصورت متداوم رمزنگاری میکنند.