高校「情報I」ポイント整理(10)情報技術

大学共通テスト「情報」プログラミング プログラミング学習
この連載は、現在高校で使われている情報Iの教材をベースにし、重要なポイントを整理して5分で読める記事にします。ITの基本知識として知る必要がある内容がたくさんあります。また大学共通テストに出やすいポイントを説明しますので、テスト対策にも役に立てば幸いです。重要キーワードを赤いマーカーで表記します。

情報技術

高校の情報Iでは、情報技術という章があります。前回の情報セキュリティと違って、データを守るための技術を紹介しています。一番重要な内容は「暗号化」です。また受験に出やすい「誤り検出符号」も要注意です。今回はこの2つのポイントを絞ってお話します。

暗号化

暗号化とは、第三者に内容がわからないようにする技術のことです。ここではいくつかの言葉を覚えましょう。

平文:読み方は「ひらぶん」です。暗号化される前の文のことです。
暗号文:暗号化された文のことです。
復号:暗号文を平文に戻す作業のことです。
:暗号化や復号に使われる一定の規則のことです。

鍵を使って暗号化したり、同じ鍵または別の鍵を使って平文に戻したり、鍵は暗号化にとって非常に重要なものです。

共通鍵暗号方式

暗号化と復号に同じ鍵を使う場合、共通鍵暗号方式といいます。

基本の流れは、上の図で示したようになります。まず、送信側と受信側が事前に暗号化するための鍵を決めます。実際に、データを送信したい時に、送信側のAさんはその鍵を使ってBさんに送りたい平文を暗号化します。暗号化された暗号文をBさんに送ります。Bさんは届いた暗号文を同じ鍵で復号します。暗号文は平文に戻して読めるようになります。

この共通鍵暗号方式は簡単で処理速度も速いですが、致命的な問題があります。それは、最初に暗号化するための鍵を決める時、対面ならバレずに2人だけわかるように決めればいいですが、離れている2人ならメールや電話でやり取りして決める場合、第三者に盗聴されたり、情報が盗まれたりする可能性があります。さらに、2人ではなく、多数の人の間に送信したい場合、それぞれの鍵を決めなければなりません。

この問題を解決してくれるのが、公開鍵暗号方式です。

公開鍵暗号方式

公開鍵暗号方式とは、ペアとなる異なる鍵を使って情報受送信します。この場合、2種類の鍵があります。それぞれ「公開鍵」と「秘密鍵」といいます。

公開鍵は、相手に暗号化してもらうための鍵です。
秘密鍵は、自分だけが持っている復号するための鍵です。

基本の流れは、上の図で示したようになります。まず、受信側がペアとなる鍵を作ります。一つは公開鍵です。もう1つは秘密鍵です。

公開鍵は暗号化するための鍵で、復号のために使えません。復号するためには秘密鍵が必要です。そのため、Bさんは公開鍵をメールやHPで公開することができます。送信したいAさんはその公開鍵を使って送りたい平文を暗号化します。暗号化された暗号文をBさんに届きましたら、Bさんは自分が持っている秘密鍵を使って暗号文を復号できます。秘密鍵はBさんしかわかりませんので、情報は安全にAさんからBさんに渡ることができます。

このように、公開鍵暗号方式は共通鍵暗号方式より、処理速度が遅いですが、公開鍵が複製されても、復号には膨大な時間がかかるため安全性が高いです。また、対象が多くても1つの公開鍵、1つの秘密鍵でよく、管理が容易です。

誤り検出符号 

では、誤り検出符号とは何でしょうか?

実は、わたしたちがかなり身近なものに使われています。本です。本を買う時、裏の本の値段を見ますよね。その時、必ずISBNコードが印刷されています。本1冊ずつ独自のISBNコードを持っています。そのISBNコードをスキャンすれば、その本の情報を取得できます。

このISBNコードには、誤り検出符号が含まれています。

誤り検出符号とは、情報が転送している時に、元のデータが途中変わったかどうかを確認するための特別データを元の情報の中に加えることによって、誤りを検出する方法です。その特別データが誤り検出符号です。データが正しく送信されているかどうかを確認するための仕組みです。

では、実際の仕組みを見てみましょう。

まず、ISBNはInternational Standard Book Numberの略です。直訳すると、「国際標準書籍番号」になります。世界共通の13桁の数字で構成されます。

最初の3桁は、978か979に決まっています。
次の1桁は、国番号です。ちなみに、日本は4です。
次の4桁は、出版社の番号です。
次の4桁は、書籍の番号です。
最後の1桁は、チェックデジットといって、ISBNが正しく読み取れたかどうかを確認するための番号です。つまり、誤り検出符号です。

チェックデジットの計算方法を説明します。ISBN の左から奇数桁の数字の合計と、偶数桁の数字の合計の3倍にした数を足し算します。その結果の一の位の数を10 から引きます。その数字がもし表示されている数字と同じなら正解です。違った場合、データが送信中に誤りが起きたことを意味します。

実際の本を使って、計算してみます。

いま、私の手元に翔泳社出版の「Pythonではじめるアルゴリズム入門」という本があります。
ISBNの番号は、978-4-7981-6323-9 です。

まず、左から奇数桁の数字を合計します。
9 + 8 + 7 + 8 + 6 + 2 = 40

次、偶数桁の数字の合計の3倍にします。
7 + 4 + 9 + 1 + 3 + 3 = 27 × 3 = 81

次、上記の2つの結果を足し算します。
40 + 81 = 121

最後に、上記結果の一の位の数を10 から引き算します。
10 – 1 = 9

本のISBN 978-4-7981-6323-9の最後の数字は、計算結果と同じく、9です。
つまり、そのデータが正しい情報であることがわかります。

このようにデータを守るために、多くの技術が使われています。上記紹介した「暗号方式」と「誤り検出符号」以外にも、デジタル署名やSSLプロトコル、ハッシュ関数を使ったブロックチェーン技術などたくさんあります。興味があれば、ぜひ調べてみてください。


今回は情報技術を説明しました。主に2つのポイントに絞って話しましたが、アプリやウェブサービスを開発するとき、情報を守る技術の知識もとても重要です。近年、人工知能AIが活用され、いままで情報を守れた技術が無力化されてしまうケースもあります。みなさんも常に最新の情報技術に注意深く見る必要があります。