暗号を理解するための数学の世界その9 CS四方山話(第30話)
小学校からの数学シリーズ・第9弾
「小学校からの数学」シリーズ・第9弾です。そして、記念すべき「CS(サイバーセキュリティ)四方山話 第30話」です。第1話が2021年5月でしたので、約2.25年で30に到達したことになります。13.3話/年。執筆ペースにはかなり波がありますが、結果としては「月1」程度になっているのですね。どこまで続くのか分かりませんが、「小学校からの数学」シリーズは(恐らく)あと12,3回は続くと思いますので、40回は越えるでしょう。引き続きお付き合い頂ければ幸いです。
さて、前回に引き続き、今回も「小学3年生」です。前回は「等分除」「包含除」という「割り算」が登場しました。今回も引き続き「割り算」の話をしたいと思います。
時刻と時間の認識と、割り算の剰余
小学2年生でも時刻と時間の話が登場しましたが、小学3年生でも改めて「時刻と時間」が出てきます。なぜ、また「時刻と時間」の話になるのだろう? と考えてみました。
1つは、CS四方山話 第27話 (*1) でも触れたように、時刻 = state、時間 = action という違いを認識して欲しいという狙いがあるだろうと思っています(あくまでも筆者の推定ですが……)。もう1つは、「時刻と時間」は割り算につきものの「余り(剰余)」にも関係することがあるのだろうと睨んでいます(これも筆者の勝手な推定ですw)。
例えば「280秒 は 何分何秒?」に答えるためには、割り算が必要になります。
280秒 割る 60秒 は、割り切れなく、余りが出ます。答えは「4 余り 40」となります。式で書くと「280 ÷ 60 = 4 … 40」となります。懐かしいですね「…」を使った表記。筆者にとっては「古の記憶」といった感じです。
ということで、元の問いに答えると「4分40秒」ということになります。
時刻や時間を扱おうとすると、余り(剰余)のある割り算(除算)が必要になり、「時刻と時間」の話を(小学2年生の時よりも)詳しく説明した後に、「余りのある割り算」が登場するという筋書きには納得です。
「剰余」が関係するRSA暗号
小学3年生で登場する「剰余」ですが、これは通信を含めた情報処理や、暗号にも深く関係する重要な概念なのです。
現在、さまざまな分野で使われている「RSA暗号」にも「剰余」が関係しています。
暗号データ C は、公開鍵 ke と n を用いて、下記の式で求められます。 C=mke・mod n → C は m の ke乗 を n で割った余り 暗号データ C を秘密鍵 kdと n を用いて復号化する式は下記となります。 m=Ckd・mod n → m は C の kd乗 を n で割った余りちなみに、この mod が剰余を求める演算になります。
C言語では「%」という算術演算子があり、剰余を求める演算は下記となります。
int dividend = 280, divisor = 60;
int remainder = dividend % divisor;
Go や Python でも、同じ演算子があります。 RSA暗号 に関しては、「CS白狐村塾(第1話-その2)」(*1) で取り上げていますので、ご興味がありましたらご参照ください。
剰余で成立している時刻の世界
mod pで表される数値は、p以上が登場しない世界です。
時刻の「秒」には(閏秒という特殊なケースは別として)0 から 59 までしかありません(ちなみに、閏秒は2035年までに廃止される方向のようです (*2))。
同様に時刻の「分」も 0 から 59 までです。時刻の「時」は(24時間表記の場合)0 から 23 までです。このように、時刻の世界は、すべて剰余で成り立っているということになります。
CS四方山話では、何度か「群・環・体」という数学の話が登場しています。整数は「可換環」ですし、実数は「体」です。しかし、剰余の集合は群でも、環でも、体でもありません。
「進数」という話も出て来ましたが、これもある意味「剰余」が関係します。 10進数は「10」のべき乗の剰余を並べた数値表現です。同様に2進数は「2」のべき乗の剰余を並べた数値表現です。
したがって進数の変換は、下記のような形で行うことができます。
まとめ
今回は「剰余」を中心にお話させて頂きました。剰余は「時刻」にも関係するし、「暗号」にも深く関わっていて、「進数」にも繋がる。ということで、いろいろな場面で登場するモノですので、この機会にお見知りおきください!
さて、小学3年生の課程で残っている大物は、小数と分数となりました。次回(第31話)では、この小数と分数に関してお話しさせて頂く予定です。
参照
(*1) 「CS四方山話(第27話)」の URL は下記の通りです。
https://japansecuritysummit.org/2023/05/7164/
(*2) 「うるう秒、2035年までに廃止へ」 https://japan.zdnet.com/article/35196336/
JapanSecuritySummit2023においてLiveセッションを開催
サイバーセキュリティ四方山話のライブセッションがJapanSecuritySummit2023において10月26日(木)19:00から開催されます。株式会社SYNCHROのサイバーセキュリティ対策センターの活動内容をご紹介しながら、その活動から得られた知見や今後の方向性に関してお話しいただきます。
参加費無料ですので、是非ご参加ください。
CS四方山話の過去の記事はこちら(合わせてお読みください)
中村 健 (Ken Nakamura)
株式会社SYNCHRO 取締役 CTO
機械屋だったはずだが、いつの間にかソフト屋になっていた。
以前は計測制御、知識工学が専門分野で、日本版スペースシャトルの飛行実験に関わったり、アクアラインを掘ったりしていた。
VoIPに関わったことで通信も専門分野に加わり、最近はネットワークセキュリティに注力している。
https://www.udc-synchro.co.jp/
サイバーセキュリティ四方山話の最新話は、メールマガジンにてもご案内致しています。是非JAPANSecuritySummit Updateのメールマガジンにご登録ください。
メールマガジンの登録はこちらからお願いします。