رمزنگاری جابه‌جایی

در رمزنگاری کلاسیک، رمزنگاری جابجایی روشی است که با جابجا کردن حروف عمل رمز کردن را انجام می‌دهد و با اجرای برعکس آن رمزگشایی صورت می‌گیرد. از دید ریاضی یک تابع یک به یک بر روی مکان حروف کار رمزکردن را انجام می‌دهد و معکوس آن برای رمزگشایی استفاده می‌گردد.رمزهای جابجایی ترتیب حروف را عوض می‌کنند ولی آن‌ها را تغییر نمی‌دهند.
در ادامه نمونه‌هایی از رمزنگاری جابه‌جایی معرفی شده‌اند.
سیستم رمز ریلی
در این نوع سیستم همانطور که از نام آن برمی‌آید،ابتدا به تعداد دلخواهی ریل(خط) تشکیل می‌دهیم. سپس حروف متنی که می‌خواهیم آن را رمز کنیم را به ترتیب از ابتدای ریل اول به صورت زیگزاگ قرار می‌دهیم. به عنوان نمونه اگر متن اصلی ما WE ARE DISCOVERED. FLEE AT ONCE باشد متن رمز شده آن به شکل زیر به دست می‌آید:
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
حال به صورت سطری این حروف را کنار هم قرار می‌دهیم و به متن زیر می‌رسیم:
WECRLTEERDSOEEFEAOCAIVDEN
در این سیستم فضای کلید برابر تعداد ریل‌هایی است که می‌توان تعریف کرد.
سیستم رمز مسیری
در این نوع سیستم ابتدا حروف را در جدولی به ابعاد مشخص قرار می‌دهیم سپس با استفاده از یک الگوی معینی حروف داخل جدول را کنار هم قرار می‌دهیم و متن رمز شده را به دست می‌آوریم. برای مثال برای همان متن رمزی سیستم ریلی داریم :
W R I O R F E O E
E E S V E L A N J
A D C E D E T C X
مسیر خواندن حروف را مارپیچی در جهت عقربه‌های ساعت به سمت داخل از راست بالای جدول تعریف می‌کنیم پس داریم:
EJXCTEDECDAEWRIORFEONALEVSE
در مقایسه با سیستم ریلی فضای کلید در حالت بسیار بیشتر است و شامل تمام مسیرهایی است که در جدول بدست آمده می‌توان تشکیل داد.
سیستم جابه‌جایی ستونی
در این سیستم رمزنگاری ابتدا متن اصلی را در ردیف‌هایی به طول معین قرار می‌دهیم سپس جدول به دست آمده را به صورت ستونی اما به صورت درهم ریخته می‌خوانیم. ترکیب طول ردیف‌ها و جابه‌جایی انجام شده در انتخاب ستون‌ها کلید را مشخص می‌کنند.
در سیستم رمز جابه‌جایی ستونی منظم، فاصله‌های اضافی جدول با NULL جایگزین می‌شود اما در سیستم رمز جابه‌جایی نامنظم فاصله‌های اضافی با Blank جایگزین می‌شود. فرض کنید می‌خواهیم جمله WE ARE DISCOVERED. FLEE AT ONCE. را با کلید ZEBRAS رمز کنیم. با توجه به ترتیب حروف در کلمه رمز، ستون‌ها به این ترتیب خوانده خواهند شد: "5 1 4 2 3 6" ؛ پس:
5 1 4 2 3 6
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E Q K J E U
با قرار دادن QKJEU به عنوان NULL متن رمز شده به صورت زیر بدست می‌آید:
EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE
اما در صورتی که از سیستم رمز نامنظم استفاده کنیم داریم:
5 1 4 2 3 6
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E
و متن رمزی بدست آمده به شکل زیر خواهد بود:
EVLNA CDTES EAROF ODEEC WIREE
سیستم رمز Myszkowski
این سیستم در سال 1902 توسط Émile Victor Théodore Myszkowski پیشنهاد شد. این سیستم رمزنگاری مشابه جابه‌جایی ستونی می‌باشد با این تفاوت که کلید در رمز جابه‌جایی ستونی در صورتی که حروف تکراری داشته باشد از سمت چپ کوچکترین عدد اختصاص داده می‌شود در حالی که در این سیستم به حروف یکسان عدد یکسانی داده می‌شود و هنگامی که می‌خواهیم متن رمز شده را تشکیل دهیم، ستون‌های به عدد یکسان را به صورت ردیفی می‌خوانیم. ستون‌هایی که اعداد یکسان ندارند را به همان صورت قبلی یعنی ستونی می‌خوانیم. واضح است که این سیستم در صورتی که کلید حرف تکراری نداشته باشد مشابه سیستم جابه‌جایی ستونی می‌باشد. به عنوان مثال در رمز جابه‌جایی ستونی برای کلید TOMATO ، ترتیب 532164 به دست می‌آید ولی در این سیستم برای همین کلمه ترتیب 432143 به دست می‌آید. اگر با کلید TOMATO بخواهیم متن WE ARE DISCOVERED. FLEE AT ONCE. را رمز کنیم داریم:
3 4 1 2 3 4
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E
ROFOA CDTED SEEEA CWEIV RLENE
شناسایی و امنیت سیستم
با توجه به اینکه در این خانواده از سیستم‌ها کاراکترها صرفا جابه‌جا می‌شوند، فرکانس یا پراکندگی کاراکترها در یک متن تغییری نمی‌کند. پس حمله‌کننده با در اختیار داشتن درصد پراکندگی حروف می‌تواند تناظر یک به یکی بین حروف متن و حروف جدول درصد پراکندگی برقرار کند و متن اصلی را بازیابی کند.