共通鍵(AES)と秘密鍵(RSA)の違い

暗号化方式の説明についてお悩みである、という話を聞きました。
ふと、私ならどう説明するのか、とメモしておきます。


  1. 共通鍵方式と公開鍵/秘密鍵方式の違い(細かい話)
  2. 例えるならば・・・
  3. 暗号化の説明(簡素化)

1.共通鍵方式と公開鍵/秘密鍵方式の違い

とても簡単に説明しているサイトを見つけましたので、表を参考に読んでいただくのが一番よろしいかと。

(AESとRSAの比較)
AES/RSA
【図解】初心者も分かる”公開鍵/秘密鍵”の仕組み~公開鍵暗号方式の身近で具体的な利用例やメリット〜 より


2.例えるならば・・・

専門的なことはさておき、授業では、どう伝えているかというと。
私は南京錠とダイヤルロックに例えて説明しています。

※昨今は宅配ボックスで例えるのが面白いかなと思っています。

荷物を受け渡す時に、どんな鍵でフタを閉じる(暗号化する)のか?
メリットデメリットを考えてみよう、と。

共通鍵方式

まずは共通鍵方式です。
いわゆるダイヤルロックに例えています。
鍵となる「番号」を共有して、使いまわす。

メリットとしては、送る人、受け取る人、双方からの開け閉めが容易です。速度も速いです。
デメリットとしては、「番号が漏れる」と、大変危険です。 基本的に1対1など、少数相手にしか使えません。
※大量に配布すると、番号漏れの可能性が高まる。
※番号を教えるときには、慎重に。

公開鍵方式

公開鍵/秘密鍵方式です。
いわゆる、南京錠タイプ。

「錠」の部分だけを相手に渡し、「鍵」は自分だけが持ちます。

メリットとしては、「錠」を大量にコピーして、配れます(公開)
デメリットとしては、送り人は「鍵を閉める」ことしかできません。(ロックしかできない。鍵がない。)
慎重に鍵を閉めねばなりませんので、速度は遅くなります。※例えです。厳密には大きく違います


3.暗号化の説明(簡素化)

RSA暗号の簡単な説明です。
※社会と情報では、シーザー暗号レベルしかやりません。
※情報の科学と情報テクノロジーで扱っています。

暗号とは、「第三者が通信文を見ても特別な知識なしでは読めないように変換」したものです。(wikipediaより)
正確な定義はさておいて、これを「素数の性質」と「その計算が難しい」ことを利用して実装しているのだと説明します。

たとえば、「15」という数字があります。 これは 3*5という素数の掛算によって導かれる数字です。
素数同士の積(半素数)では、その性質上、因数が限られています。(3と5の組み合わせしかない)

つまり、これを鍵とするのです。
「15という南京錠」を配っておき、これを開けるには、「3*5と書かれた鍵」が必要だとするのです。
15=3*5が成立したときに、開錠できるようにします。

・「15」ならば簡単に解けてしまうんじゃない?
おっしゃる通りです。
ここから先は、PCの性能と桁数の追いかけっこが始まります。

15は簡単すぎるけども、ならば「175146184831」はどうでしょうか?
素因数分解するにしても、結構な時間がかかりそうですよね・・・?
まさか、2,3,5,7,,,と続けていくわけにもいきません。
(※204749*855419  この桁数でも、PCなら一瞬で解読します)

このように、桁数を大きくすればするほど、計算が難しくなります。
コンピュータ相手でも、十分に時間を稼げる桁数まで増やしてしまえばそれでよい、という考えですね。
実際にはもう少し、複雑にするための工夫がなされておりますが、概要としてはこれで十分かと思います。


とまあ、こんな感じで、大体10分~15分位を説明の時間に割いています。
何かの参考になれば。

呟き色々2

全高情研の和歌山大会に内定しました。
ので、発表原稿をA4で2p分書きつつ

