IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特許-向上した通信セキュリティー 図1
  • 特許-向上した通信セキュリティー 図2
  • 特許-向上した通信セキュリティー 図3
  • 特許-向上した通信セキュリティー 図4
  • 特許-向上した通信セキュリティー 図5A
  • 特許-向上した通信セキュリティー 図5B
  • 特許-向上した通信セキュリティー 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】向上した通信セキュリティー
(51)【国際特許分類】
   H04L 9/08 20060101AFI20221227BHJP
   H04L 9/30 20060101ALI20221227BHJP
【FI】
H04L9/08 C
H04L9/30 Z
【請求項の数】 16
(21)【出願番号】P 2018125704
(22)【出願日】2018-07-02
(65)【公開番号】P2019020717
(43)【公開日】2019-02-07
【審査請求日】2021-03-10
(31)【優先権主張番号】15/650,901
(32)【優先日】2017-07-15
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】モンゴメリー・ハート
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2014-099752(JP,A)
【文献】特表2013-524277(JP,A)
【文献】米国特許第09673977(US,B1)
【文献】SINGH, V. and CHOPRA, A.,Even More Practical Key Exchanges for the Internet using Lattice Cryptography,Cryptology ePrint Archive,Report 2015/1120, Ver. 20151222:163745,[online],2015年12月,pp.1-20,<URL:https://eprint.iacr.org/2015/1120/20151222:163745>,[2022年1月26日検索]
【文献】ALWEN, J. et al.,Learning with Rounding, Revisited: New Reduction, Properties and Applications,Cryptology ePrint Archive,Report 2013/098,[online],2013年02月,pp.1-18, <URL:https://eprint.iacr.org/2013/098>, [2022年1月26日検索]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/30
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ネットワークを通じて通信するよう構成された通信装置と;
一つまたは複数のプロセッサと;
一つまたは複数の非一時的なコンピュータ可読媒体とを有するシステムであって、前記コンピュータ可読媒体は、前記一つまたは複数のプロセッサによって実行されたときに当該システムに一つまたは複数の動作を実行させる命令を含んでおり、前記動作は:
前記ネットワークを通じた当該システムとコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のパケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記通信装置を介して、前記一つまたは複数のパケットを使って、前記ネットワークを通じて前記コンピューティング装置と通信する段階とを含み、
前記暗号学的処理が:
前記コンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められた、第一の秘密情報に基づく値である、段階と;
前記第一の公開鍵成分を当該システムから前記コンピューティング装置に送信する段階と;
前記コンピューティング装置から当該システムにおいて第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
ステム。
【請求項2】
ネットワークを通じて通信するよう構成された通信装置と;
一つまたは複数のプロセッサと;
一つまたは複数の非一時的なコンピュータ可読媒体とを有するシステムであって、前記コンピュータ可読媒体は、前記一つまたは複数のプロセッサによって実行されたときに当該システムに一つまたは複数の動作を実行させる命令を含んでおり、前記動作は:
前記ネットワークを通じた当該システムとコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のパケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記通信装置を介して、前記一つまたは複数のパケットを使って、前記ネットワークを通じて前記コンピューティング装置と通信する段階とを含み、
前記暗号学的処理が:
前記コンピューティング装置から公開鍵を受信する段階と;
前記公開鍵を使って、前記一つまたは複数のパケットを暗号化して、データの暗号化された一つまたは複数のパケットにする段階であって、前記暗号化は、暗号化の結果を得るために確率的な丸めを行うことを含む、段階と;
前記暗号化された一つまたは複数のパケットを前記コンピューティング装置に送信する段階とを含む、
ステム。
【請求項3】
確率的な境界消去のある前記丸めが:
前記暗号学的処理に関連する値が丸め境界から閾値量以内であるかどうかを判定し;
前記値が丸め境界から閾値量以内であることに応答して、その値を破棄することを含む、
請求項1記載のシステム。
【請求項4】
ネットワークを通じて通信するよう構成された通信装置と;
一つまたは複数のプロセッサと;
一つまたは複数の非一時的なコンピュータ可読媒体とを有するシステムであって、前記コンピュータ可読媒体は、前記一つまたは複数のプロセッサによって実行されたときに当該システムに一つまたは複数の動作を実行させる命令を含んでおり、前記動作は:
前記ネットワークを通じた当該システムとコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のパケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある偽の丸めを含む、段階と;
前記通信装置を介して、前記一つまたは複数のパケットを使って、前記ネットワークを通じて前記コンピューティング装置と通信する段階とを含
前記暗号学的処理が:
前記コンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められた、第一の秘密情報に基づく値である、段階と;
前記第一の公開鍵成分を当該システムから前記コンピューティング装置に送信する段階と;
前記コンピューティング装置から当該システムにおいて第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
システム。
【請求項5】
確率的な境界消去のある前記偽の丸めが:
前記暗号学的処理に関連する値が丸め境界から閾値量以内であるかどうかを判定し;
前記値が丸め境界から閾値量以内であることに応答して、そのエントリーに追加的な変動性を導入することを含む、
請求項記載のシステム。
【請求項6】
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含む方法であって
記暗号学的処理が:
前記第二のコンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められ、第一の秘密情報に基づく値である、段階と;
前記第一の公開鍵成分を前記第一のコンピューティング装置から前記第二のコンピューティング装置に送信する段階と;
前記第二のコンピューティング装置から前記第一のコンピューティング装置において第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
法。
【請求項7】
前記第一のコンピューティング装置によって、前記第二のコンピューティング装置が制約されたコンテンツにアクセスする要求を受信する段階であって、前記要求は前記共有される鍵を含む、段階と;
前記要求に基づいて、前記制約されるコンテンツへのアクセスを、前記第二のコンピューティング装置に承認する段階とを含む、
請求項記載の方法。
【請求項8】
前記第二の公開鍵成分の少なくとも一つの丸められた要素をかさ上げする段階をさらに含む、請求項記載の方法。
【請求項9】
前記第二のコンピューティング装置から少なくとも一つの相互丸めビットを受信する段階をさらに含み、前記共有される鍵の導出がさらに、前記少なくとも一つの相互丸めビットに基づく、請求項記載の方法。
【請求項10】
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含む方法であって、
前記暗号学的処理が:
前記第二のコンピューティング装置から公開鍵を受信する段階と;
記公開鍵を使って、前記一つまたは複数のデータ・パケットを暗号化して、暗号化された一つまたは複数のデータ・パケットにする段階であって、前記暗号化は、暗号化の結果を得るために確率的な丸めを行うことを含む、段階と;
前記暗号化された一つまたは複数のデータ・パケットを前記第二のコンピューティング装置に送信する段階とを含む、
法。
【請求項11】
前記一つまたは複数のデータ・パケットを暗号化することが:
前記公開鍵に関連する第一の行列の各要素に対して確率的丸めを実行して、第一のデータを生成し;
前記公開鍵に関連する第二の行列の各要素に対して確率的丸めを実行し;
前記パケットのメッセージを、前記確率的丸めを実行された第二の行列に加えて、第二のデータを生成し;
前記第一のデータおよび前記第二のデータの組み合わせを前記暗号化されたパケットとして出力することを含む、
請求項10記載の方法。
【請求項12】
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある偽の丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含み、
前記暗号学的処理が:
前記第二のコンピューティング装置から公開鍵を受信する段階と;
前記公開鍵を使って、前記一つまたは複数のデータ・パケットを暗号化して、暗号化された一つまたは複数のデータ・パケットにする段階であって、前記暗号化は、暗号化の結果を得るために確率的な丸めを行うことを含む、段階と;
前記暗号化された一つまたは複数のデータ・パケットを前記第二のコンピューティング装置に送信する段階とを含む、
方法。
【請求項13】
確率的な境界消去のある前記偽の丸めが:
前記暗号学的処理に関連するエントリーが丸め境界から閾値量以内であるかどうかを判定し;
前記エントリーが丸め境界から閾値量以内であることに応答して、そのエントリーに追加的な変動性を導入することを含む、
請求項12記載の方法。
【請求項14】
確率的な境界消去のある前記偽の丸めがさらに、前記エントリーが前記丸め境界から前記閾値量より外側であることに応答して、そのエントリーを丸めることを含む、請求項13記載の方法。
【請求項15】
一つまたは複数のプロセッサによって実行されることに応答して動作を実行する命令を含んでいる非一時的なコンピュータ可読媒体であって、前記動作は:
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含
記暗号学的処理が:
前記第二のコンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められた、第一の秘密情報に基づく値である、段階と;
前記第一の公開鍵成分を前記第一のコンピューティング装置から前記第二のコンピューティング装置に送信する段階と;
前記第二のコンピューティング装置から前記第一のコンピューティング装置において第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分を生成するための少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
ンピュータ可読媒体。
【請求項16】
一つまたは複数のプロセッサによって実行されることに応答して動作を実行する命令を含んでいる非一時的なコンピュータ可読媒体であって、前記動作は:
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して丸め付き学習(LWR)に基づく暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含み、前記確率的丸めが、確率的な境界消去のある丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含み、
前記暗号学的処理が:
前記第二のコンピューティング装置から公開鍵を受信する段階と;
前記公開鍵を使って、前記一つまたは複数のデータ・パケットを暗号化して、暗号化された一つまたは複数のデータ・パケットにする段階であって、前記暗号化は、暗号化の結果を得るために確率的な丸めを行うことを含む、段階と;
前記暗号化された一つまたは複数のデータ・パケットを前記第二のコンピューティング装置に送信する段階とを含む、
ンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で論じられる実施形態は、向上した通信セキュリティーに関する。
【背景技術】
【0002】
コンピュータ・ネットワークの普及により、コンピュータ・ネットワークを通じて通信される情報にアクセスしようとする多様な悪意ある行為者も登場している。コンピュータ・ネットワークを通じた安全な通信を提供するために努力が払われてきた。
【0003】
本開示で請求される主題は、何らかの欠点を解決するまたは上記のような環境でのみ動作する実施形態に限定されるものではない。むしろ、この背景は、本開示で記載されるいくつかの実施形態が実施されうる一つの例示的な技術領域を示すために与えられているだけである。
【先行技術文献】
【非特許文献】
【0004】
【文献】Andrej Bogdanov et al.、"On the Hardness of Learning With Rounding Over Small Modulus"、TCC 2016-A: 14th Theory of Cryptography Conference, Part I, Vol. 9562 of Lecture Notes in Computer Science, pp.209-224, Tel Aviv, Israel, Jan, 10-13, 2016, Springer
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の一つまたは複数の実施形態は、ネットワークを通じて通信するよう構成された通信装置と、一つまたは複数のプロセッサと、前記一つまたは複数のプロセッサによって実行されたときに当該システムに一つまたは複数の動作を実行させる命令を含んでいる、一つまたは複数の非一時的なコンピュータ可読媒体とを含むシステムを含んでいてもよい。前記動作は、前記ネットワークを通じた当該システムとコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のパケットに対して暗号学的処理を実行することを含んでいてもよい。前記暗号学的処理は確率的な丸めを含む。前記動作はまた、前記通信装置を介して、前記一つまたは複数のパケットを使って、前記ネットワークを通じて前記コンピューティング装置と通信することをも含んでいてもよい。
【0006】
実施形態の目的および利点は、少なくとも請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成されるであろう。
【0007】
上記の一般的な記述および下記の詳細な説明はいずれも単に例であり、説明するものであり、特許請求される発明を制約するものではないことは理解される。
【図面の簡単な説明】
【0008】
例示的実施形態が、付属の図面を使うことを通じて、追加的な具体性および詳細さをもって記述され、説明される。
図1】向上した通信セキュリティーに関係する例示的環境を示す図である。
図2】Aは確率的丸めの例示的方法のフローチャートであり、Bは確率的丸めのもう一つの例示的方法のフローチャートである。
図3】通信セキュリティーを向上させるために確率的丸めを利用する例示的方法のフローチャートである。
図4】確率的丸めを利用してパケットを暗号化する例示的方法のフローチャートである。
図5A】通信セキュリティーを向上させるために確率的丸めを利用するもう一つの例示的方法のフローチャートの前半である。
図5B】通信セキュリティーを向上させるために確率的丸めを利用するもう一つの例示的方法のフローチャートの後半である。
図6】例示的なコンピューティング・システムを示す図である。
【発明を実施するための形態】
【0009】
本開示は向上した通信セキュリティーに関する。現在のセキュリティー施策を考える仕方を変えてしまいうる量子コンピュータが開発中である。たとえば、現在のコンピュータでは十分でありうる典型的なセキュリティー施策は、量子コンピュータを使った攻撃には弱いことがありうる。これは量子コンピュータが利用可能になったときのセキュリティー・プロトコルにとっての問題を呈するばかりでなく、前方安全性(forward security)の問題も呈する。たとえば、敵が今は解読可能でないかもしれない暗号化データを捕捉することがあるが、量子コンピュータが利用可能になったとき、以前に捕捉されたデータが量子コンピュータを使って解読されることがありうる。このように、通信が量子コンピュータからの攻撃に対してでも安全であるよう安全な通信を改善するために、改善された暗号学的技法が有益でありうる状況がありうる。
【0010】
本開示のいくつかの実施形態では、通信セキュリティーは、暗号学的処理における確率的丸めの使用によって向上されうる。確率的丸めとは、値がいくつかの状況においては丸められるが他の状況では丸められない任意の数学的演算を指しうる。いくつかの実施形態では、確率的丸めは、値が丸め境界から閾値距離以内であるかどうかを判定してもよい。値が閾値距離以内であれば、値は破棄されてもよく、あるいは追加的なランダムさが値に導入されてもよい。いくつかの実施形態では、確率的丸めは、データ・パケットの暗号化において、あるいは鍵もしくは鍵成分の生成において使われてもよい。いくつかの実施形態では、確率的丸めは法の丸めを利用してもよい。
【0011】
確率的丸めの使用は、コンピュータそのものの動作、データを通信するネットワークおよび通信セキュリティーの関係分野にいくつかの恩恵を提供しうる。コンピュータそのものについては、確率的丸めは、他の暗号学的技法に対して効率性を稼ぐことができる。たとえば、丸めの使用は、ある種の暗号学的処理が実行されるレートを単純化し、高速化しうる。プロセスを高速化することによって、暗号学的処理を実行しているコンピュータそのものがそのパフォーマンスを改善しうる。このように、本開示の実施形態は、コンピュータそのもののパフォーマンスを改善しうる。
【0012】
ネットワークの動作を改善することについては、確率的丸めは暗号化されたデータのサイズを小さくでき、低下したネットワーク帯域幅要求を許容しうる。こうして、貴重なネットワーク資源が節約される。例として、数が10,678,994から10,679,000に丸められる場合、末尾の三つの0はネットワークを通じて送信される必要はなく、数は受信装置においてかさ上げ〔リフト〕されてもよい。たとえば、10,678,994から10,679,000に丸めるとき、値10,679がネットワークを通じて転送されてもよく、受信装置は値10,679をかさ上げしてもとの10,679,000にしうる。このように、本開示の実施形態は、ネットワーク資源を節約することによって、ネットワークの機能を改善しうる。さらに、この例では典型的な数値が使われているが、数値の二進表現が使われてもよい。
【0013】
通信セキュリティーの関係分野を改善することについては、確率的丸めは、典型的な暗号学的技法に対して、通信のセキュリティーを高めることができる。たとえば、値を破棄する、あるいは丸め境界から閾値距離以内にある値にランダム性を加えることによって、いくつかの状況では、それらの値を観察する敵はそれらの値を真にランダムな値から区別できないことがありうる。このように、本開示の実施形態は、通信セキュリティーの関係分野を改善しうる。
【0014】
本開示の実施形態について、付属の図面を参照して説明する。
【0015】
図1は、本開示の一つまたは複数の実施形態に基づく、向上された通信セキュリティーに関係した例示的環境100を示している。いくつかの実施形態では、環境100は、ネットワーク130を通じて通信する第一のコンピューティング装置110および第二のコンピューティング装置120を含んでいてもよい。第一のコンピューティング装置110および第二のコンピューティング装置120は安全な仕方で通信することを試みてもよく、一方、敵140が第一のコンピューティング装置110と第二のコンピューティング装置120の間の通信のセキュリティーを破ることを試みることがありうる。
【0016】
いくつかの実施形態では、第一のコンピューティング装置110および/または第二のコンピューティング装置120は、第一のコンピューティング装置110と第二のコンピューティング装置120の間の安全な通信を容易にするために、一つまたは複数の暗号学的技法を利用してもよい。たとえば、第一のコンピューティング装置110が第二のコンピューティング装置120と鍵成分を交換してもよく、それにより、両方のコンピューティング装置が共有される鍵を生成しうる。追加的な例として、第一のコンピューティング装置110が公開鍵および秘密鍵を生成して、公開鍵のほうを共有してもよく、それにより、第二のコンピューティング装置120は該公開鍵にアクセスして、該公開鍵を使ってデータを暗号化してもよく、第一のコンピューティング装置110は、暗号化されたデータを、秘密鍵を使って解読してもよい。これらおよび他の実施形態において、第一のコンピューティング装置110および/または第二のコンピューティング装置120は、前記一つまたは複数の暗号学的技法を実行する際に、確率的丸めを利用してもよい。確率的丸めの二つの例が図2のAおよびBを参照して記述される。
【0017】
暗号学的技法の例としての鍵交換を参照するに、いくつかの実施形態では、第一のコンピューティング装置110は第一の公開鍵成分および第一の秘密情報を生成してもよい。第一のコンピューティング装置110は第一の公開鍵成分をネットワーク130を通じて第二のコンピューティング装置120に送ってもよい。第一の公開鍵成分を使って第二のコンピューティング装置は第二の公開鍵成分および第二の秘密情報を生成してもよい。第二のコンピューティング装置120は第二の公開鍵成分を第一のコンピューティング装置110に送信してもよい。第一のコンピューティング装置110は、前記第一の秘密情報および前記第一および第二の公開鍵成分の一つまたは複数を使って、共有される鍵を導出してもよく、第二のコンピューティング装置120は、前記第二の秘密情報および前記第一および第二の公開鍵成分の一つまたは複数を使って、前記共有される鍵を導出してもよい。前記共有される鍵を使って、第一のコンピューティング装置110および/または第二のコンピューティング装置120は、第一のコンピューティング装置110と第二のコンピューティング装置120の間で行ったり来たり伝送されるデータを暗号化したり、あるいは他の仕方で保護したりしてもよい。追加的または代替的に、第一のコンピューティング装置110および/または第二のコンピューティング装置120は、前記共有される鍵を含むまたは前記共有される鍵に基づく制約されたコンテンツに対する要求を提出してもよい。いくつかの実施形態では、敵140が前記第一の公開鍵成分および前記第二の公開鍵成分をそれらが交換される際に観察するまたは見ることがありうる。しかしながら、敵140は前記第一および第二の公開鍵成分だけに基づいて前記共有される鍵を導出することはできない。
【0018】
暗号学的技法の別の例としての公開鍵暗号化を参照するに、第一のコンピューティング装置110が公開鍵および秘密鍵を生成してもよい。第一のコンピューティング装置110は公開鍵を第二のコンピューティング装置120に送ってもよい。第二のコンピューティング装置は公開鍵を使ってメッセージを暗号化してもよく、暗号化されたメッセージを第一のコンピューティング装置110に送ってもよい。第一のコンピューティング装置110は秘密鍵を使ってそのメッセージを解読してもよい。敵140が公開鍵を観察することがあり、暗号化されたメッセージを観察することがありうる。しかしながら、敵140は単に公開鍵を用いてメッセージを解読することはできないし、暗号化されたメッセージをランダムな値から区別することができないこともありうる。
【0019】
いくつかの実施形態では、第一のコンピューティング装置110および/または第二のコンピューティング装置120は、第一のコンピューティング装置110と第二のコンピューティング装置120の間の通信のセキュリティーを改善するために、確率的な丸めを利用してもよい。たとえば、いくつかの実施形態では、確率的丸めは、パケットの暗号化において利用されてもよい。パケットを暗号化するために確率的丸めを利用することの例は、図3および/または図4に関して記述される。もう一つの例として、いくつかの実施形態では、確率的丸めは、公開鍵成分の生成において利用されてもよい。公開鍵成分の生成に関して確率的丸めを利用することの例は、図5Aおよび図5Bに関して記述される。
【0020】
第一のコンピューティング装置110および第二のコンピューティング装置120は、ネットワーク130を通じて通信するよう構成された任意のコンピューティング装置として実装されうる。たとえば図6に関して記述されるコンピューティング・システムである。
【0021】
ネットワーク130は、通常型ネットワーク、有線もしくは無線ネットワークとして実装されてもよく、および/または数多くの異なる構成またはそれらの組み合わせの任意のものをもちうる。さらに、ネットワーク130はローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)(たとえばインターネット)または他の相互接続されたデータ経路であって、それを通じて複数の装置および/またはエンティティが通信しうるものを含んでいてもよい。いくつかの実施形態では、ネットワーク130は、ピアツーピア・ネットワークを含んでいてもよい。ネットワーク130は、多様な異なる通信プロトコルでデータを送るために遠隔通信ネットワークの諸部分に結合されていてもよく、あるいは該諸部分を含んでいてもよい。いくつかの実施形態では、ネットワーク130は、通信および/またはデータを送受信するためにブルートゥース(登録商標)通信ネットワークまたはセルラー通信ネットワークを含んでいてもよい。そのような送受信は、ショート・メッセージ・サービス(SMS)、マルチメディア・メッセージング・サービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、無線アプリケーション・プロトコル(WAP)、電子メールおよび/またはその他のアプローチを介してのものを含む。ネットワーク130は、第三世代(3G)、第四世代(4G)、ロングタームエボリューション(LTE)、ロングタームエボリューションアドバンスト(LTE-A)、LTEを通じた音声(「VoLTE」)または他の任意のモバイル・データ・ネットワークもしくは諸モバイル・データ・ネットワークの組み合わせを含んでいてもよい。
【0022】
本開示の範囲から外れることなく、環境100に修正、追加または省略がなされてもよい。たとえば、環境100は、任意の仕方で接続される任意の数のコンピューティング装置を含んでいてもよい。多くの場合、環境100は、図示したよりも多くのコンピューティング装置を含んでいてもよい。
【0023】
整数p≦qについて、法の丸めを数学的に記述するとき、法の丸め〔モジュラー丸め(modular rounding)〕は数学的に次のように記述されてもよい。
【数1】
たとえば、pが10,000であり、qが100,000である場合、法の丸め関数は10,000/100,000(すなわち1/10)に関心対象の値を乗算して、結果を四捨五入してもよい。そのような丸めは、丸められた結果から不必要な0を除去しうる。行列またはベクトルに適用されるとき、そのような丸めはZq上で座標ごとに拡張されうる。
【0024】
いくつかの実施形態では、通信を安全にするために使われる一つの数学的手法は、LWE(Learning With Errors)問題と称されることがある。LWE問題は、整数nおよびq、Zq上の何らかの分布ψならびにいずれもZq n上の分布である分布KおよびTを参照して記述されうる。記号Zq nはqを法とした整数(たとえば、0からq-1までの実数)のベクトルを表わし、n個の整数をもつ。(q,n,ψ,K,T)を含むLWE問題は、未指定のチャレンジ・オラクルOLWEを参照して記述されてもよい。これは、分布Kからサンプリングされた、何らかの一定のランダムな秘密鍵s∈Zq nを担持する、ノイズのある擬似ランダム・サンプラーOs LWE、あるいは真にランダムなサンプラーO$ LWEであり、それらの挙動はそれぞれ次のようになる。
【0025】
OS LWE
【数2】
の形のサンプルを出力。ここで、s∈Zq nは分布Kからサンプリングされた諸呼び出しを通じて不変な持続値を含み、δi∈Zqは分布ψからのフレッシュなサンプルを含み、ai∈Zq nはTからランダムにサンプリングされた値を含む。
【0026】
O$ LWE
【数3】
の形のサンプルを出力。ここで、ベクトルai∈Zq nはTからランダムにサンプリングされた値を含み、riはZqからの一様にランダムなサンプルを含む。変数$はオラクルが真にランダムであることを示す。
【0027】
(q,n,ψ,K,T)を含むLWE問題は、チャレンジ・オラクルOLWEへの反復される問い合わせを許容する。アルゴリズムAは、Kからランダムに適切に選択されたベクトルsについて
【数4】
が無視できない場合に、LWE問題を決定しうる。ここで、Advはベクトルsの値を決定することにおける有利さの指示を表わしていてもよく、Prはその事象が生起する確率を決定するための関数を表わしていてもよい(たとえば、
【数5】
は、アルゴリズムAがOS LWEについて正しい値を推定する確率を表わしうる)。
【0028】
いくつかの実施形態では、通信を安全にするために使われる別の数学的手法が、LWR(Learning With Rounding)と称されることがある。LWR問題は、p≦qであるとして整数n、pおよびq、Zq上の何らかの分布ψならびにいずれもZq n上の分布である分布KおよびTを参照して記述されうる。(q,p,n,ψ,K,T)を含むLWR問題は、未指定のチャレンジ・オラクルOLWRを参照して記述されてもよい。これは、分布Kからサンプリングされた、何らかの一定のランダムな秘密鍵s∈Zq nを担持する、ノイズのある擬似ランダム・サンプラーOs LWR、あるいは真にランダムなサンプラーO$ LWRであり、それらの挙動はそれぞれ次のようになる。
【0029】
OS LWR
【数6】
の形のサンプルを出力。ここで、s∈Zq nは分布Kからサンプリングされた諸呼び出しを通じて不変な持続値を含み、ai∈Zq nはTからランダムにサンプリングされた値を含む。
【0030】
O$ LWR
【数7】
の形のサンプルを出力。ここで、ai∈Zq nはTからランダムにサンプリングされた値を含み、riはZqからの一様にランダムなサンプルを含む。変数$はオラクルが真にランダムであることを示す。
【0031】
(q,p,n,ψ,K,T)を含むLWR問題は、チャレンジ・オラクルOLWRへの反復される問い合わせを許容する。アルゴリズムAは、Kからランダムに適切に選択されたベクトルsについて
【数8】
が無視できない場合に、LWR問題を決定しうる。
【0032】
いくつかの実施形態では、法の丸め後、整数はかさ上げ〔リフト〕されてもとのオーダーに戻されてもよい。かさ上げは、法の丸めでの場合と同様の意味をもつpおよびqに関して数学的に記述されうる。かさ上げは、数学的には
【数9】
と記述されてもよい。ここで、Rは実数を表わしてもよく、Zは整数を表わしてもよい。このようにして、かさ上げは、オーダーを低下させたモジュラー丸め関数を逆にしうるものであり、丸められた値をもとのオーダーに戻すかさ上げをするためのものである。いくつかの実施形態では、かさ上げは次のように表わされるよう拡張されうる。
【数10】
【0033】
いくつかの実施形態では、丸める前に数がどのくらい丸め境界に近いことがありうるかを判別するために、境界Bが含められてもよい。たとえば、分布の属ψ∈{ψn}n∈Nについて、分布が-BとB内にはいる確率が1であれば、あるいは数学的には
【数11】
であれば、分布はBを境界として有界であると考えられてもよい。
【0034】
いくつかの実施形態では、通信を安全にするために使われる数学的手法は、境界消去のある確率的丸めを含む確率的丸めを含んでいてもよい。そのような実施形態では、法の丸めは、数値が丸め境界Bからある閾値量以内でない限り、該数値に対して実行されてもよい。境界消去のある確率的丸めは、数学的には
【数12】
と書かれてもよい。ここで、pおよびqはp≦qの整数であってもよく、Bは丸め境界を指してもよく、B∈Z<(q/p)/2によって表わされてもよい。ψは、B有界な誤差分布であるZq上の分布を含んでいてもよい。境界消去のある確率的丸めを入力x∈Zqに適用することは、次のように進みうる。
【表1】
ここで、δは分布ψからサンプリングされる値であり、⊥は値xが破棄されることを表わす。このように、丸められるべき法のもとでの値が境界Bから閾値以内にある状況では、その値は破棄されてもよく、そうでない場合には、その値は法のもとで丸められてもよい。境界消去のある確率的丸めは、LWE問題および/またはLWR問題と同じくらい安全でありえ、LWE問題および/またはLWR問題よりも効率的でありうる。
【0035】
いくつかの実施形態では、通信を安全にするために使われる数学的手法は、境界消去のある偽の丸めを含む確率的丸めを含んでいてもよい。そのような実施形態では、法の丸めは、数値が丸め境界Bからある閾値量以内でない限り、該数値に対して実行されてもよく、その場合、追加的なランダムさが値に加えられてもよい。境界消去のある偽の丸めは、数学的には
【数13】
と書かれてもよい。ここで、pおよびqはp≦qの整数であってもよく、Bは丸め境界を指してもよく、B∈Z<(q/p)/4によって表わされてもよい。ψは、B有界な誤差分布であるZq上の分布を含んでいてもよい。いくつかの実施形態では、境界消去のある偽の丸めは、誤差累積分布関数(CDF: cumulative distribution function)ΨB,x→{0,1}を利用してもよい。誤差CDFは、所与のxおよびψについて、次のように分布させられてもよい。
【表2】
【0036】
境界消去のある偽の丸めを入力x∈Zqに適用することは、次のように進みうる。
【表3】
ここで、zは値xがどのくらい境界に近いかを示しうる、分布誤差CDF分布ΨB,xからサンプリングされた値であり(たとえばzが1であれば、それは値xが境界Bに近いことを示しうるので、追加的なランダムさが加えられる)、bは丸められた値に追加的なランダムさを加えるために選択される値である。このように、丸められるべき値が境界Bから閾値以内にある状況では、その値は追加的なランダムさを加えられてもよく、そうでない場合には、その値は法のもとで丸められてもよい。さらに、境界消去のある偽の丸めは、境界消去のある確率的丸めと同様であってもよく、変異は、丸められるべき値が境界に近いときに、破棄されるのではなく、追加的なランダムさがその値に加えられるということである。
【0037】
図2のAおよびBは、本開示の一つまたは複数の実施形態に基づく、確率的丸めの例示的方法200aおよび200bのフローチャートを示している。方法200aは、境界消去のある偽の丸めの例を示しており、方法200bは境界消去のある確率的丸めの例を示している。方法200aおよび200bは、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1の第一または第二のコンピューティング装置110/120または他のシステムまたは装置が、方法200aおよび/または200bのいずれかに関連する動作の一つまたは複数を実行してもよい。離散的なブロックで図示されているが、方法200aおよび200bのブロックの一つまたは複数の関連する段階および動作は、所望される実装に依存して、追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
【0038】
図2のAを参照するに、ブロック210において、エントリーが丸め境界から閾値量以内であるかどうかについて判定がなされてもよい。たとえば、コンピューティング装置(たとえば図1の第一のコンピューティング装置110)が、暗号学的処理との関連で法の丸め関数を実行していてもよく、エントリーが境界Bにどのくらい近いかを判別してもよい。これらおよび他の実施形態において、エントリーは単独の値を含んでいてもよく、あるいはベクトルまたは行列内の要素を含んでいてもよい。エントリーが閾値量以内であると判定することに応答して、方法200aはブロック220に進んでもよい。エントリーが閾値量の外側であると判定することに応答して、方法200aはブロック230に進んでもよい。ブロック210の数学的動作は次を含んでいてもよい。
【表4】
【0039】
ブロック220では、エントリーに追加的な変動性が導入されてもよい。たとえば、コンピューティング装置は、エントリーを真にランダムな値から区別するのが一層難しくなるよう、エントリーについての変動性を増大させてもよい。たとえば、いくつかの値については、法の丸め演算の結果が追加的な1または0を加えられてもよく、他の値については、法の丸め演算の結果は追加的な1または0を減算されてもよい。ブロック220の数学的動作は次を含んでいてもよい。
【表5】
【0040】
ブロック230では、エントリーは丸められてもよい。たとえば、コンピューティング装置はエントリーに対して法の丸め演算を実行してもよい。ブロック230の数学的動作の例は次を含んでいてもよい。
【表6】
【0041】
図2のBを参照するに、ブロック240において、エントリーが丸め境界から閾値量以内であるかどうかについて判定がなされてもよい。ブロック240は図2のAのブロック210と同様または類似であってもよい。エントリーが閾値量以内であると判定することに応答して、方法200bはブロック260に進んでもよい。エントリーが閾値量の外側であると判定することに応答して、方法200bはブロック270に進んでもよい。ブロック240の数学的動作は次を含んでいてもよい。
【表7】
【0042】
ブロック260では、エントリーは破棄されてもよい。たとえば、ブロック240のエントリーが境界から閾値以内であれば、コンピューティング装置(たとえば第一のコンピューティング装置110)は、そのエントリーが暗号学的処理の間に含められないよう、破棄してもよい。ブロック260の数学的動作は次を含んでいてもよい。
【表8】
【0043】
ブロック270では、エントリーは丸められてもよい。ブロック270は図2のAのブロック230と同様または類似であってもよい。ブロック270の数学的動作の例は次を含んでいてもよい。
【表9】
【0044】
よって、方法200aおよび200bは、確率的丸めを実行するために使用されうる。本開示の範囲から外れることなく、方法200aおよび/または200bに修正、追加または省略がなされてもよい。たとえば、方法200aおよび/または200bの動作は、異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部は任意的であったり、より少数の動作およびアクションに組み合わされたり、追加的な動作およびアクションに展開されたりしてもよい。
【0045】
図3は、本開示の一つまたは複数の実施形態に基づく、通信セキュリティーを向上させるために確率的丸めを利用する例示的方法300のフローチャートを示している。方法300は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1の第一または第二のコンピューティング装置110/120または他のシステムまたは装置が、方法300に関連する動作の一つまたは複数を実行してもよい。離散的なブロックで図示されているが、方法300のブロックの一つまたは複数の関連する段階および動作は、所望される実装に依存して、追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。いくつかの実施形態では、方法300は、確率的丸めを利用する公開鍵交換の例を実装する。
【0046】
ブロック310では、秘密鍵が生成されてもよい。たとえば、第一のコンピューティング装置(たとえば図1の第一のコンピューティング装置110)が暗号学的動作の一部として秘密鍵を生成してもよい。秘密鍵は、他のコンピューティング装置から受領されるデータ・パケットを復号するために第一のコンピューティング装置によって利用されうる数学的な値または演算子を含みうる。ブロック310の数学的動作の例は、整数m、n、hs、hr、l、t、pおよびqを使うKeyGen演算を含んでいてもよい。ここで、hs<n、hr<mであり、t|p|qである。ここで、|は整除演算子を表わす(たとえば、tをpまたはqで割ったときに余りがなく、pをqで割ったときに余りがない)。
【0047】
KeyGen演算は、公開鍵pkおよび秘密鍵skを出力しうる。たとえば、
【数14】
たとえば、Aは、空間Zqからのランダムな値をもつ、次元mかけるnの行列であってもよい。
【数15】
たとえば、Sはハミング重み分布HWTnに基づいて導出される秘密のベクトルの行列であってもよい。
【数16】
たとえば、EはSの秘匿性を保護するためにランダムさを導入するための行列であってもよく、B有界の誤差分布ψ:{・}→Zqから選択される要素をもつ、次元mかけるlのものであってもよい。
【数17】
たとえば、BはA、SおよびEを組み合わせた行列であってもよい。
このように、公開鍵は、AとBの連結を含んでいてもよく、秘密鍵はSであってもよい。
【0048】
ブロック320では、公開鍵が第一のコンピューティング装置において生成されてもよい。たとえば、第一のコンピューティング装置(たとえば図1の第一のコンピューティング装置110)は暗号学的動作の一部として公開鍵を生成してもよい。公開鍵は、第一のコンピューティング装置への通信のために一つまたは複数のデータ・パケットを暗号化するために一つまたは複数の他のコンピューティング装置によって利用されうる数学的な値または演算子を含みうる。ブロック320の数学的動作の例は、pkを生成するためにブロック310に関して述べたものを含みうる。
【0049】
ブロック330では、公開鍵が第一のコンピューティング装置から第二のコンピューティング装置に送信されてもよい。たとえば、第一のコンピューティング装置は、公開鍵を含む一つまたは複数のデータ・パケットを生成して、該データ・パケットをネットワークを通じて第二のコンピューティング装置(たとえば図1の第二のコンピューティング装置120)に送信してもよい。
【0050】
ブロック340では、第二のコンピューティング装置において、公開鍵を使って、一つまたは複数のデータ・パケットが暗号化されてもよい。データ・パケット暗号化は、前記一つまたは複数の暗号化されたデータ・パケットを生成することにおいて使われる入力の少なくとも一つに対して、確率的丸めを利用してもよい。たとえば、第二のコンピューティング装置は、第一のコンピューティング装置のために意図されたデータ・パケットを暗号化するために、確率的丸めを利用してもよい。ブロック340に関連する数学的動作の例は、下記のようなEncpk(m∈Zt l)を使って、メッセージmを公開鍵pkを使って暗号化して、暗号化されたメッセージcにすることを含んでいてもよい。
【数18】
ここで、rは、ハミング重み分布に基づく要素をもつ、ランダムさを導入するための値のベクトルであり、a'およびb'はそれぞれAおよびBの転置とrとの組み合わせのベクトルである。暗号化されたメッセージcは二つの成分aおよびbを含んでいてもよい。aは空間Zpにおけるa'の確率的丸め(上記では確率的な境界消去のある偽の丸めで示されている)に対応してもよい。bはb'の確率的丸め(上記では確率的な境界消去のある偽の丸めで示されている)と、メッセージmをより上の桁のビットにシフトさせるためにp/tを乗算された秘密のメッセージとに対応してもよい。上記では確率的な境界消去のある偽の丸めを使って例示されているが、境界消去のある確率的丸めが使われてもよい。確率的丸めを利用して一つまたは複数のデータ・パケットを暗号化するもう一つの例は、図4を参照して記述される。
【0051】
ブロック350では、ブロック340で暗号化された前記一つまたは複数のパケットは、第二のコンピューティング装置から第一のコンピューティング装置に送信されてもよい。
【0052】
ブロック360では、第一のコンピューティング装置は秘密鍵を使って前記一つまたは複数のパケットを復号してもよい。たとえば、第一のコンピューティング装置は、暗号化されたメッセージに対して秘密鍵を使ってDecsk演算を実行して、メッセージm'を導出してもよい。Decsk演算の例は次を含んでいてもよい。
【数19】
ここで、tはZt lのもとのメッセージの法を表わす。Decsk演算は、暗号化されたメッセージcからa'およびb'を除去して、もとのメッセージを導出しうる。
【0053】
このように、方法300は、確率的丸めを使って、セキュリティー保護された通信を向上させるために使われうる。本開示の範囲から外れることなく、方法300に修正、追加または省略がなされてもよい。たとえば、方法300の動作は、異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部は任意的であったり、より少数の動作およびアクションに組み合わされたり、追加的な動作およびアクションに展開されたりしてもよい。
【0054】
図4は、本開示の一つまたは複数の実施形態に基づく、確率的丸めを利用してパケットを暗号化する例示的方法400のフローチャートを示している。方法400は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1の第一または第二のコンピューティング装置110/120または他のシステムまたは装置が、方法400に関連する動作の一つまたは複数を実行してもよい。離散的なブロックで図示されているが、方法400のブロックの一つまたは複数の関連する段階および動作は、所望される実装に依存して、追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。方法400の記述は、図3のブロック340を参照して使われたのと同様の意味をもつ一つまたは複数の同様の変数を利用することがある。
【0055】
ブロック410では、ハミング重みに基づいて第一のベクトルまたは行列が生成されてもよい。たとえば、第一のコンピューティング装置(たとえば図1の第一のコンピューティング装置110)がベクトルrを生成してもよい。いくつかの実施形態では、rはr←HWTm(hr)に従って生成されうる。
【0056】
ブロック420では、公開鍵の第一の部分の転置と前記第一のベクトルとを組み合わせることに基づいて、第二のベクトルが生成されてもよい。たとえば、第一のコンピューティング装置がベクトルa'を生成してもよい。いくつかの実施形態では、ベクトルa'は'←ATrに従って生成されてもよい。
【0057】
ブロック430では、公開鍵の第二の部分の転置と前記第一のベクトルとを組み合わせることに基づいて、第三のベクトルが生成されてもよい。たとえば、第一のコンピューティング装置がベクトルb'を生成してもよい。いくつかの実施形態では、ベクトルb'は'←BTrに従って生成されてもよい。
【0058】
ブロック440では、第二のベクトルの各エントリーを確率的に丸めることに基づいて、第四のベクトルが生成されてもよい。たとえば、第一のコンピューティング装置がベクトルaを生成してもよい。いくつかの実施形態では、ベクトルaは
【数20】
に従って生成されてもよい。確率的丸めの一つの実施形態(境界消去のある偽の丸め)を使って示されているが、境界消去のある偽の丸めのような他の実施形態も利用されうる。
【0059】
ブロック450では、第三のベクトルの各エントリーを確率的に丸め、暗号化されるべきメッセージを表わす値の倍数を加えることに基づいて、第五のベクトルが生成されてもよい。いくつかの実施形態では、前記値は複数の値のベクトルを含んでいてもよい。たとえば、第一のコンピューティング装置がベクトルbを生成してもよい。いくつかの実施形態では、ベクトルbは
【数21】
に従って生成されてもよい。確率的丸めの一つの実施形態(境界消去のある偽の丸め)を使って示されているが、境界消去のある偽の丸めのような他の実施形態も利用されうる。
【0060】
ブロック460では、第四および第五のベクトルの組み合わせとして、暗号化されたメッセージが出力されうる。たとえば、第一のコンピューティング装置が暗号化されたメッセージcを出力してもよい。いくつかの実施形態では、暗号化されたメッセージcは、
【数22】
に従って生成されてもよい。
【0061】
このように、方法400は、確率的丸めを使って、パケットを暗号化するために使われうる。本開示の範囲から外れることなく、方法400に修正、追加または省略がなされてもよい。たとえば、方法400の動作は、異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部は任意的であったり、より少数の動作およびアクションに組み合わされたり、追加的な動作およびアクションに展開されたりしてもよい。
【0062】
図5Aおよび図5Bは、本開示の一つまたは複数の実施形態に基づく、確率的丸めを利用して通信セキュリティーを向上させる例示的方法500のフローチャートを示している。方法500は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1の第一または第二のコンピューティング装置110/120または他のシステムまたは装置が、方法500に関連する動作の一つまたは複数を実行してもよい。離散的なブロックで図示されているが、方法500のブロックの一つまたは複数の関連する段階および動作は、所望される実装に依存して、追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。いくつかの実施形態では、方法500は、
確率的丸めを利用した鍵交換の例を示していてもよい。
【0063】
図5Aを参照するに、ブロック505において、第一の秘密情報が第一のコンピューティング装置において生成されてもよい。たとえば、第一のコンピューティング装置(たとえば図1の第一のコンピューティング装置110)は第一の秘密情報を、暗号学的処理の一部として生成してもよい。ブロック505の数学的演算の一例は:
【数23】
を含んでいてもよい。ここで、ψは、B有界な誤差分布であるZq上の分布を含んでいてもよく、qおよびBは上記と同じであり、nおよび ̄付きのnは行列Sの次元を表わしていてもよい。
【0064】
ブロック510において、第一の秘密情報に基づく第一の公開鍵成分が第一のコンピューティング装置において生成されてもよい。いくつかの実施形態では、第一の公開鍵成分は二つの成分seedAおよびBを含んでいてもよい。いくつかの実施形態では、第一の公開鍵成分としてAではなくseedAを利用することは、seedAはAよりも小さいことがありうるので、ネットワーク帯域幅を節約しうる。第一の公開鍵成分seedAおよびBを導出するためのブロック510の数学的演算の例は、次を含んでいてもよい。
【表10】
ここで、seedは長さSの0および1の一様にランダムなストリングであり、Gen()はseedAに対して実行されたときに予測可能な結果Aを与えるための既知の関数を表わしていてもよく、nは行列Aの次元を表わしていてもよく、ψはB有界な誤差分布であるZq上の分布を含んでいてもよく、p、qおよびBは上記と同じである。いくつかの実施形態では、第一の鍵成分は確率的丸めを使って生成されてもよい。確率的丸めの一つの実施形態とを使うこととして例解されているが、境界消去をもつ偽の丸めのような他の実施形態が利用されてもよい。
【0065】
ブロック515では、第一の公開鍵成分が、第一のコンピューティング装置から第二のコンピューティング装置(たとえば図1の第二のコンピューティング装置120)に送信されてもよい。
【0066】
ブロック520では、第二の秘密情報が第二のコンピューティング装置において生成されてもよい。ブロック520はブロック505と同様または類似であってもよいが、動作は第二のコンピューティング装置によって実行されてもよい。第二の秘密情報S'を導出するためのブロック520の数学的演算の一例は:
【数24】
を含んでいてもよい。ここで、 ̄付きのmは行列S'の次元を表わしていてもよく、他の変数は上記と同じであってもよい。
【0067】
ブロック525では、第二の公開鍵成分が第二のコンピューティング装置において、確率的丸めを使って生成されてもよい。いくつかの実施形態では、第二の公開鍵成分は第二の秘密情報および/または第一の公開鍵成分に基づいていてもよい。第二の公開鍵成分は行列B'およびCを含んでいてもよい。ブロック530の数学的演算の例は、次を含んでいてもよい。
【表11】
ここで、nおよびmはAの次元の整数であり、B'は第二の秘密情報S'および行列Aの確率的に丸められた組み合わせである行列を含んでいてもよく、Vは、第二の秘密情報S'およびかさ上げされた行列Bの法の丸めをされた組み合わせである行列を含んでいてもよい。いくつかの実施形態では、B'の確率的に丸められたバージョンを使うことは、B'は末尾の0を担持する必要がないことがあるので、ネットワーク帯域幅の節約を提供しうる。
【0068】
ブロック530では、第二の公開鍵成分が第二のコンピューティング装置から第一のコンピューティング装置に送信されてもよい。
【0069】
図5Bを参照するに、ブロック535では、相互丸め(cross-rounding)ビットが第二のコンピューティング装置から第一のコンピューティング装置に送信されてもよい。たとえば、第二のコンピューティング装置は、第二のコンピューティング装置および第一のコンピューティング装置が両コンピューティング装置の間の丸めが一貫して実行されていることを検証しうるよう、ある種の丸め演算がどのように実行されうるかを示す一つまたは複数のビットを生成してもよい。相互丸めビットを導出するためのブロック535の数学的演算の例は、相互丸め関数を含んでいてもよい。2の冪p(たとえば整数kについてp=2k)についてのそのような相互丸め関数は、数学的に次のように記述されうる。
【数25】
ここで、pはq以下であり、modは法の演算であり、この関数の出力は一つまたは複数のビットである。第二のコンピューティング装置における数学的記述を続けると、前記一つまたは複数の相互丸めビットCは
【数26】
によって生成されうる。ここで、2βは相互丸め関数におけるpを表わす。いくつかの実施形態では、前記一つまたは複数の相互丸めビットは、ブロック525において生成されブロック530において送信される第二の公開鍵成分の一部として含められてもよい。
【0070】
ブロック540では、第二の公開鍵成分の少なくとも一つの丸められた要素が、第一のコンピューティング装置によってかさ上げされてもよい。たとえば、第一のコンピューティング装置は行列B'をかさ上げしてもよい。いくつかの実施形態では、第二のコンピューティング装置が一つまたは複数のかさ上げ動作を実行してもよい。
【0071】
ブロック545では、共有される鍵が、第二の公開鍵成分に基づいて、第一のコンピューティング装置によって導出されてもよい。たとえば、第一のコンピューティング装置は、行列B'のかさ上げされたバージョン、第一の秘密情報Sおよび相互丸めビットCに対して数学的演算を実行してもよい。そのような数学的演算は、非特許文献1に記載されているものと同様または類似であってもよい。同文献の開示全体は参照によって組み込まれる。共有される鍵Kを導出するためのブロック545の数学的演算の例は次を含んでいてもよい。
【数27】
【0072】
ブロック550では、前記共有される鍵が、第二のコンピューティング装置によって、第二の公開鍵成分に基づいて導出されてもよい。たとえば、第二のコンピューティング装置は、共有される鍵を生成するために行列Vに対して法の丸め演算を実行してもよい。いくつかの実施形態では、丸めは、前記相互丸めビットにおいて利用されるまたは前記相互丸めビットによって通信される情報に基づいて実行される。共有される鍵Kを導出するためのブロック550の数学的演算の例は次を含んでいてもよい。
【数28】
【0073】
ブロック555では、制約されたコンテンツへのアクセスを要求するために、第二のコンピューティング装置から第一のコンピューティング装置に要求が送信されてもよい。要求は、共有される鍵に基づいていてもよい。たとえば、要求は共有される鍵を含んでいてもよく、あるいは共有される鍵を使ってエンコードまたは暗号化されてもよい。
【0074】
ブロック560は、前記要求に基づいて制約されたコンテンツへのアクセスが承認されてもよい。たとえば、第一のコンピューティング装置は、前記要求の、前記共有される鍵に基づく一つまたは複数の側面を比較し、それらを前記共有される鍵と比較してもよい。マッチに基づいて、あるいは第二のコンピューティング装置が前記共有される鍵をもつことに基づいて、第一のコンピューティング装置は第二のコンピューティング装置に、前記制約されたコンテンツへのアクセスを承認してもよい。
【0075】
よって、方法500は、確率的丸めを使ってパケットを暗号化するために使われてもよい。本開示の範囲から外れることなく、方法500に修正、追加または省略がなされてもよい。たとえば、方法400の動作は、異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部は任意的であったり、より少数の動作およびアクションに組み合わされたり、追加的な動作およびアクションに展開されたりしてもよい。
【0076】
図6は、本開示に記載される少なくとも一つの実施形態に基づく例示的なコンピューティング・システム600を示している。システム600は、ネットワークを通じて通信するいかなる好適なシステム、装置またはデバイスを含んでいてもよい。コンピューティング・システム600は、プロセッサ610、メモリ620、データ記憶部630および通信ユニット640を含んでいてもよく、これらはみな通信上結合されていてもよい。データ記憶部630はさまざまな型のデータ、たとえば確率的丸めを使うことなどによって通信セキュリティーを向上させるためのプロトコルまたは手順を含んでいてもよい。
【0077】
一般に、プロセッサ610は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含むいかなる好適な特殊目的または汎用のコンピュータ、コンピューティング・エンティティまたは処理装置を含んでいてもよく、いかなる適用可能なコンピュータ可読記憶媒体に記憶された命令を実行するよう構成されていてもよい。たとえば、プロセッサ610は、プログラム命令を解釈および/または実行するおよび/またはデータを処理するよう構成された、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)または他の任意のデジタルもしくはアナログ回路を含んでいてもよい。
【0078】
図6では単一のプロセッサとして図示されているが、プロセッサ610は、個々にまたは集団的に、本開示において記述される任意の数の動作を実行するよう構成された、任意の数のネットワークもしくは物理的一に分散されていてもよい任意の数のプロセッサを含んでいてもよい。いくつかの実施形態では、プロセッサ610は、メモリ620、データ記憶630またはメモリ6202およびデータ記憶630に記憶されたデータを処理することおよび/またはプログラム命令を解釈および/または実行することを行なってもよい。いくつかの実施形態では、プロセッサ610は、データ記憶630からプログラム命令を取ってきて、該プログラム命令をメモリ620にロードしてもよい。
【0079】
プログラム命令がメモリ620にロードされたのち、プロセッサ610はプログラム命令、たとえば図2のA、B、図3図4および図5A図5Bのそれぞれ方法200a、200b、300、400または500を実行するための命令を実行してもよい。たとえば、プロセッサ610は、一つまたは複数の鍵を生成することまたはデータ・パケットを暗号化することに関する命令を取得してもよい。
【0080】
メモリ620およびデータ記憶部630は、コンピュータ実行可能命令またはデータ構造を担持または記憶しているコンピュータ可読記憶メディアまたは一つまたは複数のコンピュータ可読記憶媒体を含んでいてもよい。そのようなコンピュータ可読記憶メディアは、プロセッサ610のような汎用または特殊目的のコンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。いくつかの実施形態では、コンピューティング・システム600は、メモリ620およびデータ記憶部630のいずれも、含んでいてもいなくてもよい。
【0081】
限定ではなく例として、そのようなコンピュータ可読記憶メディアは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的に消去可能なプログラム可能型読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)または他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば半導体メモリ・デバイス)またはコンピュータ実行可能命令もしくはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用でき、汎用もしくは特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、非一時的なコンピュータ可読記憶媒体を含んでいてもよい。上記の組み合わせもコンピュータ可読記憶媒体の範囲内に含まれてもよい。コンピュータ実行可能命令は、たとえば、プロセッサ610にある種の動作または一群の動作を実行させるよう構成された命令およびデータを含んでいてもよい。
【0082】
通信ユニット640は、ネットワークを通じて情報を送信または受信するよう構成されている任意のコンポーネント、デバイス、システムまたはそれらの組み合わせを含んでいてもよい。いくつかの実施形態では、通信ユニット640は他の位置、同じ位置における他の装置と、あるいはさらには同じシステム内の他のコンポーネントと通信してもよい。たとえば、通信ユニット640はモデム、ネットワーク・カード(無線または有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(たとえばアンテナ)および/またはチップセット(たとえばブルートゥース装置、802.6装置(たとえば都市圏ネットワーク(MAN))、Wi-Fi装置、WiMax装置、セルラー通信設備など)および/またはその他を含んでいてもよい。通信ユニット640は、本開示に記載されるネットワークおよび/または他の任意の装置またはシステムとデータが交換されることを許容しうる。たとえば、通信ユニット640は、システム600が他のシステム、たとえばコンピューティング装置および/または他のネットワークと通信することを許容しうる。
【0083】
本開示の範囲から外れることなく、システム600に修正、追加または省略がなされてもよい。たとえば、データ記憶部630は、複数の位置に位置しており、ネットワークを通じてプロセッサ610によってアクセスされる複数の異なる記憶媒体であってもよい。
【0084】
上記のように、本開示に記載される実施形態は、下記でより詳細に論じられる、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含む特殊目的または汎用のコンピュータ(たとえば図6のプロセッサ610)の使用を含んでいてもよい。さらに、上記のように、本開示に記載される実施形態は、コンピュータ実行可能命令またはデータ構造を担持または記憶しているコンピュータ可読媒体(たとえば図6のメモリ620またはデータ記憶部630)を使って実装されてもよい。
【0085】
本開示での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントの動作を実行するよう構成された特定のハードウェア実装および/またはコンピューティング・システムの汎用ハードウェア(たとえばコンピュータ可読媒体、処理装置または他の何らかのハードウェア)に記憶および/または実行さうれるソフトウェア・オブジェクトまたはソフトウェア・ルーチンを指しうる。いくつかの実施形態では、本開示に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、(たとえば別個のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本開示に記載されるシステムおよび方法のいくつかは、一般に、(汎用ハードウェアに記憶および/または実行される)ソフトウェアで実装されるものとして記述されるが、個別のハードウェア実装またはソフトウェアと個別のハードウェア実装の組み合わせも可能であり、考えられている。本稿において、「コンピューティング・エンティティ」は、本開示で先に定義したような任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールもしくはモジュールの組み合わせでありうる。
【0086】
慣用に従い、図面に示されるさまざまな特徴は同縮尺で描かれていないことがある。本開示に呈示される図は、いかなる特定の装置(たとえばデバイス、システムなど)または方法の実際のビューであることも意図されておらず、単に、本開示のさまざまな実施形態を記述するために用いられる理想化された表現である。よって、さまざまな特徴の寸法は、明確のために任意に拡大または縮小されることがある。さらに、図面のいくつかは明確のために単純化されてもよい。このように、図面は、所与の装置(たとえばデバイス)のコンポーネントの全部または特定の方法の全部の動作を描いていないことがある。
【0087】
本開示および特に付属の請求項(たとえば付属の請求項の本文)において使われる用語は一般に「オープン」な用語として意図されている(たとえば、用語「含む」は「含むがそれに限られない」と解釈されるべきであり、用語「もつ」は「少なくとも…をもつ」と解釈されるべきであり、用語「含む」は「含むがそれに限られない」と解釈されるべきであるなど)。
【0088】
さらに、導入される請求項の記載の特定の数が意図される場合、そのような意図は請求項において明示的に記載される。そのような記載のない場合には、そのような意図はない。たとえば、理解の助けとして、以下の付属の請求項は、請求項の記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうる。
【0089】
さらに、たとえ導入される請求項の記載の特定の数が明示的に記載される場合であっても、当業者は、そのような記載は少なくともその記載された数を意味すると解釈されるべきであることを認識するであろう(たとえば、他の修飾語なしで単に「二つの記載」という記載は、少なくとも二つの記載または二つ以上の記載を意味する)。さらに、「A、BおよびCなどのうちの少なくとも一つ」または「A、BおよびCなどの一つまたは複数」に類似する慣用句が使われる事例においては、一般に、そのような構文はAだけ、Bだけ、Cだけ、AおよびB両方、AおよびC両方、BおよびC両方またはA、BおよびC全部などを含むことが意図される。
【0090】
さらに、明細書であれ請求項であれ図面であれ、二つ以上の代替的な用語を呈示するあらゆる選言的な語句は、該用語の一つを含む、該用語のいずれかを含むまたは該用語の両方を含む可能性を考えているものと理解されるべきである。たとえば、「AまたはB」という句は、「A」または「B」または「AおよびB」の可能性を含むと理解されるべきである。
【0091】
しかしながら、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含むときでも、そのような句の使用は、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入された請求項の記載を含む何らかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも一つの」または「一つまたは複数の」を意味するものと解釈されるべきである)。同じことは、請求項の記載を導入する定冠詞の使用についても成り立つ。
【0092】
さらに、用語「第一」、「第二」、「第三」などの使用は、本稿では必ずしも、要素の特定の順序または数を含意するために使われるのではない。一般に、用語「第一」、「第二」、「第三」などは、一般的な識別子として、異なる要素の間で区別をするために使われる。用語「第一」、「第二」、「第三」などが特定の順序を示すことを含意することを示すものがなければ、これらの用語は、特定の順序を含意するものと理解されるべきではない。さらに、用語「第一」、「第二」、「第三」などが特定の数を示すことを含意することを示すものがなければ、これらの用語は、要素の特定の数を含意するものと理解されるべきではない。たとえば、第一のウィジェットが第一のサイドをもつと記載され、第二のウィジェットが第二のサイドをもつと記載されることがありうる。第二のウィジェットに関する用語「第二のサイド」の使用は、第二のウィジェットのかかるサイドを第一のウィジェットの「第一のサイド」から区別するためのものであって、第二のウィジェットが二つのサイドをもつことは含意しないことがありうる。
【0093】
本開示において記載されるすべての例および条件付きの言辞は、本発明および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に記載される例および条件に限定することなく解釈されるものとする。本開示の実施形態について詳細に述べてきたが、本開示の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
【0094】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークを通じて通信するよう構成された通信装置と;
一つまたは複数のプロセッサと;
一つまたは複数の非一時的なコンピュータ可読媒体とを有するシステムであって、前記コンピュータ可読媒体は、前記一つまたは複数のプロセッサによって実行されたときに当該システムに一つまたは複数の動作を実行させる命令を含んでおり、前記動作は:
前記ネットワークを通じた当該システムとコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のパケットに対して暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含む、段階と;
前記通信装置を介して、前記一つまたは複数のパケットを使って、前記ネットワークを通じて前記コンピューティング装置と通信する段階とを含む、
システム。
(付記2)
前記暗号学的処理が:
前記コンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分への少なくとも一つの入力は確率的に丸められ、第一の秘密情報に基づく、段階と;
前記第一の公開鍵成分を当該システムから前記コンピューティング装置に送信する段階と;
前記コンピューティング装置から当該システムにおいて第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分への少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
付記1記載のシステム。
(付記3)
前記暗号学的処理が:
前記コンピューティング装置から公開鍵を受信する段階と;
一つまたは複数の入力を確率的に丸めることによって、前記公開鍵を使って、前記一つまたは複数のパケットを暗号化して、データの暗号化された一つまたは複数のパケットにする段階と;
前記暗号化された一つまたは複数のパケットを前記コンピューティング装置に送信する段階とを含む、
付記1記載のシステム。
(付記4)
前記確率的丸めが、確率的な境界消去のある丸めを含む、付記1記載のシステム。
(付記5)
前記確率的丸めが、確率的な境界消去のある偽の丸めを含む、付記1記載のシステム。
(付記6)
確率的な境界消去のある前記偽の丸めが:
前記暗号学的処理に関連する値が丸め境界から閾値量以内であるかどうかを判定し;
前記値が丸め境界から閾値量以内であることに応答して、そのエントリーに追加的な変動性を導入することを含む、
付記5記載のシステム。
(付記7)
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含む、
方法。
(付記8)
前記暗号学的処理が:
前記第二のコンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分への少なくとも一つの入力は確率的に丸められ、第一の秘密情報に基づく、段階と;
前記第一の公開鍵成分を前記第一のコンピューティング装置から前記第二のコンピューティング装置に送信する段階と;
前記第二のコンピューティング装置から前記第一のコンピューティング装置において第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分への少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
付記7記載の方法。
(付記9)
前記第一のコンピューティング装置によって、前記第二のコンピューティング装置が制約されたコンテンツにアクセスする要求を受信する段階であって、前記要求は前記共有される鍵を含む、段階と;
前記要求に基づいて、前記制約されるコンテンツへのアクセスを、前記第二のコンピューティング装置に承認する段階とを含む、
付記8記載の方法。
(付記10)
前記第二の公開鍵成分の少なくとも一つの丸められた要素をかさ上げする段階をさらに含む、付記8記載の方法。
(付記11)
前記第二のコンピューティング装置から少なくとも一つの相互丸めビットを受信する段階をさらに含み、前記共有される鍵の導出がさらに、前記少なくとも一つの相互丸めビットに基づく、付記8記載の方法。
(付記12)
前記暗号学的処理が:
前記第二のコンピューティング装置から公開鍵を受信する段階と;
一つまたは複数の入力を確率的に丸めることによって、前記公開鍵を使って、前記一つまたは複数のデータ・パケットを暗号化して、暗号化された一つまたは複数のデータ・パケットにする段階と;
前記暗号化された一つまたは複数のデータ・パケットを前記第二のコンピューティング装置に送信する段階とを含む、
付記7記載の方法。
(付記13)
前記一つまたは複数のデータ・パケットを暗号化することが:
前記公開鍵に関連する第一の行列の各要素に対して確率的丸めを実行して、第一のデータを生成し;
前記公開鍵に関連する第二の行列の各要素に対して確率的丸めを実行し;
前記パケットのメッセージを、前記確率的丸めを実行された第二の行列に加えて、第二のデータを生成し;
前記第一のデータおよび前記第二のデータの組み合わせを前記暗号化されたパケットとして出力することを含む、
付記12記載の方法。
(付記14)
前記確率的丸めが、確率的な境界消去のある丸めを含む、付記7記載の方法。
(付記15)
前記確率的丸めが、確率的な境界消去のある偽の丸めを含む、付記7記載の方法。
(付記16)
確率的な境界消去のある前記偽の丸めが:
前記暗号学的処理に関連するエントリーが丸め境界から閾値量以内であるかどうかを判定し;
前記エントリーが丸め境界から閾値量以内であることに応答して、そのエントリーに追加的な変動性を導入することを含む、
付記15記載の方法。
(付記17)
確率的な境界消去のある前記偽の丸めがさらに、前記エントリーが前記丸め境界から前記閾値量より外側であることに応答して、そのエントリーを丸めることを含む、付記16記載の方法。
(付記18)
一つまたは複数のプロセッサによって実行されることに応答して動作を実行する命令を含んでいる非一時的なコンピュータ可読媒体であって、前記動作は:
ネットワークを通じた第一のコンピューティング装置と第二のコンピューティング装置との間の安全な通信を容易にするために一つまたは複数のデータ・パケットに対して暗号学的処理を実行する段階であって、前記暗号学的処理は確率的丸めを含む、段階と;
前記第一のコンピューティング装置の通信装置を介して、前記一つまたは複数のデータ・パケットを使って、前記ネットワークを通じて前記第二のコンピューティング装置と通信する段階とを含む、
コンピュータ可読媒体。
(付記19)
前記暗号学的処理が:
前記第二のコンピューティング装置に送信する第一の公開鍵成分を生成する段階であって、前記第一の公開鍵成分への少なくとも一つの入力は確率的に丸められ、第一の秘密情報に基づく、段階と;
前記第一の公開鍵成分を前記第一のコンピューティング装置から前記第二のコンピューティング装置に送信する段階と;
前記第二のコンピューティング装置から前記第一のコンピューティング装置において第二の公開鍵成分を受信する段階であって、前記第二の公開鍵成分への少なくとも一つの入力は確率的に丸められる、段階と;
前記第二の公開鍵成分および前記第一の秘密情報に基づいて、共有される鍵を導出する段階とを含む、
付記18記載のコンピュータ可読媒体。
(付記20)
前記暗号学的処理が:
前記第二のコンピューティング装置から公開鍵を受信する段階と;
一つまたは複数の入力を確率的に丸めることによって、前記公開鍵を使って、前記一つまたは複数のデータ・パケットを暗号化して、暗号化された一つまたは複数のデータ・パケットにする段階と;
前記暗号化された一つまたは複数のデータ・パケットを前記第二のコンピューティング装置に送信する段階とを含む、
付記18記載のコンピュータ可読媒体。
【符号の説明】
【0095】
210 エントリーが丸め境界から閾値量以内であるかどうかを判定
220 エントリーに追加的な変動性を導入
230 エントリーを丸め
240 エントリーが丸め境界から閾値量以内であるかどうかを判定
260 エントリーを破棄
270 エントリーを丸め

310 第一のコンピューティング装置において秘密鍵を生成
320 第一のコンピューティング装置において公開鍵を生成
330 公開鍵を第一のコンピューティング装置から第二のコンピューティング装置に送信
340 第二のコンピューティング装置において、公開鍵を使って、かつ一つまたは複数の入力を確率的に丸めることによって、パケットを暗号化して、暗号化パケットにする
350 暗号化パケットを、第二のコンピューティング装置から第一のコンピューティング装置に送信
360 第一のコンピューティング装置において、秘密鍵を使ってパケットを復号

410 ハミング重みに基づいて第一のベクトルを生成
420 公開鍵の第一の部分の転置と前記第一のベクトルとを組み合わせることに基づいて、第二のベクトルを生成
430 公開鍵の第二の部分の転置と前記第一のベクトルとを組み合わせることに基づいて、第三のベクトルを生成
440 第二のベクトルの各エントリーを確率的に丸めることに基づいて、第四のベクトルを生成
450 第三のベクトルの各エントリーを確率的に丸め、暗号化されるべきメッセージを表わす値の倍数を加えることに基づいて、第五のベクトルを生成
460 第四のベクトルおよび第五のベクトルの組み合わせを、暗号化されたメッセージとして出力

505 第一の秘密情報を第一のコンピューティング装置において生成
510 確率的丸めを使って、第一の秘密情報に基づいて、第一のコンピューティング装置において第一の鍵成分を生成
515 第一の鍵成分を第一のコンピューティング装置から第二のコンピューティング装置に送信
520 第二の秘密情報を第二のコンピューティング装置において生成
525 第二の鍵成分を第二のコンピューティング装置において、確率的丸めを使って、第二の秘密情報および第一の鍵成分に基づいていて生成
530 第二の鍵成分を第二のコンピューティング装置から第一のコンピューティング装置に送信
535 相互丸めビットを第二のコンピューティング装置から第一のコンピューティング装置に送信
540 第二の鍵成分の少なくとも一つの丸められた要素を、第一のコンピューティング装置によってかさ上げ
545 共有される鍵を、第二の鍵成分に基づいて、第一のコンピューティング装置によって導出
550 前記共有される鍵を、第二のコンピューティング装置によって、第二の鍵成分に基づいて導出
555 制約されたコンテンツにアクセスするために、第二のコンピューティング装置から第一のコンピューティング装置に、前記共有される鍵に基づく要求を送信
560 前記要求に基づいて、制約されたコンテンツへのアクセスを承認
図1
図2
図3
図4
図5A
図5B
図6