---
# System prepended metadata

title: 2021年度 情報基礎B 第10回<br>アカデミック・スキルII 変数と四則演算
tags: [' lecture', ICL_B-2021]

---

---
lang: ja
tags: ICL_B-2021, lecture
---

# 2021年度 情報基礎B 第10回<br>アカデミック・スキルII 変数と四則演算
[ポータルへ戻る](https://hackmd.io/@nagae/ICL_B_2021)
<div style="text-align: center">

このページへは以下のQRコードまたはURLからアクセスできます：
![](https://i.imgur.com/WABYtwn.png =200x)
<code style="font-size:20pt">https://hackmd.io/@nagae/ICL_B_2021-Ch10</code>

</div>

# 今回のやることリスト
1. ノートブック「Colabプログラム入門(1)」を実行しながら閲覧する
2. 課題5 「三百八十五演算とRSA暗号」

# 1. ノートブック「Colabプログラム入門(1)」を実行しながら閲覧する
1. Classroom＞授業＞参考資料＞Colabプログラム入門(1)にアクセス
2. Colaboratory で開いて順に実行してみる．

  おまけ「[RSA暗号がうまくいくわけ](https://manabitimes.jp/math/1146)」
# 2. 課題5 「三百八十五減算とRSA暗号」
## 課題5-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 |

## 課題5-2「RSA暗号」
$N$が少なくとも$132000$程度となるように，資料とは異なる素数 $p, q$を用いて，自分で公開鍵$(N, r)$と秘密鍵$s$を作成せよ． 
素数については，以下のサイトに掲載されているものを使ってよい：
https://www.mathsisfun.com/numbers/prime-numbers-to-10k.html

求めた公開鍵と秘密鍵を用いて，以下の漢詩の暗号化(漢字→暗号コード)と複合化(暗号コード→漢字)を行え：

> 国破山河在  
> 城春草木深  
> 感時花濺涙  
> 恨別鳥驚心

## 提出方法・提出期限
課題5に添付した Colab ノートブックのファイル名を
学籍番号_氏名-課題5.ipynb
とした上で，内容を編集・保存し，**「提出」ボタンを押す**．

<div style="font-weight:bold; color:red">締め切り：7月14日(水)23:59</div> 

## 評価基準
### 必須項目(守られていない場合は減点)
- ファイル名，氏名，日付が適切に修正されていること．
- 課題5-1：
    - 適切に動作するプログラムができているか．
    - 課題に提示されたケースについて正しい解を出力できるか．
- 課題5-2：
    - 素数$p, q$に対して，公開鍵$(N, r)$と秘密鍵$s$が適切に求められているか，つまり，以下が満たされているか．
        - $N=pq$.
        - ~~$N$と $r$ の最大公約数が1．~~ $M$と $r$ の最大公約数が1． <span style="color:red; font-weight:bold">←6/28訂正しました!!</span>
        - $rs \mod (p-1)(q-1)=1$.
    - 課題に提示された漢詩について，適切に暗号化できるか．
    - 暗号コードから元の漢詩が複合化できるか．
### 加点要素
- 課題5-1:
    - 課題に提示されていないケースについても確認している場合は加点．
    - 第10回講義で紹介していない関数・機能を用いている場合は加点(ただし，その機能・効果についてコメントが記載されている場合に限る)．
- 課題5-2:
    - 素数表にない(i.e. 1,000,000を超える)ような素数を調べて用いている場合は加点．
    - 第10回講義で紹介していない関数・機能を用いている場合は加点(ただし，その機能・効果についてコメントが記載されている場合に限る)．
