رمز نگاری SPN (شبكه جانشيني و جايگشت كليددار):
P-box، S-box دو مؤلفه بنيادي سيستمهاي رمز نگاري مدرن، يك روش رمز نگاري بسيار ساده مبتني بر سه ركن P-box، S-box و تلفيق كليد با عملگر XOR را ایجاد می کنند. فرآيند رمز نگاري در چهار دوره مشابه تكميل مي شود و در هر دوره ورودي 16 بيتي طبق الگوریتم زیر رمز مي شود:
1. ابتدا بيتهاي ورودي با كليدي 16 بيتي XOR مي شوند. (در كل فرآيند رمز نگاري جمعاً به پنج كليد 16 بيتي نياز است.) به اين كليدها كليد فرعي يا كليد دوره گفته مي شود و همه آنها را مي توان از يك كليد 16 بيتي يا طولاني تر بدست آورد.
2. در گام دوم نتيجه عملیات مرحله قبل در چهار گروه چهار بيتي به چهار S-box وارد مي شوند این S-boxها كه جدول جانشيني متفاوتي دارند هر چهار بيت را با مقادير جديد جانشين مي كنند.
3. در گام سوم با عمل جايگشت بيتي هر يك از بيتهاي خروجي S-boxها به گونه اي تغيير موقعيت مي دهند تا تأثير خروجي هر يك از S-box ها در ورودي تمام S-boxهاي دوره بعدي ظاهر شود به عبارت ديگر خروجي هر S-box در يك دور، ورودي تمام S-boxهاي دور بعدي را تحت تأثير قرار مي دهد.
معماری رمز فيستل ( Feistel ):
«هارست فيستل» از شرکت IBM بر اساس پيشنهادات «شانون» الگويي عام برای رمزنگاری متقارن پيشنهاد کرد، که بسياری از روش های مدرن رمزنگاری بر اساس معماری او طراحی شدند.
ويژگيهاي بنيادي معماري رمز فيستل به شرح زيراست:
1) رمزنگاري مشتمل بر تعدادي مرحله تكراري و مشابه موسوم به دور است و در هر دور فقط كليد رمز و احتمالاً ثابت ها تغيير مي كنند و ماهيت عمل در تمام دورها يكسان و آشكار است.
2) ورودي هر دور به دونيمه چپ و راست تقسيم شده و در هر دور يك نيمه از ورودي دست نخورده باقي مي ماند در حالي كه نيمه دوم براساس تركيبي بسيار پيچيده و به شدت غيرخطي از نيمه اول، دوم و كليد رمزنگاري مي شود. (يک نيمه خروجی همان ورودی است و نيمه ديگر حاصل ترکيب غير خطی از دو نيمه ورودی است.)
3) براي رمزگشايي هر دور، در اختيار داشتن نيمه دست نخورده و كليد دور كافي است.
4) پس از هر دور بايد جاي دو نيمه تعويض شود تا نيمه دست نخورده در دور بعدي مشمول عمل رمزنگاري شود.
5) فرايند رمزنگاري نيمه دوم ورودي، بايد توسط تابعي به شدت غيرخطي و غيرجبري انجام بگيرد، اگر اين تابع پيچيده را f بناميم استحكام و سرعت سيستم رمزنگاري در گرو ماهيت دروني f خواهد بود.
به تابع f اصطلاحاً تابع خردكن گفته مي شود. اين تابع پس از آنكه داده ها را به روشي غيرخطي درهم كرد آنها را در بيتهاي كليد تلفيق كرده و پس از جايگشت، داده ها را به خروجي مي فرستد. تابع f مي تواند تابعي يك طرفه باشد بدين معنا كه حتي با داشتن كليد و خروجي رمز شده نتوان معکوس f را محاسبه كرد ولي بايد تابعي پوشا باشد.
6) با اعمال دوباره f بر روی پارامترهای ورودی، رمزگشايي صورت می گيرد.
7) تعداد دور بايد آن قدر زياد باشد تا دنبال كردن رابطه ورودي، خروجي و كليد در عمل غيرممكن باشد. افزايش تعداد دورها ويژگي گمراه كنندگي را افزايش خواهد داد.
8) هر دور از عمليات رمزنگاري بايد داراي كليدي متفاوت از دور قبلي باشد در عين حال كليدهاي فرعي بايد به روشي پيچيده و نامتعارف از كليد اصلي مشتق شده باشند توليد كليدهاي فرعي مستقل از فرايند رمزنگاري است وليكن پيچيدگي روش توليد در قدرت و استحكام كل سيستم رمزنگار تاثير جدي مي گذارد.
9) روش توليد كليدهاي فرعي از شاه كليد، بايستي حتماً يك طرفه باشد تا حتي با لو رفتن يك يا چند تا از كليدهاي فرعي كسي نتواند شاه كليد يا بخش قابل توجهي از بيت هاي كليد را كشف و بازيابي كند.
10) پياده سازي سخت افزاري و نرم افزاري روشهاي فيستلي بايستي بتواند داده ها را با حداقل تاخير ممكن و ترجيحاً بصورت بي درنگ رمزنگاري كند.
11) طول شاه كليد و كليدهاي دور بايستي به قدري بزرگ باشد تا هيچكس نتواند با اتكا به روش سعي و خطا كل فضاي كليد را جستجو كند.
12) حداقل طول مجاز داده 64 بيت است ولي در روشهاي جديد هر بلوك داده 128 بيت درنظر گرفته شده است.