情報領域演習第一:P演習

電気通信大学情報理工学域I類 (情報系)
2023年度後学期


[一覧に戻る]


課題G4

問題

シーザー暗号は次のような暗号方式である.

暗号化すべき文字列は平文 (ひらぶん) と呼ばれる. シーザー暗号における暗号化において,与えられるものは平文と,鍵と呼ばれる整数である. 鍵を n とする. 暗号化を行うとき,平文の各文字を別の文字に置き換えるが,それはアルファベットにおいてその文字のn個だけ後ろにある文字とする.ただし,アルファベットの末尾に到達したら,先頭に戻り循環して数える.

例えば,平文が「ELEPHANT」であり,鍵が「2」である場合,「ELEPHANT」の各文字を2だけずらし,暗号文として「GNGRJCPV」が得られる.アルファベットにおいて2個だけ後ろにずらす操作は次の図のようにして理解できる.

平文と鍵を入力として,それをシーザー暗号に基づいて暗号化した結果を出力するCプログラムを作成せよ.

入力仕様

出力仕様

ヒント

英字アルファベットの大文字について,その文字コードは連続している. 'A'の文字コードが最も小さく,'B', 'C', ... の順に大きくなり,最後が 'Z' である.

作成したプログラムのファイル名を g4.c としたときの実行例
% gcc g4.c
% ./a.out ELEPHANT 2
GNGRJCPV
% ./a.out HELLO 20
BYFFI
% ./a.out BUTTER 25
ATSSDQ
% ./a.out MICKEY 9
VRLTNH

提出法

CEDにて,プログラムを作成したディレクトリで以下を実行せよ.
% ~ta001026/enshu1p/checker_g4.rb ファイル名
「Submission successfully completed.」と表示されれば,提出が完了したことになる.


[一覧に戻る]