倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

Go で量子鍵配送 (Quantum Key Distribution) B92 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は B92 プロトコル。B92 プロトコルは BB84 プロトコルに比べて直感的に分かりにくい処理(エンコード・デコード*1)をしますが、古典チャネルでの通信が BB84 プロトコルに比べて半分で済みます。 その…

Go で量子鍵配送 BB84 プロトコルでイヴがランダムに基底を選ぶ場合

Go で量子コンピューティングシリーズ(目次)。 今回は BB84 プロトコルで、アリスとボブがエンコード・デコードに使う基底をイヴが知らずに、ランダムな基底を使って盗聴を行う場合を見ていきます。 アリスとボブのコードは今までと同じです。各種の理論値…

Go で量子鍵配送 (Quantum Key Distribution) もう少し BB84 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は前回見た BB84 プロトコルの特徴をもう少し詳しく見ていきます。【この記事の内容】 長さ n の鍵を生成するために必要な qubit 数 盗聴に気づく確率 イヴが正しい鍵のビット値を得る割合 盗聴に気づい…

Go で量子コンピューティング ~目次~

Go で量子コンピューティングシリーズの目次。 Qubit 量子鍵配送 (QKD: Quantum Key Distribution) 枠組み BB84 基本・分析・イヴがランダムな基底で測定する場合 B92 基本 Quantum Computing: A Gentle Introduction (Scientific and Engineering Computati…

Go で量子鍵配送 (Quantum Key Distribution) BB84 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は量子鍵配送 (Quantum Key Distribution) の BB84 プロトコルの実装をしていきます。【この記事の内容】 量子鍵配送 BB84 プロトコル Go での実装 bb84.Alice の EstablishKey メソッド bb84.Bob の Est…

Go で量子鍵配送 (Quantum Key Distribution)

Go で量子コンピューティングシリーズ(目次)。 次回から何回かで量子鍵配送 (qkd: quantum key distribution) を3種類ほど実装していく予定ですが、今回はそれらに共通する型などを見ていきます。 実装は直接的には量子鍵配送に関係なのでスルーします。【…

Go で Qubit

Go で量子コンピューティングシリーズ(目次)。 Google Go で量子計算・量子コンピュータの簡単なシミュレータを書いていきます(『Quantum Computing: A Gentle Introduction』の練習問題を解くサポートで)。 今回は準備として 1 qubit 系に関連する型を…

spire で多項式 Polynomial を使ってみる (5) : 多項式で表される特殊関数

spire を使ってみるシリーズ(目次)。 今回は多項式で表される特殊関数に関連する spire.math.poly.SpecialPolynomials クラスのメソッドを見ていきます。SpecialPolynomials クラスでは ルジャンドルの多項式: legendre() ラゲールの多項式: laguerre() …

spire で多項式 Polynomial を使ってみる (4) : 係数・項を扱うメソッド

spire を使ってみるシリーズ(目次)。 今回は Polynomial 型に定義されているメソッドのうち、係数や項を扱うメソッドを見ていきます。 記事中のサンプルコードでは以下の import 分が書かれているものとします: import spire.math._ import spire.implici…

spire で多項式 Polynomial を使ってみる (3) : 代数としてのメソッド

spire を使ってみるシリーズ(目次)。 今回は Polynomial 型に定義されている代数としてのメソッドを見ていきます。 多項式はユークリッド環をなすので、加減乗法と余りのある除算が定義されています。この記事中のサンプルコードでは以下の import 文が書…