出典:令和元年度 ITパスポート試験(IP) 秋期分 問70
予備知識
| 用語 | 意味 |
|---|---|
| 文字列 | 文字の集まり |
| 暗号化 | ルールを知っている人しか意味を読み取れないようにするために、特定のルールに従って、データを ぐちゃぐちゃにすること |
問題
| 問題文 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
大文字の英字から成る文字列の暗号化を考える。暗号化の手順と例は次のとおりである。この手順で暗号化した結果が“EGE”であるとき,元の文字列はどれか。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ピヨ意訳:暗号化の手順と例が以下の表の通りだよ。とある文字列を暗号化したら、結果が「EGE」だったよ。「とある文字列」は何?
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 解答選択肢 | |
|---|---|
| ア | BED |
| ピヨ意訳:- | |
| イ | DEB |
| ピヨ意訳:- | |
| ウ | FIH |
| ピヨ意訳:- | |
| エ | HIF |
| ピヨ意訳:- | |

正解
| 正解 | |
|---|---|
| イ | DEB |
| ピヨ意訳:- | |
ピヨピヨ解説
暗号を元に戻せという問題ですね。
暗号化の手順が
1.表から英字を文字番号に変換する。
2.1文字目に1,2文字目に2,n文字目にnを加算する。
3.26で割った余りを新たな文字番号とする。
4.表から文字番号を英字に変換する。
なので、これを逆にやっていけば戻ります。
最初にやるのは「4.表から文字番号を英字に変換する。」の逆です。
できあがった暗号が
EGE
なので、表をもとにして英字を文字番号に変換すると
4、6、4
になります。
次にやるのは「3.26で割った余りを新たな文字番号とする。」の逆です。
これは少し厄介ですね。
1文字ずつ考えていきましょう。
1文字目は「4」です。
この「4」が26で割った余りなので、割る前の値は
4、30、56、82……
のどれかだったということになります。
それぞれの数字を割ると「0余り4」「1余り4」「2余り4」「3余り4」……となりますからね。
ちなみに、今の時点では「この数字だね!」と1つに絞ることはできません。
そこは割り切って先に進みましょう。
1文字目と同じように考えると、2文字目は「6」なので
6、32、58、84……
のどれかだったということになります。
同様に、3文字目は「4」なので
4、30、56、82……
のどれかだったということになります。
次にやるのは「2.1文字目に1,2文字目に2,n文字目にnを加算する。」の逆です。
まずは1文字目の数字から「1」を引いてみましょう。
「1」を引く前の値が
4、30、56、82……
のどれかだったので、引いた後は
3、29、55、81……
のどれかになります。
同様に2文字目の数字から「2」を引くと、引く前の値が
6、32、58、84……
のどれかだったので、引いた後は
4、30、56、82……
のどれかになります。
同様に3文字目の数字から「3」を引くと、引く前の値が
4、30、56、82……
のどれかだったので、引いた後は
1、27、53、79……
のどれかになります。
さぁ、いよいよ仕上げです。
最後にやるのは「1.表から英字を文字番号に変換する。」の逆です。
まず1文字目の数字は
3、29、55、81……
のどれかでした。
このうち、表に文字番号として載っているのは「3」だけです。
よって、1文字目の元の英字は、文字番号「3」に対応する「D」だったと分かります。
暗号化した際には
1.「D」を「3」に変換
2.「3」に「1」を足して「4」になる
3.「4」を26で割った余りは「4」
4.「4」を「E」に変換
の流れだったようですね。
次に、2文字目の数字は
4、30、56、82……
のどれかでした。
このうち、表に文字番号として載っているのは「4」だけです。
よって、2文字目の元の英字は、文字番号「4」に対応する「E」だったと分かります。
暗号化した際には
1.「E」を「4」に変換
2.「4」に「2」を足して「6」になる
3.「6」を26で割った余りは「6」
4.「6」を「G」に変換
の流れだったようですね。
最後に、3文字目の数字は
1、27、53、79……
のどれかでした。
このうち、表に文字番号として載っているのは「1」だけです。
よって、3文字目の元の英字は、文字番号「1」に対応する「B」だったと分かります。
暗号化した際には
1.「B」を「1」に変換
2.「1」に「3」を足して「4」になる
3.「4」を26で割った余りは「4」
4.「4」を「E」に変換
の流れだったようですね。
ということで元の文字列は「DEB」です。
「イ:DEB」が正解です。






