पृष्ठभूमि
एक सौ-तेरह साल पहले, शौकिया क्रिप्टोग्राफर फ़ेलिक्स डेलास्टेल ने चार-वर्ग सिफर पर एक काम किया था , जो एक पचाने वाला प्रतिस्थापन संचय है जो 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 में प्रिंट करना चुनते हैं, तो आप केवल सिफरटेक्स्ट के अक्षर और (वैकल्पिक रूप से) एक अनुगामी न्यूलाइन प्रिंट कर सकते हैं।
मानक कोड-गोल्फ नियम लागू होते हैं।
परीक्षण के मामलों
सभी परीक्षण मामलों में, पहले चार तार पढ़ने के क्रम में मुख्य वर्गों के अनुरूप होते हैं और अंतिम इनपुट स्ट्रिंग के समतल तक होते हैं।
इनपुट
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.