2021年09月13日

●「ハッシュ関数使う暗号方式を知る」(第5571号)

 終焉することになった菅政権の河野行革担当相は「脱ハンコ」
を打ち出し、各省庁で実施しています。しかし、これは認印の廃
止であり、本格的な意味での「脱ハンコ」ではない。そのために
は「電子署名」が必要であるからです。住基カードもマイナンバ
ーカードも基本的には電子署名のためのものですが、いずれもう
まくいっていません。それには、「認証局」という中央集権的組
織がかかわるからです。これについては後で述べます。
 とてもシンプルな例で考えてみることにします。野口悠紀雄名
誉教授の本に出ていたものです。
 太郎から花子にパスワード「4987」という数字をメールで
伝えることにします。しかし、メールでは途中で改ざんされてし
まう恐れがあります。そこで次の工夫をします。
─────────────────────────────
       4+9+8+7=28 ・・・・ 8
                   49878
─────────────────────────────
 パスワードの数字を合計し、答えの下1桁の数字「8」がキー
であることをあらかじめ花子に伝えておきます。これを「シンプ
ルチェックサム」といいます。そして「チェックサムは最後に付
ける」ことをあらかじめ花子に知らせておき、「49878」を
花子にメールで送ります。
 この数字「49878」を受け取った花子は自分で計算し、答
えが「8」になれば、太郎から送られたパスワードが正しいこと
を知ることになります。
 実は、このような演算を「ハッシュ関数」といい、得られた数
字を「ハッシュ値」といいます。ただし、ハッシュ関数には次の
要件が求められます。
─────────────────────────────
    @同じデータからは同じハッシュ値が得られる
    A違うデータからは違うハッシュ値が得られる
    Bデータを要約して固定長のデータに変換する
    Cハッシュ値から元のデータを求めること困難
─────────────────────────────
 「シンプルチェックサム」は@を満たしています。Bも満たし
ています。4桁のデータを1桁の固定長データにしているからで
す。Cも多くの場合、満たしているといえますが、Aは明らかに
満たしていないのです。上記の例のチェックサム「8」は、49
87だけではなく、4897からも得られてしまうからです。し
たがって、シンプルチェックサムは、ハッシュ関数ではあるもの
の、欠陥があります。
 このハッシュ関数と、RSA暗号を基にして1980年頃に開
発された「公開鍵暗号」を合体して上記と同じ例をやってみるこ
とにします。以下、添付ファイルをベースに解説します。
 太郎が「4987」という内容の文書を花子にメールで送るこ
とにします。「4987」という数字ではなく、今回は文書であ
ることに注意してください。
 花子としては、太郎が後になって「そんなメールは出していな
い」といわれたら困るので、そのための対策が必要になります。
 前提的知識として、公開鍵暗号というのは、次の2つのキーを
使います。
─────────────────────────────
            1.公開鍵
            2.秘密鍵
─────────────────────────────
 この2つの鍵のうち「公開鍵」は人に知られてもかまいません
が、「秘密鍵」は絶対に誰にも知られないよう秘匿する必要があ
ります。
 第1段階として太郎は、「4987」という文書のハッシュ値
を求めます。仮にその数字を「8」とします。実際のハッシュ値
はそんな短い数値にはなりませんが、あくまで説明をやさしくす
るための便宜的なものです。ハッシュ関数の種類は多く、最近最
もよく使われる「MD5」というハッシュ関数のハッシュ値は、
128ビットになっています。ただ、128ビットでは長いので
それを16進数で表すことになっています。
 第2段階として、太郎は文書のハッシュ値を自分の「秘密鍵」
で暗号化します。仮にその結果を「2」とします。これを「電子
署名」というのです。これを文書と一緒に花子に送ります。花子
には別途太郎の「公開鍵」が伝えられていて、これを使えば「複
号」することができます。つまり、「4987」文書のハッシュ
値「8」が復号されます。
 第3段階として花子は、太郎から送られてきた「4987」文
書のハッシュ値を求めます。そうすると、このケースでは「8」
となり、太郎の「公開鍵」で復号した「8」と一致します。これ
で太郎の送ってきた文書は、間違いなく正規のものであることが
わかります。
 なお、ここで大事なことは、ハッシュ値はPCがあれば、誰で
も簡単に算出できます。ハッシュ関数に入れるデータは数字だけ
ではなく、契約文書などの重要書類や、本一冊のテキストデータ
など、何でも16進数で算出できます。1文字でも違うところが
あれば、ハッシュ値は別の数字になります。
 何らかの重要文書を誰かにメールで送るとき、文書全体にハッ
シュ関数をかけ、ハッシュ値を算出し、そのハッシュ値を文書と
共に送れば、受信側は同様に送付されてきた文書のハッシュ値を
求め、それが文書と一緒に送られてきたハッシュ値と一致すれば
その文書は正しいことになります。このように、この方法はメー
ルでの重要文書の送受信に使えるのです。実際のやり方について
は、近いうちにご紹介する予定です。
 しかし、これに認証局がかかわると、非常に複雑なことになり
ます。SSL認証というものです。
             ──[デジタル社会論V/025]

≪画像および関連情報≫
 ●ハンコは本当に無駄なのか 「コロナ」「押印廃止騒動」で
  揺れたハンコ職人の本音/橋本愛喜氏
  ───────────────────────────
   日本には、世界からも認められる繊細で歴史深い文化や伝
  統技術が数多く存在する。日本人自身にもこうした自文化に
  誇りを持つ人が多く、ゆえに古くから伝わる技術を国内向け
  に紹介するテレビ番組も頻繁に放送されている。
   そんな中、昨今急速に進む機械化やデジタル化によって存
  続が危ぶまれているのが、「手作業」という究極のアナログ
  方法でモノをつくり出す「職人」たちだ。
   コロナ禍の中、菅内閣で行政改革担当大臣に就任した河野
  太郎氏の言動で矢面に立たされた「ハンコ」にも、古い文化
  を静かに紡いできた職人たちがいる。騒動後に訪れた日本随
  一の「ハンコの里」、山梨県「六郷」。
   この小さな町で触れたのは、誇りあるはずの自文化に対し
  簡単に見切りを付けてしまう世間への「違和感」と、伝統文
  化存続に対する「本音」だった。ハンコの歴史は非常に古く
  文字が誕生するよりも前の紀元前メソポタミア文明には既に
  存在していたといわれている。
   当時のハンコは、現在のような丸い印面に文字を刻むので
  はなく、円筒形の側面に絵や幾何学模様を彫り、粘土板に転
  がしながら押し付けて刻み込むものだった。その後、シルク
  ロードを渡り世界中に広まったハンコは、欧米で廃れる中、
  アジアに根付いた。諸説あるが、その大きな要因が「漢字」
  の存在だ。簡単に書けるアルファベットなどの文字と比べ、
  画数の多い漢字での署名は時間が掛かるため、漢字圏の国で
  広まるようになったとされている。https://bit.ly/3A664Nf
  ───────────────────────────
電子署名.jpg
電子署名
posted by 平野 浩 at 00:00| Comment(0) | デジタル社会論V | このブログの読者になる | 更新情報をチェックする