--- lang: ja tags: ICL_B_2022, lecture --- # 2022年度 情報基礎B 第07回<br>サイエンス・スキルI 計算機による問題解決の基礎(1): Python初級プログラミング(四則演算と変数) [ポータルへ戻る](https://hackmd.io/@nagae/ICL_B_2022) <div style="text-align: center"> このページへは以下のQRコードまたはURLからアクセスできます:  <code style="font-size:20pt">https://hackmd.io/@nagae/ICL_B_2022-Ch07</code> </div> # 今回のやることリスト 1. ノートブック「Colabプログラム入門(1)」を実行しながら閲覧する 2. 課題5 「三百八十五演算とRSA暗号」 # 1. ノートブック「Colabプログラム入門(1)」を実行しながら閲覧する 1. Classroom>授業>参考資料>Colabプログラム入門(1)にアクセス 2. Colaboratory で開いて順に実行してみる. おまけ「[RSA暗号がうまくいくわけ](https://manabitimes.jp/math/1146)」 # 2. 課題3 「三百八十五減算とRSA暗号」 ## 課題3-1「三百八十五減算」 百五減算より大きな数を扱うために,0以上385未満の任意の数$x$に対して, - $x$を5で割った余り$a$ - $x$を7で割った余り$b$ - $x$を11で割った余り$c$ から$x$を求める式を求めよ.可能であれば,$x$を求める式について「なぜこの式で計算できるのか」を解説するコメントを記述せよ.コードセル内のコメントとして記述しても,テキストセル内に記載してもよい. 求めた式を用いて,以下のそれぞれのケースに対して,正しくもとの数$x$が復号できるか確認せよ. |a | b | c | x | |---|----|---|---| |2 | 6 | 5 | 27 | |3 | 2 | 10 | 373 | |4 | 2 | 1 | 254 | ## 課題3-2「RSA暗号」 $N$が少なくとも$132000$程度となるように,資料とは異なる素数 $p, q$を用いて,自分で公開鍵$(N, r)$と秘密鍵$s$を作成せよ. 素数については,以下のサイトに掲載されているものを使ってよい: https://www.mathsisfun.com/numbers/prime-numbers-to-10k.html 求めた公開鍵と秘密鍵を用いて,以下の漢詩の暗号化(漢字→暗号コード)と複合化(暗号コード→漢字)を行え: > 国破山河在 > 城春草木深 > 感時花濺涙 > 恨別鳥驚心 ## 提出方法・提出期限 課題3に添付した Colab ノートブックのファイル名を 学籍番号_氏名-課題3.ipynb とした上で,内容を編集・保存し,**「提出」ボタンを押す**. <div style="font-weight:bold; color:red">締め切り:6月15日(水)23:59</div> ## 評価基準 ### 必須項目(守られていない場合は減点) - ファイル名,氏名,日付が適切に修正されていること. - 課題3-1: - 適切に動作するプログラムができているか. - 課題に提示されたケースについて正しい解を出力できるか. - 課題3-2: - 素数$p, q$に対して,公開鍵$(N, r)$と秘密鍵$s$が適切に求められているか,つまり,以下が満たされているか. - $N=pq$. - $M$と$r$の最大公約数が1. - $rs \mod (p-1)(q-1)=1$. - 課題に提示された漢詩について,適切に暗号化できるか. - 暗号コードから元の漢詩が複合化できるか. ### 加点要素 - 課題3-1: - 課題に提示されていないケースについても確認している場合は加点. - 第7回講義で紹介していない関数・機能を用いている場合は加点(ただし,その機能・効果についてコメントが記載されている場合に限る). - 課題3-2: - 素数表にない(i.e. 1,000,000を超える)ような素数を調べて用いている場合は加点. - 第7回講義で紹介していない関数・機能を用いている場合は加点(ただし,その機能・効果についてコメントが記載されている場合に限る).
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up