Mircea şi Vasilică vor să-şi trimită mesaje pe care alţii să nu le înţeleagă. Au citit ei despre spioni şi modalităţi de a scrie mesaje şi, în final, au imaginat un mod de criptare a unui mesaj care foloseşte “cuvânt cheie”.
Alegându-şi un cuvânt cheie format numai din litere distincte, ei numără literele acestuia şi împart mesajul în grupe de lungime egală cu numărul de litere ale cuvântului cheie, şi le aşează una sub alta.
Desigur, se poate întâmpla ca ultima grupă să fie incompletă, aşa că o completează cu spaţii.
Apoi numerotează literele cuvântului cheie în ordinea apariţiei lor în alfabetul englez. În final, rescriu mesajul astfel: coloana de sub litera numerotată cu 1 1 1 , urmată de coloana de sub litera numerotată cu 2 2 2 , etc. înlocuind totodată şi spaţiile cu caracterul *
(asterisc).
Exemplu:
cuvântul cheie: criptam
mesaj de criptat: Incercam sa lucram cu coduri si criptari.
cuvântul cheie criptam
are 7 7 7 litere
numerotare: 2635714 2635714 2635714 , deoarece avem în ordine
a b c d e f g h i j k l m n o p q r s t u v w x z y c r i p t a m ↓ ↓ c r i p t a m c r i p t a m ↓ c r i p t a m ↓ c r i p t a m ↓ c r i p t a m ↓ ↓ c r i p t a m 1 2 3 4 5 6 7 \begin{CD}
{\huge a} @. b @. {\huge c} @. d @. e @. f @. g @. h @. { \huge i} @. j @. k @. l @. {\huge m} @. n @. o @. {\huge p} @. \ \ \ \ q \ \ @. {\huge r} @. s @. {\huge t} @. u @. v @. w @. x @. z @. y \\
@V{\small cript}{\LARGE a}{\small m}VV @. @VV{\LARGE c}{\small riptam}V @. @. @. @. @. @V{\small cr}{\LARGE i}{\small ptam} VV @. @. @. @V{\small cripta}{\LARGE m}VV @. @. @V{ \small cri}{\LARGE p }{\small tam }VV @. @V{\small c}{\LARGE r}{\small iptam}VV @. @VV{\small crip}{\LARGE t}{\small am}V @. @. @.\\
1 @. @. 2 @. @. @. @. @. @. 3 @. @. @. @. 4 @. @. @. 5 @. @. 6 @. @. 7 @. @. @. @. @. @. \\
@. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @.\\
\end{CD}
a cr i pt a m ↓ ⏐ 1 b c ↓ ⏐ c r i pt am 2 d e f g h i cr i pt am ↓ ⏐ 3 j k l m cr i pt a m ↓ ⏐ 4 n o p cr i p t am ↓ ⏐ 5 q r c r i pt am ↓ ⏐ 6 s t ↓ ⏐ cr i p t am 7 u v w x z y
împărţire în grupe: Incerca
, m sa lu
, cram cu
, coduri
, si cri
, ptari.
→ \rightarrow → Incerca
, m*sa*lu
, cram*cu
, coduri
, *si*cri
, ptari.*
codificare:
2 6 3 5 7 1 4 I n c e r c a m ∗ s a ∗ l u c r a m ∗ c u ∗ c o d u r i ∗ s i ∗ c r i p t a r i . ∗ → 2 I m c ∗ ∗ p 6 n ∗ r c s t 3 c s a o i a 5 e a m d ∗ r 7 r ∗ ∗ u c i 1 c l c r r . 4 a u u i i ∗ → 1 c l c r r . 2 I m c ∗ ∗ p 3 c s a o i a 4 a u u i i ∗ 5 e a m d ∗ r 6 n ∗ r c s t 7 r ∗ ∗ u c i → clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci
\begin{array}{}
\begin{array}{}
2 &6 &3 &5 &7 &1 &4 \\
\end{array}
\\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
I &n &c &e &r &c &a \\
\hline
\end{array}
\\ \\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
m &* &s &a &* &l &u \\
\hline
\end{array}
\\ \\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
c &r &a &m &* &c &u \\
\hline
\end{array}
\\ \\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
* &c &o &d &u &r &i \\
\hline
\end{array}
\\ \\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
* &s &i &* &c &r &i \\
\hline
\end{array}
\\ \\
\begin{array}{|c|c|c|c|c|c|c|}
\hline
p &t &a &r &i &. &* \\
\hline
\end{array}
\end{array}
\ \ \ \
\rightarrow
\ \ \ \
\begin{array}{}
\begin{array}{}
\begin{array}{}
2 \\
\begin{array}{|c|}
\hline
I \\
\hline
m \\
\hline
c \\
\hline
* \\
\hline
* \\
\hline
p \\
\hline
\end{array}
\end{array}
\ \ \ \
\begin{array}{}
6 \\
\begin{array}{|c|}
\hline
n \\
\hline
* \\
\hline
r \\
\hline
c \\
\hline
s \\
\hline
t \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
3 \\
\begin{array}{|c|}
\hline
c \\
\hline
s \\
\hline
a \\
\hline
o \\
\hline
i \\
\hline
a \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
5 \\
\begin{array}{|c|}
\hline
e \\
\hline
a \\
\hline
m \\
\hline
d \\
\hline
* \\
\hline
r \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
7 \\
\begin{array}{|c|}
\hline
r \\
\hline
* \\
\hline
* \\
\hline
u \\
\hline
c \\
\hline
i \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
1 \\
\begin{array}{|c|}
\hline
c \\
\hline
l \\
\hline
c \\
\hline
r \\
\hline
r \\
\hline
. \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
4 \\
\begin{array}{|c|}
\hline
a \\
\hline
u \\
\hline
u \\
\hline
i \\
\hline
i \\
\hline
* \\
\hline
\end{array}
\end{array}
\end{array}
\end{array}
\ \ \ \
\rightarrow
\\
\begin{array}{}
\\
\begin{array}{}
\ \
\begin{array}{}
1 \\
\begin{array}{|c|}
\hline
c \\
\hline
l \\
\hline
c \\
\hline
r \\
\hline
r \\
\hline
. \\
\hline
\end{array}
\end{array}
\begin{array}{}
2 \\
\begin{array}{|c|}
\hline
I \\
\hline
m \\
\hline
c \\
\hline
* \\
\hline
* \\
\hline
p \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
3 \\
\begin{array}{|c|}
\hline
c \\
\hline
s \\
\hline
a \\
\hline
o \\
\hline
i \\
\hline
a \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
4 \\
\begin{array}{|c|}
\hline
a \\
\hline
u \\
\hline
u \\
\hline
i \\
\hline
i \\
\hline
* \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
5 \\
\begin{array}{|c|}
\hline
e \\
\hline
a \\
\hline
m \\
\hline
d \\
\hline
* \\
\hline
r \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
6 \\
\begin{array}{|c|}
\hline
n \\
\hline
* \\
\hline
r \\
\hline
c \\
\hline
s \\
\hline
t \\
\hline
\end{array}
\end{array}
\ \
\begin{array}{}
7 \\
\begin{array}{|c|}
\hline
r \\
\hline
* \\
\hline
* \\
\hline
u \\
\hline
c \\
\hline
i \\
\hline
\end{array}
\end{array}
\\
\end{array}
\\
\\
\end{array}
\ \ \ \
\rightarrow
\ \ \ \
\text{clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci}
2 6 3 5 7 1 4 I n c e r c a m ∗ s a ∗ l u c r a m ∗ c u ∗ c o d u r i ∗ s i ∗ c r i p t a r i . ∗ → 2 I m c ∗ ∗ p 6 n ∗ r c s t 3 c s a o i a 5 e a m d ∗ r 7 r ∗ ∗ u c i 1 c l c r r . 4 a u u i i ∗ → 1 c l c r r . 2 I m c ∗ ∗ p 3 c s a o i a 4 a u u i i ∗ 5 e a m d ∗ r 6 n ∗ r c s t 7 r ∗ ∗ u c i → clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci Cerință
Fiind date un cuvânt cheie şi un mesaj criptat, decodificaţi mesajul trimis de Mircea pentru Vasilică.
Date de intrare
Fişierul de intrare criptare.in
conţine pe prima linie mesajul criptat iar pe linia a doua cuvântul cheie.
Date de ieșire
Fişierul de intrare criptare.out
conţine pe prima linie mesajul decriptat.
Restricții și precizări
lungimea mesajului este de minim 20 20 20 si maxim 1 000 1 \ 000 1 000 caractere
cuvântul cheie are minim 5 5 5 şi maxim 20 20 20 de caractere
cuvântul cheie conţine numai litere mici ale alfabetului
Exemplu
criptare.in
clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci
criptam
criptare.out
Incercam sa lucram cu coduri si criptari.