・・・車のナビシステムを弄っていました。
私はmazdaが大好きなのですが、マツダ車に搭載されている「マツダコネクト」が大変弄りがいのあるナビシステムなんですね。
壁紙を変更するにもsshでscpしなきゃ変更出来ないし、そもそもsshするにもアレコレ大変。
(usbメモリをマウントして、上書きしても良い)
シリアル接続するにも、コネクタが無いもんだから、端子にジャンパーピン繋げてusbに変換して( ^ω^)・・・

気が向いたら、趣味編の記事もアップしていきたいなあと思いつつ
3年生の進路対応に追われる日々です。

呟き色々。

お久しぶりです。生きております。
最近は別口のWeb更新に追われ、コチラを全く更新できておらず。

例によって、8月前後の全高情研付近に向け、更新頻度が偏りそうです。(==;


・第12回全国高等学校情報教育研究会全国大会(和歌山大会)分科会発表者に内定しました。
//原稿に追われています。今のところ逃げ切っています。(No着手)

・LINEトラブルに対する学年集会での指導を行います。
※なお、実施は明日。この更新はちょっぴり逃避。余力があれば録画して反省会します。

//今までは授業内、もしくは全校集会だったので、学年規模だと何が適しているかを模索しています。全校集会規模で作成した物を、もう少しポイント絞って深くやれればな、と。
//学年団から、ココの指導をしてくれ、などの細かい要望はやはり難しいようです(==。
//ワークシートをA4カラー両面で作りたいのですが、予算が厳しいと。自宅で印刷Now…
(教育に金をかけてくれ、ほんと。)

・勤務校に他教科のスペシャリストが転任されました。(重要)
とても凄く学ぶことが多いです。
授業に対する姿勢や、教材研究に関する内容など。
お話しするだけでモチベーションがあがります。

が、しかし。悲しいかな。そのお方の「持ち味」が発揮されるかというと、ちょっと環境とのミスマッチがあって。凄く、もったいないなあ、と。私が今の職場で勤務出来るあと1~2年の間に、せめて少しでも多く、その方とのディスカッションや今まで得た物、そしてクロスカリキュラムの題材となるような、そんな知見を得られたらと思います。


定期的に、強く思うのですが。
何故、教員が、授業に全力を挙げることが出来ないんでしょうか。
義務ならまあ、わからないことも、ないんですが。

高等学校の教員っていうのは教科のスペシャリストであるべきだと思うんですよね。
担当する教科、科目、授業のスペシャリストでありたいと思うわけです。
少なくとも、「スペシャル」を追い求める姿勢こそが重要なのでは無いか、と。

何でそれが、こう、蔑ろにされる風潮があるのかなあ、と。

私は「情報」の先生でありたいし、他の先生にも、「国語」の先生だとか
「数学」の先生だとか、「理科」の以下略
(※特に順番や教科に意図はありません。他教科の先生がいたら申し訳ありません)

なんていうか、これからの時代、教員こそ「特化型」であるべきなのでは、と。
万能タイプ、もしくは汎用タイプの教員をそろえて、汎用性のある生徒を育てるっていうのはイマイチ時代にミスマッチなのでは?

その戦略を見直すこと無く引き摺ってしまったからこそ、今の残念なITリテラシーがあるわけで。
//「パソコンが苦手」とかとっくに死語だと思っているんですけども・・・

それぞれの教員が、
何かに特化して、
生徒達はそんな先生に囲まれて、
自分の特化を探す。

そんな、「生徒の参考になる」教員でありたいと思うんです。
とても凄くだらしないんですけども。私。


なーんて。現実逃避気味な更新でした。
全高情研では「情報テクノロジー」をベースに「Society5.0」や「Microbit」に関して話をしたいと思います。
まあ、文科省の人に見られるとちょっとお叱りを受けてもおかしくない内容ではあるんですが・・・。
(情報テクノロジーで好き放題しすぎている) 
それはまた、別の機会に。

都高情研:ポスター発表の資料

2019/03/27に行なわれた都高情研で、ポスター発表をしました。
http://www.tokojoken.jp/session/

今回発表した内容をスライドかなんかで、(わかりやすく)まとめて公開したいと思います。
まあ・・早くて本日。遅くて、8月(全高情研)。

//ちょっと諦め始めた。

取り急ぎ、使用している資料を全て載せておきますので、見たいという方はご自由にご利用ください。
情報のディジタル化_社情の違い_wp
情報Ⅰでの取り扱い

第二世代iPad miniにスプレーで水滴をつけて、実物投影機で拡大した映像です。
(夜、資料を印刷しながらやっていますので裏の音はお気になさらず)

各画素の挙動がよく観察できて、「ディスプレイの仕組み」や「色の表現」に対して良い刺激になりました。

色のディジタル化

授業だけしていたい・・・(定期)
いつぞやビー玉を使った光の三原色についての原稿を書きましたが、
先日、内容を使い回すにあたって、どうせならとアップデートしてみました。

内容としては、
RGBの理解→ディスプレイの仕組み問いかけ で終わっていたところを、
RGBの理解→仕組み問いかけ→動作の確認(答え合わせ) までまとめてみました。
導入と実技を削って5分捻出した感じで。大雑把にはこんな感じ(PDF)

詳細は授業の実践報告(PDF)の後半を読んで頂くとして、ダイジェスト。


1.RGBってなーに?
2.16進で色を表すカラーコードで遊んでみよう(HTML,CSS)
※光の強さが2桁ずつの16進法で表されているね! (#FF FF FF)

3.ビー玉当てて、画面を確認してみよう

4.黒って何色が光ってるんだろうね?
※問いかけのみ、考えさせる。
https://kakakumag.com/av-kaden/?id=9556
ディスプレイの話

5.もっとよく見てみよう(今回追加分)

A.スプレーを用意する

B.RGBアプリを起動する

C.水滴を作り、実物投影機で色を確認する

※ブラウザで拡大すると見やすいです

 

FFFFFF(白)と比べると、他の色では消した色の部分(pixel)が黒くなっているのがわかります。


それはさておき、授業アンケートの精度というか、なんというか。
質をもうちょっと上げないといかんなあ・・・。(1年生)

授業検討会(?)を開催してみる。

ご無沙汰しております。生きております。
全く更新が。はかどっておりませんが。生きております。
時間のあるときまったり更新すればいいやと半ば投げています。

さておき。

正規の集まりではないのですが、講師や若手の先生方に声をかけて、
授業の検討会(?)を行うことになりました。


【内容】
3月21日(祝日)に集まれそうな人で
ゆるーく情報の授業検討会(?)をやろうと思っています。
※どこまで声をかけるかは未定です。
※ある講師の先生に、「情報の授業は何をすればよいかわからない」と聞かれたのが発端です

【検討(?)事項】
1.この範囲はこんな指導をした(したい)
2.この範囲の狙いは何か
3.場合によってはasami(仮)が模擬授業を行い、突っ込みや検討
4.もちろん他の先生に授業をして頂くのも大歓迎

また、以下の2点をお伝えした上でご参加頂こうと思います。
(ア)正規の研修会ではないので、交通費などが出せません。
(イ)参加不参加が何らかに影響することもありません。

場所:千葉県立○○○高等学校 PC教室
日時:3月21日(木) 0900~1200(予定)


とまあ、こんな感じで。

実はまだ2人くらいしか参加者を募っていないのですが、まあ緩ーく適当にまずはやってみようかと。
ご報告できる事があれば、またいずれご報告したいと思います。

「じゃんけんアルゴリズム」で考える

情報の科学では、プログラミングの範囲でまとめに入ろうとしています。
授業を終え次第、一気に更新をかけていきたいなあと思いつつ、ふと浮かんだ悩みを記録しておきます。
まとまっていないまま吐き出すので、読みにくいのは、ご愛敬。


じゃんけんアルゴリズムを題材に、プログラミングについて一歩踏み込んでみたいと思います。(予定)
//じゃんけんアルゴリズムはこちらを参照 https://staku.designbits.jp/check-janken/

要は、プログラムで「じゃんけんゲーム」を作るときの判定部分を、IF文あたりを使って書くわけですが、
特に何も考えずに書く場合は大抵以下のようになるかと思います。

//適当コーディングです。読み替えてください。むしろ読み飛ばしてください。

   if (自分 = グー) {
      if (相手 = グー) {
         引き分け;
      } else if (相手 = チョキ) {
         勝ち;
      } else {
         引き分け;
      }
   } else if (自分 チョキ) {
      if (相手 = グー) {
         引き分け;
      } else if (相手 = チョキ) {
         負け;
      } else {
         勝ち;
      }
   } else {
      if (相手 = グー) {
         勝ち;
      } else if (相手 = チョキ) {
         引き分け;
      } else {
         負け;
      }
   }
}

で、入れ子部分のアルゴリズムを工夫するとこうなる。

kekka = (jibun-aite+3)%3;

if(kekka==0){
   alert(“あいこ”);
}else if (kekka==1){
   alert(“負け”);
}else{
   alert(“勝ち”);
}


もうちょっとわかりやすくしましょう。
私も「このコード天才かよ!」と楽しんだ記憶があります。
それがこれ。

n=1-n;

これは、「0なら1を、1なら0を返す」というNOTを書いた物です。
それまでは、

if(n=1){
   return 0;
}else{
   return 1;
}

とかまあ、こんな感じで書いているわけです。


さてここからが本題
これらのプログラムは、はたして「良いコード」でしょうか?
様々なケースで考えさせたいと思っています。

効率的、短い、カッコイイ、そんなコード「n=1-n;」はリーダブルコードなの?
じゃんけんゲームを作るとして、「良いコード」って何だろう?

今回はプログラミングを指導するのであれば、その「考え方」にフォーカスを当てるべきだろうという考えの垂れ流しです。
まとまり次第、結果を報告したいと思います。

神奈川県の実践事例報告会に参加しています

神奈川県情報部会実践事例報告会に参加しています。(NOW)

しかし、神奈川県の情報教育への取り組みは本当にうらやましいです。(東京もすごいですけども)
千葉県も負けないように盛り上げなくては。

ちなみに、神奈川県の情報部会のWebサイトのURLが
http://www.johobukai.net/ です。 johobukai.net です。

oh…

本日の内容がまとまり次第、レポートしておきたいと思います。
http://www.johobukai.net/18jireihoukokukaisidai.html

執筆依頼を受けながら

情報教育の実践報告について原稿を書いています。
つくづく思うのが、このサイト作っといてよかったなあ、と。

まだ数例しか載せていませんが、いざってときに「あー。あんなことしたなあ」と振り返るのに最適というか。
良いぞ過去の私! そして未来の私よ!!続けて!!!
覚えている内に書き起こして!!!!

各教科で様々な動きがあるんですが、最近は担任しているクラス
の事ばかり考えておりまして。

難しいですよね。
情報教育の研究や研鑽に専念したい自分と
教科にとらわれない部分での教育活動にも考えを巡らせる自分と。
エトセトラ、エトセトラ。

最適解は情報教育一本で専念することなんでしょうが、なかなかそうも行かないのがこの職業です。うーむ。

原稿に戻ります・・・。

(生徒にバレました)

とてもすごく、ご無沙汰しております。
なぜご無沙汰していたかというと。

勤務校の生徒に、このブログの存在がバレてしまいました。

名前は伏せていたものの(伏せてない)
授業内容で検索をしたら、HITしてしまったとのこと。

やりにくいなあと思いつつも、やり始めたからにはやりきろうということで
更新を再開したいと思います。

やりにくいなあ・・・。