縦か横か、再び
【 縦か横か、再び 】
このセッションから、これまで見てきたLWEの単純なサンプルを、実際的な暗号システムに拡大することを考えます。
二つのサンプルでは、いずれも、秘密キー s は一つの数でした。一つ目のサンプルでは、1001が、二つ目のサンプルでは 5 が秘密キーでした、それは、少し単純すぎました。
ここでは、一つの数ではなく、n個の数の集まりとして秘密キーs を拡大しようと思います。秘密キーをスカラーではなくベクトルにしようと言うことです。
LWE暗号化の特徴の一つは、秘密キー s に複数の整数を掛けて、それぞれに「エラー」と呼ばれる小さなランダムな数を加えて、公開キーを作ることです。Learning with Errors という名前は、公開キーに含まれるこのエラー項によっています。
この枠組みは維持するので、今回考えるのは「秘密キー s に複数の整数を掛ける」の部分を「秘密キー のベクトルs に複数の整数を掛ける」に変えることです。
以前、ベクトルを要素を縦に並べて表現するか、横に並べて表現するかは、どっちでもいいと言いました。今回は、考えを変えました。ごめんなさい。
このセッションでは、列ベクトルを基本とします。ベクトルvと言った時、vは列ベクトルであるとします。それは、量子論でも同じです。ケット|qubit> は列ベクトルです。
残念ながら、このルールは、コンピューターには向いていないんです。コンピューターのプログラムは、一行単位で横に記述されますから。量子論が生まれた頃、現在のようにプログラマーが世界に溢れていたら、ケット|qubit>はきっと行ベクトルになっていたと思います。
基本の列ベクトルを行ベクトルに変換する操作 transpose を、ベクトル変数の右肩にTをのせて表すことにします。ベクトルvは列ベクトルですが、v^T はそれに対応する行ベクトルになります。
このセッションでは、LWE暗号のプロトコルを記述するのに必要な、基本的な表記法をまとめておきました。
-------------------
動画「単純なサンプルからLWEへ-- 準備編)」を公開しました。ご利用ください。
この動画のpdf は、こちらからアクセスできます。https://drive.google.com/file/d/1A4fjQUZHf7eqJYndjQ1KmXtowHvFbO0q/view?usp=sharing
「ラティス暗号入門」のまとめページはこちらです。https://www.marulabo.net/docs/cipher3/
blog 「縦か横か、再び 」のURLはこちらです。https://maruyama097.blogspot.com/2022/09/blog-post_11.html
コメント
コメントを投稿