رمز «ب»
Time Limit: 1 Second Memory Limit: 32768 KB
«بنگاه بساطهای بیسیم بینظیر» (ب۴) گسترهای از دستگاههای کوچک بیسیم متصل به شبکه را میسازد که از مداد تا قلادهٔ سگ وشناورهای ماهیگیری را در بر میگیرند. همهٔ این دستگاهها حافظههای بسیار کوچکی در خود دارند. هرچند میتوان امنیت الگوریتمهای رمزنگاریای مانند «ریندال» (AES) را اثبات کرد، ولی این الگوریتمها برای چنان حافظهٔ کوچکی مناسب نیستند. برای فراهمآوردن امنیت نسبی انتقال دادهٔ دستگاهها، ب۴ از الگوریتم زیر استفاده میکند:
رمزنگاری یک پیام نیازمند سه کلید K1، K2 و K3 است. حروف [a-i] گروه اول، حروف [j-r] گروه دوم و بقیهٔ شناسهها (شامل [s-z] و _) گروه سوم را تشکیل میدهند. در هر گروه، حروف بهاندازهٔ ki جایگاه در پیام بهسمت چپ «چرخانده» میشوند. چرخش هر گروه مستقل از گروههای دیگر است. رمزگشایی با چرخش به راست بهاندازهٔ ki جایگاه در هر گروه اتفاق میافتد.
این پیام را در نظر بگیرید:
اگر به گروه [a-i] نگاه کنیم، میبینیم که حروف {i,c,b,f,h,e} در محلهای {2,3,7,8,11,17} در پیام رمزنگاریشده ظاهر شدهاند. بعد از چرخش به راست بهاندازهٔ k1=2 جایگاه، این مکانها به حروف {h,e,i,c,b,f} اختصاص خواهند داشت.
در ادامه، رشتههای میانیای که از انجام همهٔ چرخشبهراستهای هر گروه حاصل میشوند تا کل پیام رمزگشایی شود نشان داده شدهاند:
رمزنگاری یک پیام نیازمند سه کلید K1، K2 و K3 است. حروف [a-i] گروه اول، حروف [j-r] گروه دوم و بقیهٔ شناسهها (شامل [s-z] و _) گروه سوم را تشکیل میدهند. در هر گروه، حروف بهاندازهٔ ki جایگاه در پیام بهسمت چپ «چرخانده» میشوند. چرخش هر گروه مستقل از گروههای دیگر است. رمزگشایی با چرخش به راست بهاندازهٔ ki جایگاه در هر گروه اتفاق میافتد.
این پیام را در نظر بگیرید:
the_quick_brown_fox
اگر پیام مذکور را با کلیدهای k1=2، k2=3 و k3=1 رمزنگاری کنیم، رشتهٔ زیر حاصل میشود:_icuo_bfnwhoq_kxert
این تصویر نحوهٔ رمزگشایی یک حرف از هر گروه را با چرخش به راست نشان میدهد: در ادامه، رشتههای میانیای که از انجام همهٔ چرخشبهراستهای هر گروه حاصل میشوند تا کل پیام رمزگشایی شود نشان داده شدهاند:
Input
ورودی شامل اطلاعات تعدادی پیام رمزنگاریشده است. اطلاعات هر پیام در دو خط بیان میشود؛ در خط اول سه کلید K1، K2 و K3 و در خط دوم پیام رمزنگاریشده میآید. پایان ورودی با خطی شامل K1=K2=K3=0 مشخص میشود.
تضمین میشود تمام ورودیها فقط شامل حروف کوچک انگلیسی و زیرخط (_) باشند، طول هر رشته حداکثر ۸۰ نویسه باشد و تمام کلیدهای ki در فاصلهٔ [1-100] قرار داشته باشند.
تضمین میشود تمام ورودیها فقط شامل حروف کوچک انگلیسی و زیرخط (_) باشند، طول هر رشته حداکثر ۸۰ نویسه باشد و تمام کلیدهای ki در فاصلهٔ [1-100] قرار داشته باشند.
Output
برای هر پیام رمزنگاریشده، یک خط شامل پیام رمزگشاییشده چاپ کنید.
Sample Input
2 3 1 _icuo_bfnwhoq_kxert 1 1 1 bcalmkyzx 3 7 4 wcb_mxfep_dorul_eov_qtkrhe_ozany_dgtoh_u_eji 2 4 3 cjvdksaltbmu 0 0 0
Sample Output
the_quick_brown_fox abcklmxyz the_quick_brown_fox_jumped_over_the_lazy_dog ajsbktcludmvSubmit