File tree 1 file changed +29
-6
lines changed
1 file changed +29
-6
lines changed Original file line number Diff line number Diff line change 1
1
[課題番号]1
2
-
3
2
[学籍番号]24115172
4
-
5
3
[氏名]Yoon SeungYong
6
-
7
4
[添付ファイル等の説明]
8
-
5
+ cipher.c : 演習B
9
6
[プログラムの説明]
7
+ gitパブリックレポジトリ
8
+ https://github.com/forcom/prog-class.git
10
9
11
- [考察]工夫した点、難しかった点、新しく発見したこと、できなかったこと、開発プロセスなど。
10
+ このプログラムは入力した文字列を暗号化・復号するプログラムである。
11
+ シーザー暗号を応用したものでキーを使った暗号の中で一番簡単なものだ。
12
12
13
- [自己評価](A~Dで。Dが合格最低ライン、Bが標準的)
13
+ コンパイル方法は標準C言語のコンパイラでコンパイルすればよい。
14
14
15
+ プログラムの実行はプログラムに引数を入力することで行う。
16
+ 引数の最初の部分はeもしくはdが置ける。eは文字列を暗号化するものでdは暗号化された文字列を復号するオプションだ。
17
+ 引数の2番目はキーであり、26の倍数ではなくINT_MAXを超えない自然数で指定する。
18
+ 引数の最後は文字列であり、半角英語の小文字と大文字だけのものとして指定する。ホワイトスペース、記号などは入力できない。
19
+
20
+ 出力結果は暗号化もしくは復号された文字列が標準出力で表示される。
21
+
22
+ 例)
23
+ cse$ ./cipher e 12 Hello
24
+ tQXXA
25
+ cse$ ./cipher d 12 tQXXA
26
+ Hello
27
+
28
+ [考察]工夫した点、難しかった点、新しく発見したこと、できなかったこと、開発プロセスなど。
29
+ シーザー暗号はキーが3で固定されている文字置換方式の古典的な暗号である。
30
+ この課題においてはキーを変えられることによって少し進歩された暗号になるようにした。
31
+ また英文字には小文字と大文字があるので、暗号化するとき小文字をおおもじに、大文字を小文字に変えることによって平文の推測を難しくした。
32
+ ややこしかった点はキーが26を超えたとき復号に支障を与える可能性がある点であった。
33
+ ところがこのプログラムにとって26以上の数は意味がないものであるためキーを26に割ったあまりとして変更することで解決した。
34
+ 開発プロセスはキーを使った暗号化の過程を考えそれをコードに具現化し、入力部を作成して完成した。
35
+ コードの作成が終わった後にこのシステムにgitが設置されていることを発見した。
36
+ それでgitを設定し、githubにレポジトリを作って、コミットをした。
37
+ [自己評価]A
15
38
[教えてもらった人の学籍番号、氏名](教えてもらうことを推奨しているわけではありません。類似のレポートと判断されないための自己申告と捉えてください)
You can’t perform that action at this time.
0 commit comments