مسیرها
/
Standard ML
Standard ML
/
تمرین‌ها
/
رمز حصار ریلی
رمز حصار ریلی

رمز حصار ریلی

متوسط

دستورالعمل‌ها

رمزگذاری و رمزگشایی را برای رمز Rail Fence پیاده‌سازی کنید.

رمز Rail Fence گونه‌ای از رمز جابجایی است که اسمش را از شیوه‌ی رمزگذاری‌اش گرفته است. یونانیان باستان هم از آن استفاده می‌کردند.

در رمز Rail Fence، پیام روی «ریل»های پیاپی یک حصار خیالی رو به پایین نوشته می‌شود و وقتی به پایین می‌رسیم رو به بالا حرکت می‌کند (مثل یک زیگزاگ). در پایان، پیام ردیف به ردیف خوانده می‌شود.

برای مثال، با سه «ریل» و پیام «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

برای رمزگشایی یک پیام، شکل زیگزاگ را در نظر می‌گیرید و متن رمزشده را در طول ردیف‌ها پر می‌کنید.

? . . . ? . . . ? . . . ? . . . ? . . . ? . . . ?
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

ردیف اول هفت جای خالی دارد که می‌توان آن‌ها را با «WECRLTE» پر کرد.

W . . . E . . . C . . . R . . . L . . . T . . . E
. ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? . ? .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

حالا ردیف دوم «ERDSOEEFEAOC» را می‌گیرد.

W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . ? . . . ? . . . ? . . . ? . . . ? . . . ? . .

و «AIVDEN» برای ردیف آخر باقی می‌ماند.

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 . .

اگر حالا در امتداد شکل زیگزاگ بخوانید، می‌توانید پیام اصلی را بخوانید.


منبع

Wikipediaاین لینک در پنجره یا تب جدیدی باز می‌شود.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Standard ML Exercism

آماده‌اید رمز حصار ریلی را شروع کنید؟

در Exercism ثبت‌نام کنید تا Standard ML را همراه با 90 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.