পটভূমি
এক-ত্রিশ বছর আগে, অপেশাদার ক্রিপ্টোগ্রাফার ফলিক্স ডেলাস্টেল তাঁর চারটি বর্গক্ষেত্রের সাইফারে প্রকাশ করেছিলেন , এটি একটি ডিজিট্রাফিক প্রতিস্থাপনের সাইফার যা 25 অক্ষরের বর্ণমালার দুটি অনুমোদনকে কী হিসাবে স্বীকার করে এবং সেই চিঠিগুলির সমন্বয়ে বার্তাগুলি এনকোড করে।
বেশিরভাগ কলম এবং কাগজের সাইফারের মতো, চার-বর্গাকার সাইফারের আজকের কোনও ক্রিপ্টোগ্রাফিক মান নেই তবে আবিষ্কারের সময় এটির মনোগ্রাফিক অংশগুলির তুলনায় এটি একটি গুরুত্বপূর্ণ সুবিধা পেয়েছিল।
একশো ত্রিশ বছর পরে, অ্যালিস ডেলাস্টেল বর্ণমালার আকার এবং কীগুলির সংখ্যা বাড়িয়ে চার বর্গাকার সাইফারটিকে উন্নত করার সিদ্ধান্ত নিয়েছে। [হদফ ঘ]
কী সেটআপ
বর্ণমালাটিতে নিম্নলিখিত বর্ণগুলি রয়েছে (স্থান দিয়ে শুরু):
!"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
একটি পাস বাক্যাংশ দেওয়া, আমরা নীচে এই বর্ণমালা একটি ক্রমবিন্যাস নির্মাণ:
প্রতিটি চরিত্রের প্রথম উপস্থিতি রাখুন।
বর্ণমালা থেকে অব্যবহৃত অক্ষরগুলি তাদের প্রাকৃতিক ক্রমে যুক্ত করুন।
চারটি পাসের বাক্যাংশগুলিকে চারটি কীতে পরিণত করার পরে, আমরা প্রতিটি কীটি পাশের দৈর্ঘ্য 7 এর স্কোয়ারে বিভক্ত করি এবং চারটি ফলক স্কোয়ারটি সাজাই যাতে তারা একটি বড় বর্গ গঠন করে।
উদাহরণস্বরূপ, যদি পাস বাক্যাংশ ছিল
PROGRAMMING PUZZLES & CODE GOLF
POPULARITY CONTESTS & CODE BOWLING
CORRECT HORSE BATTERY STAPLE
DON'T TELL EVE!!!
কীগুলি এইভাবে তৈরি এবং ব্যবস্থা করা হবে:
PROGAMI POULARI
N UZLES TY CNES
&CDF!"# &DBWG!"
$%'()*+ #$%'()*
,-./:;< +,-./:;
=>?@BHJ <=>?@FH
KQTVWXY JKMQVXZ
CORET H DON'T E
SBAYPL! LV!"#$%
"#$%&'( &()*+,-
)*+,-./ ./:;<=>
:;<=>?@ ?@ABCFG
DFGIJKM HIJKMPQ
NQUVWXZ RSUWXYZ
জোড়া লাগানো
যেমন একটি সরল পাঠ্য বার্তা দেওয়া
ALICE LOVES BOB.
এর দৈর্ঘ্যকে আরও সমান করতে আমরা 0 বা 1 স্পেস যুক্ত করি এবং এটিকে অক্ষরের জোড়ায় বিভক্ত করি:
["AL" "IC" "E " "LO" "VE" "S " "BO" "B."]
প্রতিটি চরিত্রের জোড়ার জন্য, আমরা প্রথম বর্গক্ষেত্রের প্রথম অক্ষর (পাঠের ক্রম) এবং চতুর্থতে দ্বিতীয়টি সনাক্ত করি।
তারপরে, আমরা বাকী স্কোয়ারগুলিতে অক্ষরগুলি বেছে নিই যে চারটি নির্বাচিত অক্ষর একটি আয়তক্ষেত্র গঠন করে যার পার্শ্বগুলি স্কোয়ারের পাশের সমান্তরাল হয়।
অবশেষে, আমরা দ্বিতীয় এবং তৃতীয় বর্গের নির্বাচিত অক্ষর দ্বারা অক্ষর জোড়াটি প্রতিস্থাপন করি।
আমাদের উদাহরণস্বরূপ স্ট্রিংয়ের জন্য, এটি ফলন করে
["PP" "A@" "E " "YT" "ZE" "EH" "=T" "<-"]
নিম্নলিখিত সিফেরটেক্সট ফলাফল:
PPA@E YTZEEH=T<-
কার্য
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা চারটি পাস বাক্যাংশ এবং একটি প্লেইন টেক্সট গ্রহণ করে, এটি এনক্রিপ্ট করার জন্য চার-বর্গ সাইবারের উপরের রূপটি ব্যবহার করে এবং ফলস্বরূপ সিফারটেক্সট প্রদান করে।
বিবরণ:
পাঁচটি ইনপুট স্ট্রিং সম্পূর্ণ বর্ণিত বর্ণমালার অক্ষর নিয়ে গঠিত।
পাঁচটি ইনপুট স্ট্রিং যে কোনও ক্রমতে পড়তে পারে, যেমন, একটি একক স্ট্রিং নিউলাইন দ্বারা বা পাঁচটি স্ট্রিংয়ের অ্যারে হিসাবে বিস্মৃত হয়।
আপনি ধরে নিতে পারেন যে কোনও স্ট্রিং খালি নেই।
আউটপুট অবশ্যই একটি একক স্ট্রিং হতে হবে।
আপনি যদি আউটপুটটি STDOUT এ মুদ্রণ করতে চান, আপনি কেবল সিফারেক্সটেক্সের অক্ষর এবং (allyচ্ছিকভাবে) একটি ট্রেলিং নিউলাইন মুদ্রণ করতে পারেন।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।
পরীক্ষার মামলা
সমস্ত পরীক্ষার ক্ষেত্রে, প্রথম চারটি স্ট্রিংগুলি পড়ার ক্রমে মূল স্কোয়ারের সাথে এবং শেষ ইনপুট স্ট্রিং টেক্সটটির সাথে সামঞ্জস্য করে।
ইনপুট
PROGRAMMING PUZZLES & CODE GOLF
POPULARITY CONTESTS & CODE BOWLING
CORRECT HORSE BATTERY STAPLE
DON'T TELL EVE!!!
ALICE LOVES BOB.
আউটপুট
PPA@E YTZEEH=T<-
ইনপুট
!"#$%&'()*+,-./:;<=>
!"#$%&'()*+,-./:;<=>?@ABCDE
!"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKL
!"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRS
HELLO, WORLD!
আউটপুট
LALLR)#TROKE !
ইনপুট
,'K AB-Q=?@("W$>XM).C#<I:G!OLP*+;SZJTU%NED/&VFHRY
:,-D$C<SU=IYHFVA;! JG/M&L+WT%#.Q@(N*R")EZOBKX?'>P
L()JX,BND?Z<>P*FU%=O@&KIC+A!Y:;$SWHR.EMG'/T"QV #-
<->CI")AP Q:+U;O/F(KH&ER!MW?X'VJLZ#.$,BSGN@TD%*Y=
SPIN THE PPCG WHEEL OF BLAME!
আউটপুট
#>TE,VK+,ZQ(&<F@RA.NL@DM%NAC&>
ইনপুট
& %(,-#)$@?/=>'*"<:;!.+
=/$- ?;',@#!(&<")%.:>+*
&%-/<?.;$'#:=!( ,>"+*)@
=,<-*?#.'@/;>%!+:(& ")$
HNRA#JX$H %JAV+"GTS,
আউটপুট
GOOD LUCK, HAVE FUN.