(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-24
(54)【発明の名称】グループ・キー形成のためのシステムおよび方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20240117BHJP
【FI】
H04L9/08 C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023542683
(86)(22)【出願日】2022-01-11
(85)【翻訳文提出日】2023-09-06
(86)【国際出願番号】 GB2022050050
(87)【国際公開番号】W WO2022153039
(87)【国際公開日】2022-07-21
(32)【優先日】2021-01-13
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】522181326
【氏名又は名称】アーキット リミテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】バーンズ ダリル
(72)【発明者】
【氏名】ウェッブ デイヴィッド
(72)【発明者】
【氏名】ウィリアムズ デイヴィッド
(57)【要約】
少なくともN-1個のパーティが順序付けられたリングに配置されている場合、仲介者を使用してN個のパーティのグループ・キーを作成する方法、装置、およびシステムが提供されている。任意のパーティがリング内にある場合、当該パーティは以下のように構成される:リング内の各パーティが隣接するパーティの別の暗号キーを持っている場合、リング内の隣接するパーティとパーティの暗号キーを共有またはネゴシエートする;当該パーティの暗号キーと隣接するパーティからの共有暗号キーの組み合わせに基づいてパーティのミーティング・キーを生成する;仲介者は、リング内の対応するパーティの2つ以上のミーティング・キーを組み合わせて中間キーを計算する。当該パーティはさらに、パーティの暗号キーと受信した中間キーとの結合に基づいてグループ・キーを作成するように構成されている。当該パーティがリング内にいない場合、当該パーティは次のように構成される:リング内の隣接するパーティの暗号キーを当該パーティと共有する;リング内の隣接パーティの中間キーを仲介者から受信する;そして、隣接パーティの共有暗号キーと受信した中間キーの組み合わせに基づきグループ・キーを作成する。いずれの場合も、当該パーティは作成されたグループ・キーをグループの他の1つまたは複数のパーティとの通信または他の目的で使用する。
【特許請求の範囲】
【請求項1】
N人の当事者の居るグループのためのグループ鍵を、中間物、メソッドを用いて作成するための、コンピュータに実装されたメソッドで、以下を構成する:
順序のある環で、各当事者が隣接した当事者との通信で別の暗号鍵を持つようなものの上の当事者と隣接した当事者の間で暗号鍵を共有または合意する;
当事者達のためのミーティング鍵を、当事者の暗号鍵と隣接した当事者との共有暗号鍵
当事者のためのミーティング鍵を、当事者の暗号鍵と隣接する当事者との共有の暗号鍵の組み合わせに基づいて生成する;そしてミーティング鍵を中間者へ送る;
中間鍵を中間者から受け取ると、中間者は対応する当事者の2つ以上のミーティング鍵の組み合わせに基づいた中間鍵を計算する;
当事者の暗号鍵を受信した中間鍵と結合したものに基づいてグループ鍵を作成する。ここで、作成したグループ鍵は、当事者の最低(N-1)個の暗号鍵の組合わせから成る。また;
グループ鍵は、グループ内の1人以上の当事者との通信またはその他の目的に使われる。
【請求項2】
コンピュータに実装された、要求1のメソッドは、当事者のうち(N-1)人以上が、順序付けされた環、メソッドに配置され、当事者によって実行される。これらは以下から構成される:
当事者の暗号鍵を、環上で隣接する当事者と共有する。ここで、環上の各当事者は、隣接する当事者の別の鍵を持っている;
当事者に、ミーティング鍵を、当事者の暗号鍵と隣接する当事者の共有暗号鍵との組み合わせに基づいて生成する;そして、ミーティング鍵を中間者へ送る;
中間者から中間鍵を受け取る。ここで中間者は中間鍵を、環上の対応する当事者の2つ以上のミーティング鍵の組合わせに基づいて計算する;
グループ鍵を、当事者の暗号鍵と受信した中間鍵を結合した者に基づいて作成する。ここで、グループ鍵は、(N-1)人以上の当事者の(N-1)個以上の暗号鍵の組合わせから成る;また、
グループ鍵を、グループの1人以上の当事者との通信またはその他の目的のために使う。
【請求項3】
要求1又は2で主張したような、コンピュータに実装されたメソッドは、当事者によって行われる:更に、以下を構成する:
当事者が順序付きの環にある場合:
当事者の暗号鍵を、環上で隣接する当事者と共有または合意する。ここで環上の各当事者は隣接する当事者の別の暗号鍵を持っている;
当事者のミーティング鍵を、当事者の暗号鍵と、隣接する当事者からの共有暗号鍵の組合わせに基づいて生成する;そして
中間者へミーティング鍵を送る;
中間者からの中間鍵を受け取る。ここで中間者は中間鍵を、環上の対応する当事者2つ以上のミーティング鍵の組合わせに基づいて計算される。
グループ鍵を、当事者の暗号鍵と受信した中間鍵の組合わせに基づいて作成する;そして、当事者が環上に無い場合は:
環上でその当事者と隣接する当事者の暗号鍵を共有または合意する;そして
環上で隣接する当事者の中間鍵を中間者から受け取る;
グループ鍵を、隣接する当事者の共有暗号鍵を受信した中間鍵との結合に基づいて作成する;そして
グループ内の1つ以上の当事者と通信するときのグループ鍵を使う。
【請求項4】
要求1から3のいずれかで主張されているような、コンピュータに実装されたメソッド。ここで、
順序付き環の当事者1に対して、中間者は中間鍵を、環上の2つ以上の隣接しない当事者のミーティング鍵で、当事者1のミーティング鍵を除外したものの組合わせに基づいて計算する;そして
順序付き環上の他の当事者に対しては、中間者は各当事者の中間鍵を、上記各当事者のミーティング鍵と、環上で前にある隣接当事者に対して計算された中間鍵との組み合わせに基づいて計算する。
【請求項5】
要求1から4のいずれかで主張された、コンピュータに実装されたメソッドで、鍵を他の鍵と結合させることにより、上記の鍵に対する他の鍵との排他的OR、XOR、演算の実行を構成する。
【請求項6】
要求1から5のいずれかで主張されているように、コンピュータに実装されたメソッドで、中間者が中間鍵を、ミーティング鍵を他の当事者の1つ以上の中間鍵と結合させたものに戻づいて、当事者の中間鍵が順序付き環の中の対応する当事者の中間鍵が対応する当事者の暗号鍵と結合してできた中間鍵がグループ鍵としての性質を示すようにする。
【請求項7】
要求1~6のいずれかで主張されている、コンピュータに実装されたメソッドで、そこでは中間者が中間鍵をミーティング鍵を他の当事者の1つ以上の中間鍵と結合させたものに基づいて、中間鍵がi番目のグループ鍵値がi番目の当事者の暗号鍵にi番目の中間鍵を結合させたものが順序付き環の各i番目の当事者iについて同じであるような中間鍵を計算する。
【請求項8】
要求1~7のいずれかで主張されている、コンピュータに実装されたメソッドで、そこではグループ中奇数N人(N>2)の当事者及びN人全員の当事者が順序付き環の中に配備され、メソッドは環の中の全員に実行される。更に、中間鍵を中間者から受け取ったものを構成し、中間者は中間鍵をミーティング鍵及びその前の隣接する前の当事者の中間鍵に基づいて計算する。
【請求項9】
先の要求で主張された、コンピュータに実装されたメソッドで、グループのうち偶数N(N>2)人で、N人の当事者全てが順序付き環の中に居て、そのメソッドは各p番目(0<=p<=N-1)の当事者によって実行される。以下を構成する:
p=0のとき、以下のステップを実行する:
p番目の暗号鍵K
Pを、環の中で次の隣接する(p+1)番目の当事者と共有または合意する;そして
p番目の当事者のためのp番目のミーティング鍵M
Pを、p番目の暗号鍵K
pと、それまでに共有または合意していた、(N-1)番目の当事者から受けた(N-1)番目の暗号鍵K
N-1の結合に基づいて生成する。
ミーティング鍵M
Pを中間者に送る。ここで、中間者はp番目の中間鍵X
Pを、環上の二つの隣接しない当事者のミーティング鍵でp番目の当事者のミーティング鍵を除いたものと結合したものに基づいて計算する;0<p<Nのとき、以下のステップを実行する:
p<N-1の場合、
p番目の暗号鍵K
pを、環の中で次に隣接する(p+1)番目の当事者と共有または合意する。
p=N-1の場合、
p番目の暗号鍵K
pを、環の0番目の当事者と共有または合意する;そして
p番目の当事者のためのp番目のミーティング鍵M
Pを、p番目の暗号鍵K
Pとそれまでに共有または合意されていた、(p-1)番目の当事者の(p-1)番目の暗号鍵K
P-1と結合することに基づいて生成する;そして
ミーティング鍵M
Pを中間者へ送り、そこで中間者はp番目の中間鍵X
Pを、p番目のミーティング鍵M
Pと他の当事者1つ以上の中間鍵と結合させたものに基づいて計算する;そして
p番目の中間鍵X
Pを中間者から受け取る。
グループ鍵K
Gを、p番目の暗号鍵K
Pとp番目の中間鍵X
P結合させたものに基づいて生成する;そして
グループの中の1つ以上の当事者との通信またはその他の目的でグループ鍵K
Gを使う。
【請求項10】
要求8または9のいずれかで主張されている、コンピュータに実装されたメソッドで、そこでp番目の暗号鍵K
Pが、p番目の当事者によって生成される、共有前の前駆鍵である。
【請求項11】
要求10のいずれかで主張されている、コンピュータに実装されたメソッドで、そこで共有が更に、p番目の当事者のp番目の暗号鍵K
Pを隣接する((P-1+N)modN)番目の当事者と共有する。そこで、環上の全ての当事者が共有を行った後、p番目の当事者は((P-1+N)modN)番目の当事者の((P-1+N)modN)番目の暗号鍵K
(P-1+N)modNを持つ。
【請求項12】
要求8または9のいずれかで主張されている、コンピュータに実装されたメソッドで、そこでは各p番目の暗号鍵K
Pがp番目の当事者と(p+1)番目の当事者と合意した前駆鍵である。そこで、p=N-1,(N-1)番目の暗号鍵K
N-1が(N-1)番目の当事者と0番目の当事者の間で合意された前駆鍵である。
【請求項13】
要求8または9のいずれかで主張されている、コンピュータに実装されたメソッドで、そこでは各p番目の暗号鍵K
Pが更に、p番目の当事者のp番目の暗号鍵K
Pを、隣接する((P-1+N)modN)番目の当事者と((P-1+N)modN)番目の暗号鍵K
(P-1+N)modNを共有するのに広げる鍵交換又は合意手順:
【請求項14】
上記のいずれかで主張されている、コンピュータに実装されたメソッドで、p番目のミーティング鍵M
Pが更にp番目のミーティング鍵M
Pを全てのpに対してM
P=K
P XOR K
(P-1+N)modNに基づいて生成する。
【請求項15】
上記のいずれかで主張されている、コンピュータに実装されたメソッドで、中間者がp番目の当事者のためのp番目の中間鍵X
Pを、以下に基づいて計算する:
p=0,X
0=XOR{r=2 toN-1 step2}M
r;及び0<p<N,X
P=X
P-1 XOR M
P.に対して
【請求項16】
要求8から15のいずれかで主張されている、コンピュータに実装されたメソッドで、そこではp番目の当事者のためのグループ鍵K
Gを作成し、更にグループ鍵K
Gの作成を、K
G=X
P XOR K
Pに基づいて、グループ鍵が全ての当事者について同じになるように作成する。
【請求項17】
要求1から7のいずれかで主張されている、コンピュータに実装されたメソッドで、そこではグループの中で偶数N(N>2)人の当事者で、N人中(N-1)人のみが順序付き環の中に配置され、校正を更に広げる方法:
当事者が環の中にあるとき、以下のステップを行う:
当事者が環上で隣接する当事者と暗号鍵を共有または合意する。そこで環上の各当事者は、隣接する当事者の別の暗号化後を持つ;
その当事者のためのミーティング鍵を、当事者の暗号鍵と隣接する当事者の共有暗号鍵との組み合わせに基づいて生成する;そして、ミーティング鍵を中間者へ送る;
中間鍵を中間者から受け取り、そこで中間者は中間者を環上の当事者の2つ以上のミーティング鍵の組み合わせに基づいて計算する;
グループ鍵を、当事者の暗号鍵と受信した中間鍵の組合わせに基づいて作成する;そして当事者が環上に無い場合は、以下のステップを実行する:
隣接する当事者の暗号鍵を当事者と共有または合意する;そして
隣接する当事者の中間鍵を中間者から受信する;
隣接する当事者の共有の暗号鍵と、受信した中間鍵を結合する;そして
グループ鍵を、グループの中の1つ以上の当事者との通信に使用する。
【請求項18】
要求17で主張されている、コンピュータに実装されたメソッドで、そこでグループ中で偶数N(N>2)人の当事者が順序付き環の上で0<=p<=N-1で配置されている。方法は当事者によって実行され、以下を構成する:
当事者が順序付き環でp番目(0<=p<N-1)である場合:
p=0の場合、以下のステップを実行:
p番目の暗号鍵K
Pを次の隣接する(p+1)番目の当事者と共有または合意する;そして
p番目の当事者のためのp番目のミーティング鍵M
Pを、p番目の暗号鍵K
Pとそれまでに共有されていた(N-2)番目の当事者の暗号鍵K
N-2を結合したものに基づいて生成する。
ミーティング鍵M
Pを中間者に送り、そこで中間者はp番目の中間鍵X
Pを、二人の環上で隣接しない当事者のミーティング鍵p番目の当事者を結合させたものに基づいて計算する;そして
0<P<N-1の場合、以下のステップを実行:
p<N-2ならば、p番目の暗号鍵K
pを次に隣接する、環の(p+1)番目の当事者と共有または合意する;
p=N-2ならば、p番目の暗号鍵を環の0番目の頭医者と共有または合意する;
p番目の当事者のp番目のミーティング鍵M
Pをp番目の暗号鍵K
pを、それまでに共有されていた、(p-1)番目の当事者の(p-1)番目の暗号鍵との結合に基づいて作成する;そして
ミーティング鍵M
pを中間者へ送り、そこで中間者はp番目の中間鍵X
Pを、p番目のミーティング鍵と他の当事者の1つ以上の中間鍵の結合に基づいて計算する;そして
p番目の中間鍵X
Pを中間者から受け取る。
グループ鍵K
Gを、p番目の暗号鍵K
pとp番目の中間鍵X
Pを結合させたものに基づいて作成する;そして
当事者が環の(N-1)番目であるとき以下のステップを実行する:
環で(N-2)番目の当事者と、(N-2)番目の当事者の(N-2)番目の暗号鍵を共有する;
環で(N-2)番目の当事者の(N-2)番目の中間鍵を中間者から受け取る;そして
グループ鍵K
Gを、共有の、(N-2)番目の当事者の(N-2)番目の暗号鍵と受信した(N-2)番目の中間鍵との結合に基づいて作成する;そして
グループ鍵K
Gを、グループの1つ以上の他当事者との通信に用いる。
【請求項19】
要求18で主張される、コンピュータに実装されたメソッドで、各p番目の暗号鍵K
Pは、共有の前にp番目の当事者によって生成された前駆鍵である。
【請求項20】
要求18または19のいずれかで主張される、コンピュータに実装されたメソッドで、更に共有を広げてp番目の当事者のp番目の暗号鍵K
pを環の全ての当事者が共有した後に、隣接する((P-1+N)modN)番目の暗号鍵K
(P-1+N)modNを構成する。
【請求項21】
要求18のいずれかで主張される、コンピュータに実装されたメソッドで、各p番目の暗号鍵K
Pがp番目と(p+1)番目の当事者と合意した前駆鍵であり、そこでp=N-2で、(N-2)番目の暗号鍵K
N-2が(N-2)番目と0番目の当事者によって合意された前駆鍵であり、p=N-1のとき、(N-1)番目の暗号鍵K
N-1が(N-2)番目の当事者の前駆鍵である。
【請求項22】
要求18のいずれかで主張される、コンピュータに実装されたメソッドで、各p番目の暗号鍵K
Pが更に構成し、0<p<=N-2に対して、p番目の当事者のp番目の暗号鍵K
Pを隣接する((P-2+N)modN)番目の当事者と合意して同じ((P-1+N)modN)番目の暗号鍵を共有し、そしてp=0に対しては、0番目の当事者と隣接する(N-2)番目の当事者が同じ(N-2)番目の暗号鍵K
(N-2)を共有するための鍵交換または合意の手順
【請求項23】
要求18から20のいずれかで主張される、コンピュータに実装されたメソッドで、そこでp番目のミーティング鍵M
Pを生成し、更に、p番目のミーティング鍵M
Pが全てのpに対してM
P=K
P XORK
(P-1+N)modNに基づく
【請求項24】
要求18から23のいずれかで主張される、コンピュータに実装されたメソッドで、中間者がp番目の当事者のp番目の中間鍵を以下に基づいて計算する:
p=0,X
0=XOR{r=2 to N-1 step2}M
rに対して;であり、
0<p<N,X
P=X
P-1 XOR M
Pに対して.
【請求項25】
要求18から24のいずれかで主張される、コンピュータに実装されたメソッドで、p番目の当事者がさらに加わったときにグループ鍵K
Gを、K
G=X
P XOR K
Pに基づいて作成する。グループ鍵K
Gは全当事者に対して同じである。
【請求項26】
要求1で主張される、コンピュータに実装されたメソッドで、グループの中で偶数N人(N>2)の当事者に対して、N人の当事者全てが順序付き環上に配置され、(N+1)番目の仮想当事者が順序付き環で(N-1)番目から0番目の間に位置するとき、(N+1)番目の仮想当事者にはN番目の暗号鍵、各p番目(0<=p<=N)の当事者によって実行されるメソッドで、以下を構成する:
当事者が環上にあるとき、以下のステップを実行する:
当事者の暗号鍵を、環上で隣接する当事者と共有または合意する。そこで各当事者は隣接する当事者の別の暗号鍵を持っている;
当事者に対してミーティング鍵を、当事者の暗号鍵と隣接する当事者と共有する暗号鍵の結合に基づいて生成する;そして
ミーティング鍵を中間者へ送る;
中間鍵を中間者から受け取り、そこで中間者は中間鍵を、環上の当事者の2つ以上のミーティング鍵を結合させたものに基づいて計算する;
当事者の暗号鍵を、受信した中間鍵と結合させたものに基づいてグループ鍵を作成する;そして当事者が仮想当事者ならば、以下のステップを実行する:
環上の隣接する当事者と暗号鍵を共有する;そして
隣接する当事者の中間鍵を中間者から受信する;
グループ鍵を、隣接する当事者の共有暗号鍵と受信した中間鍵の結合させたものに基づいて作成する;そして
グループ鍵を、グループ内の1つ以上の他の当事者との通信に用いる。
【請求項27】
要求17で主張される、コンピュータに実装されたメソッドで、グループ内の偶数N人(N>2)の当事者に対して、N人の当事者の全てが順序付き環0<=p<=N-1上に配置され、(N+1)番目の仮想当事者が(N-1)番目と0番目の間にあるとき、当事者によって行われるメソッドで以下を構成する:
p=0ならば、以下のステップを実行する:
p番目の暗号鍵K
Pを環上で次に隣接する(p+1)番目の当事者と共有または合意する;そして
p番目の当事者のためのp番目のミーティング鍵M
Pを、p番目の暗号鍵K
Pとそれまでに共有されていた(N+1)番目の仮想当事者と関連付けられたN番目の暗号鍵を結合させたものに基づいて生成する。
中間者へミーティング鍵M
Pを送り、そこで中間者はp番目の中間鍵X
Pを、環上で隣接しない、p番目を除く2人の当事者のミーティング鍵を結合させたものに基づいて計算する;そしてもし0<p<=N-1,ならば、以下のステップを実行する:
p<N-1ならば、以下のステップを実行する:
p番目の暗号鍵K
Pを、隣接した、環の次の(p+1)番目の当事者と共有または合意する;
p番目の当事者のためのp番目のミーティング鍵を、p番目の暗号鍵K
Pとそれまでに(p-1)番目の当事者から受けて共有されていた(p-1)番目の暗号鍵K
P-1を結合させたものに基づいて生成する;そして
ミーティング鍵M
Pを中間者に送り、そこで中間者はp番目の中間鍵X
Pをp番目のミーティング鍵M
Pと1つ以上の他の当事者の中間鍵を結合したものに基づいて計算する;もしp=N-1ならば、以下のステップを実行する:
(N+1)番目の仮想当事者をホスティングする;
(N+1)番目の仮想当事者のN番目の暗号鍵K
Nを、環の0番目の当事者と共有または合意する;
(N-1)番目の当事者のための(N-1)番目のミーティング鍵M
N-1を、(N-1)番目の暗号鍵K
Pと、それまでに共有されていた(N-2)番目の暗号鍵K
N-2を結合させたものに基づいて生成する。
(N-1)番目の当事者のためのN番目のミーティング鍵M
Nを、共有または合意した(N+1)番目の仮想当事者のN番目の暗号鍵K
NとN番目の当事者の(N-1)番目の暗号鍵K
N-1を結合させたものに基づいて生成する;そしてミーティング鍵M
N及びM
N-1を中間者に送り、そこで中間者は(N-1)番目の中間鍵X
N-1を、(N-1)番目のミーティング鍵M
N-1と(N-2)番目の中間鍵X
N-2を計算する;そして
p番目の中間鍵X
Pを中間者から受け取る;
グループ鍵K
Gをp番目の暗号鍵K
Pとp番目の中間鍵X
Pを結合したものに基づいて作成する;そして
グループ鍵K
Gを使って、グループの1つ以上の他の当事者と通信を行う。
【請求項28】
要求27で主張されるように、コンピュータに実装されたメソッドで、各p番目の暗号鍵K
Pは、p番目の当事者から共有前に生成されていた前駆鍵である。
【請求項29】
要求27から28のいずれかで主張されるように、コンピュータに実装されたメソッドで、
0<=p<Nに対しては、p番目のミーティング鍵M
Pを生成して、更にp番目のミーティング鍵を、M
P=K
P XOR K
(P+N)mod(N+1)に基づいて構成する;そして
p=N-1に対しては、以下のステップを実行する:
(N-1)番目のミーティング鍵M
N-1を、K
N-1XORK
n-2に基づいて生成する;そして
N番目のミーティング鍵M
N-1を、K
N XOR K
N-1に基づいて生成する;
【請求項30】
要求27から29で主張された、コンピュータに実装されたメソッドで、そこで中間者がp番目の当事者のためのp番目の中間鍵X
Pを、以下に基づいて計算する:
p=0の場合は、X
0=XOR{r=2toN-2step2}M
r;そして
0<p<=Nの場合は、X
P=X
P-1 XOR M
P.
【請求項31】
要求18から24で主張された、コンピュータに実装されたメソッドで、そこでグループp番目の当事者のための鍵K
Gは更に、グループ鍵K
Gを、K
G=X
P XOR K
Pに基づいて構成する。グループ鍵K
Gは全ての当事者について同じである。
【請求項32】
上記の要求のいずれかで主張された、コンピュータに実装されたメソッドで、暗号鍵の共有は更に、暗号鍵の鍵交換をも行う。
【請求項33】
上記の要求のいずれかで主張された、コンピュータに実装されたメソッドで、暗号鍵今日共有は更に以下を構成する:p番目の暗号鍵K
pを、環で次の隣接する当事者(p+1)とセキュアに共有する;そして安全に(p-1)番目の暗号鍵K
P-1を、環で前に隣接する当事者(p-1)番目から受信する。
【請求項34】
上記の要求のいずれかで主張された、コンピュータに実装されたメソッドで、暗号鍵の合意が更に以下を構成する:セキュアにp番目の暗号鍵K
Pを、環で次に隣接する当事者(p+1)と合意する;そして
(p-1)番目の暗号鍵K
p-1を環で先の隣接した当事者(p-1)と合意する。
【請求項35】
先のいずれかの要求に従ってコンピュータに実装されたメソッドで、当事者または外部の参加者が中間者に、当事者のグループにグループ鍵を使う必要性があると伝えて、通知には、当事者グループに含まれる当事者の各々を現わすデータが含まれている。
【請求項36】
上記の要求のいずれかに従ってコンピュータに実装されたメソッドで、中間者がグループの中の当事者を順序付き環上に配置または組織し、並べ替えて隣接した各当事者に時計回りまたは反時計回りに昇順のインデックスを指定する。
【請求項37】
要求36に従ってコンピュータに実装されたメソッドで、そこで中間者が、環上の当事者数が偶数であるときに環のサイズを環上の機器数の奇数に調節する。
【請求項38】
要求36から37のいずれかの要求に従ってコンピュータに実装されたメソッドで、中間者がグループの中の当事者を環上に配置又は組織し、内部的に連続したゼロベースのインデックスpを各当事者に指定し、各当事者のゼロベースのリファレンスpに外部リファレンスをマッピングする。
【請求項39】
上記の要求のいずれかに従ってコンピュータに実装されたメソッドで、中間者がp番目の当事者に対して、環0<=p<N-1,で(p+1)番目の当事者の外部リファレンスのまたはアドレスを通知する、そして中間者は(N-1)番目の当事者に0番目の当事者の外部リファレンスまたはアドレスを通知する。
【請求項40】
上記のいずれかの要求に従ってコンピュータに実装されたメソッドで、更に追加の鍵をグループの別の当事者または中間者以外の外部の当事者から受信する。そこでグループ鍵の計算が更に、中間鍵を当事者の暗号鍵と受信した追加鍵の結合を構成する。
【請求項41】
要求40に従ってコンピュータに実装されたメソッドで、追加の鍵がOTP鍵である。
【請求項42】
要求40または41に従った、コンピュータに実装されたメソッドで、グループのp番目の当事者がグループ鍵K
Gを、K
G=X
P XOR K
P XOR(追加鍵)に基づいて計算する。ここでX
Pはp番目の当事者の受信する中間鍵で、K
Pはp番目の当事者の暗号鍵である。
【請求項43】
コンピュータに実装された、N人の当事者のグループに中間者を使ってグループ鍵を作成するメソッドで、中間者によって実行されるメソッド。以下から成る:
当事者の各々からのミーティング鍵を中間者が受け取り、各当事者のミーティング鍵は当事者の暗号鍵と、共有または合意した、隣接する当事者の暗号鍵を結合したものに基づいている;
各当事者の中間鍵を計算し、そこで各当事者の中間鍵は、対応する当事者の二つ以上のミーティング鍵を結合したものに基づいて計算する;各当事者の中間鍵を各当事者に転送し、そこで上記各当事者の中間鍵はグループ鍵を、上記当事者の暗号鍵と受信した各当事者の中間鍵を結合したものに基づいて作成する。作成されたグループ鍵は、当事者の(N-1)個以上の暗号鍵の組合わせを構成する。
【請求項44】
要求43の、コンピュータに実装されたメソッドで、更に、要求2から42のいずれかのコンピュータに実装されたメソッドで主張された、中間者によって実行されるメソッドのステップを構成する。
【請求項45】
プロセッサユニットとメモリユニットと通信インターフェースから構成される装置で、プロセッサユニットはメモリユニットと通信インターフェースに接続され、プロセッサユニットとメモリユニットと通信インターフェースを構成し、そこでプロセッサユニットと通信インターフェースは要求1から42のいずれかで主張された、コンピュータに実装されたメソッドの対応するステップを実行するように改造されている。
【請求項46】
中間者で、プロセッサユニット、メモリユニット、及び通信インターフェースを構成し、メモリユニット及び通信インターフェースに接続したプロセッサユニットで、そのプロセッサーユニットとメモリユニットと通信インターフェースが、対応する、要求1から42で主張する、コンピュータに実装されたメソッドの中間ステップを実装するように変えてあるもの。
【請求項47】
当事者がプロセッサユニット、メモリユニット、及び通信インターフェースから成り、プロセッサユニットはメモリユニットと通信インターフェースに接続して、プロセッサユニットとメモリユニットと通信インターフェースは、対応する、要求1から42のいずれかで主張する、コンピュータに実装されたメソッドの当事者ステップを実装するように調整されている。
【請求項48】
要求1~42または要求45から47のいずれかに従って主張される、中間者及び複数の当事者を構成するシステムで、そこで複数の当事者が、それらの間でセキュアな通信を行うのにグループ鍵を使用する。
【請求項49】
プロセッサ上で実行されたときにプロセッサがコンピュータに実装されたメソッドを、要求1から44までのいずれかに従って実行できるコンピュータコードまたは命令を含んだ、コンピュータで読めるメディア
【発明の詳細な説明】
【技術分野】
【0001】
アプリケーションはグループ・キー形成のためのシステム、装置、方法、およびその応用に関するものである。
【背景技術】
【0002】
グループ・キーは、グループ通信セッションおよび/またはミーティングなどで、パーティのグループが互いに安全に通信するために必要とされることがある。多数のパーティ(デバイス/サーバー/OGR/ユーザーなど)が、グループとして安全に通信できるように、すべてのパーティに知られている共有対称グループ・キーをネゴシエートできることは有用だ。このようなスキームの応用例としては、例えばWhatsAppのようなメッセージングアプリがある。このWhatsAppでは、グループ内のすべてのパーティがグループ内で解読して読むことのできるメッセージを送信できる。ただし、これには通常、グループ内の各パーティが共有対称グループ・キーを形成するためにネゴシエートする信頼できる仲介者(例:WhatsAppサーバー)が必要となる。他の例では、当該グループの各パーティのペアは、それらの間で共有されるユニーク・キー・ペアを持つことができ、別の暗号化されたメッセージがグループ内の他の各パーティに送信される。共有対称グループ・キー/または各々のユニーク暗号化キーは、通常、すべてのパーティ、または少なくとも2つ以上のパーティ、そしておそらく信頼できる仲介者に知られている。
【0003】
グループ通信のセキュリティを強化するグループ・キー形成プロセスが望まれている。この場合、共有される対称グループ・キーは、グループを形成する複数のパーティのみが知っており、他のパーティや仲介者は知らないものである。
【0004】
以下に説明する実施形態は、上述した既知のアプローチの欠点のいずれかまたはすべてを解決する実装に限定されるものではない。
【発明の概要】
【0005】
この概要は、詳細説明で後述される概念の一部を簡略化して紹介するために提供される。本概要は、特許請求される主題の主要な特徴または本質的な特徴を特定することを意図したものではなく、特許請求される主題の範囲を決定するために使用することを意図したものでもない;本発明の実施を容易にし、および/または実質的に同様の技術的効果を達成するのに役立つ変形および代替の特徴は、ここに開示された本発明の範囲に含まれるものとみなされる。
【0006】
本開示は、多数のパーティのグループ・キーを確立するためのグループ・キー形成プロセスを使用する方法、装置、およびシステムを提供し、各々はグループとして安全に通信できるようにするために、すべてのパーティが知っている共有対称グループ・キーをネゴシエートできるようにするためのひとつのパーティ(例えば、デバイス/サーバー/OGR/ユーザユーザなど)を使用する。
このグループ・キー形成プロセスは、共有対称グループ・キーがグループを形成する多数のパーティのみに知られ、他のパーティおよび/または仲介者には知られないため、グループ通信のセキュリティを強化する。
【0007】
第1の様相において、本開示は、仲介者を使用してN個のグループのグループ・キーを作成するコンピュータ実装方法を提供し、この方法はひとつのパーティによって実行され、以下の手順を含む。各パーティが隣接するパーティとは別の暗号キーを有している順序付けられたリング内で、当該パーティの暗号キーを隣接パーティと共有またはネゴシエートする;パーティの暗号キーと隣接パーティの共有暗号キーの組み合わせに基づいて、パーティのミーティング・キーを生成する;そして、ミーティング・キーを仲介者に送信する;仲介者から中間キーを受信する。ここで、仲介者は対応するパーティの2つ以上のミーティング・キーを組み合わせることに基づいて中間キーを計算している;当該パーティの暗号キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する。作成されたグループ・キーはパーティの暗号キーの少なくともN-1個の組み合わせからなる;グループ内の1つまたは複数の他のパーティとの通信またはその他の目的でグループ・キーを使用する。
【0008】
オプションとして、第1の様相によるコンピュータ実装方法で、少なくともN-1のパーティが順序付きリングに配置されている際に、ひとつのパーティによって実行される方法は、以下を含む:各パーティが隣接するパーティとは別の暗号キーを有している順序付けられたリング内で、当該パーティの暗号キーを隣接パーティと共有する;当該パーティの暗号キーと隣接パーティからの共有暗号キーの組み合わせに基づいて、当該パーティ用のミーティング・キーを生成する;そしてミーティング・キーを仲介者に送信する;仲介者から中間キーを受信する。ここで、仲介者はリング内の対応するパーティの2つ以上のミーティング・キーを組み合わせることに基づいて中間キーを計算している;当該パーティの暗号キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する。ここで、グループ・キーは、前述の少なくともN-1個のパーティの暗号キーの少なくともN-1個の組み合わせからなる;グループ内の1つまたは複数の他のパーティとの通信またはその他の目的でグループ・キーを使用する。
【0009】
オプションとして、第1の様相によるコンピュータ実装方法で,ひとつのパーティによって実行される方法は、さらに以下を含む。当該パーティが順序付けられたリング内にあるとき:各パーティが隣接するパーティとは別の暗号キーを有している場合、当該パーティの暗号キーをリング内の隣接するパーティと共有またはネゴシエートする;当該パーティの暗号キーと隣接パーティからの共有暗号キーの組み合わせに基づいて、当該パーティ用のミーティング・キーを生成する;そしてミーティング・キーを仲介者に送信する;仲介者から中間キーを受信する。ここで、仲介者はリング内の対応するパーティの2つ以上のミーティング・キーを組み合わせることに基づいて中間キーを計算している;
当該パーティの暗号キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する;また、当該パーティがリング内にいない場合:リング内で隣接するパーティの暗号キーを、当該パーティと共有またはネゴシエートする;そしてリング内の隣接パーティの中間キーを仲介者から受信する;隣接パーティからの共有暗号キーの組み合わせに基づいて、当該パーティ用のミーティング・キーを生成する隣接パーティの共有暗号キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する;グループ内の1つまたは複数の他のパーティとの通信でグループ・キーを使用する。
【0010】
さらなるオプションとして、第1の様相によるコンピュータ実装方法は、順序付けされたリング内での第1のパーティについては、仲介者は、第1のパーティのミーティング・キーを除いた、リング内の少なくとも2つの隣接しないパーティのミーティング・キーの組み合わせに基づいて、中間キーを計算する;さらに、順序付けられたリング内の他のパーティについては、仲介者は、先に述べた各パーティのミーティング・キーと、順序付けられたリング内での先行する隣接パーティ用に計算された中間キーとの組み合わせに基づいて、各パーティ用の中間キーを計算する。
【0011】
オプションとして、第1の様相によるコンピュータ実装方法は、あるキーと別のキーを組み合わせは、前述のキーと別のキーにおける排他的論理和(eXclusive OR,XOR)演算の実行をさらに含む。
【0012】
別のオプションとして、第1の様相によるコンピュータ実装方法において、仲介者は、あるパーティの任意の中間キーが順序付けられたリング内の対応するパーティの暗号キーと組み合わされたときにグループ・キーが形成されるという特性を示すように、ミーティング・キーと他のパーティの少なくとも1つの中間キーとの組み合わせに基づいて中間キーを計算する。
【0013】
別のオプションとして、第1の様相によるコンピュータ実装方法において、仲介者は、中間キーが、i番目のパーティの暗号キーとi番目の中間キーとを組み合わせたi番目の各グループ・キー値が、順序付けられたリング内のi番目の各パーティiにごとに同じであるという特性を示すように、ミーティング・キーと別のパーティの少なくとも1つの中間キーとを組み合わせに基づいて中間キーを計算する。
【0014】
さらなるオプションとして、第1の様相によるコンピュータ実装方法は、グループ内のパーティの奇数Nにおいて、N>2であり、N個のパーティのすべてが順序付けられたリングに配置されている場合、リング内の各パーティによって実行される方法は、仲介者から中間キーを受信することをさらに含み、ここにおいて、仲介者は、ミーティング・キーと、前述の隣接パーティの先の中間キーとに基づいて中間キーを計算する。
【0015】
オプションで、第1の様相によるコンピュータ実装方法において、グループ内のパーティの奇数N(ただし、N>2)について、N個のパーティのすべてが順序付けられたリング0<=p<=N-1に配置されている場合、各p番目のパーティによって実行される方法は、以下を含む:p=0のとき、以下の手順を実行する:
p番目の暗号キーKpをリング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;
p番目の暗号キーKPと、(N-1)番目のパーティから以前に共有またはネゴシエートされた(N-1)番目の暗号キーKN-1との組み合わせに基づいて、p番目のパーティ用のp番目のミーティング・キーMpを生成する;そして
ミーティング・キーMpを仲介者に送信し、仲介者はp番目のパーティのミーティング・キーを除く、リング内の隣接しない2つのパーティのミーティング・キーの組み合わせに基づいて、p番目の中間キーXPを計算する;また、
0<P<Nの場合、次の手順を実行する。
p<N-1の場合、
p番目の暗号キーKPを、リング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;
p=N-1の場合
p番目の暗号キーキーKPをリング内の0番目のパーティと共有またはネゴシエートする;そして
p番目の暗号キーKpと(p-1)番目のパーティから以前に共有またはネゴシエートされた(p-1)番目の暗号キーKP-1との組み合わせに基づいて、p番目のパーティ用の第p番目のミーティング・キーMpを生成する;そして
ミーティング・キーMpを仲介者に送信し、ここで、仲介者はp番目のミーティング・キーMPと他のパーティの少なくとも1つの中間キーとの組み合わせに基づいて、p番目の中間キーXPを計算する;p番目の中間キーXPを仲介者から受信する;
p番目の暗号キーKPとp番目の中間キーXPとの組み合わせに基づいて、グループ・キーKGを作成する;そして
グループ内の1つまたは複数の他のパーティと通信またはその他の目的でグループ・キーKGを使用する。
【0016】
オプションとして、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPは、共有前にp番目のパーティによって生成されたプリカーサ・キーである。コンピュータ実装方法において、請求項10のいずれかで主張されたように、共有がp番目のパーティの第p番目の暗号キーKPを隣接する((P-1+N)modN番目のパーティと共有することをさらに含んでおり、ここではリング内のすべてのパーティが共有した後、p番目のパーティは、リング内の((P-1+N)modN)番目のパーティの((P-1+N)modN)番目の暗号キーK(p-1+N)m0dNを有している。
【0017】
別のオプションとして、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPは、p番目のパーティによって(p+1)番目のパーティとネゴシエートされたプリカーサ・キーであり、ここではp=N-1のとき、(N-1)番目の暗号キーKN-1は、(N-1)番目のパーティが0番目のパーティとネゴシエートしたプリカーサ・キーである。
【0018】
オプションで、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPをネゴシエートすることは、p番目のパーティのp番目の暗号キーKPを隣接する((P-1+N)modN)番目のパーティとネゴシエートするためにキーを交換またはネゴシーション手順を実行することをさらに含んでおり、ここではリング内のすべてのパーティがネゴシエートされた後、p番目のパーティと隣接する((P-1+N)modN)番目のパーティは、同じ((P-1+N)modN)番目の暗号キーK(P-nN)modNを共有する。
【0019】
オプションで、第1の様相によるコンピュータ実装方法は、p番目のミーティング・キーMPを生成することが、すべてのp番目についてMP=KP XOR K(P-1+N)modNに基づいてp番目のミーティング・キーMPを生成することをさらに含む。
【0020】
別のオプションとして、第1の様相によるコンピュータ実装方法では、仲介者が、p番目のパーティのためのp番目の中間キーXPを、以下に基づいて計算する:p=0の場合、X0=XOR{R=2 to N-1 step2}MR;;0<p<Nの場合、XP=XP-1 XOR MP。
【0021】
別のオプションとして、第1の様相によるコンピュータ実装方法において、p番目のパーティのグループ・キーKGを作成することが、KG=XP XOR Kpに基づいてグループ・キーKGを作成することをさらに含み、グループ・キーKGはすべてのパーティで同じである。
【0022】
オプションとして、第1の様相によるコンピュータ実装方法において、グループ内のパーティの偶数Nに対して、N>2であり、N個のパーティのうちN-1個のパーティのみが順序付けられたリングに配置されている場合、本方法はさらに以下を含む:リング内にパーティが存在する場合、以下の手順を実行する:リング内の隣接するパーティと当該パーティの暗号キーを共有またはネゴシエートする。ここではリング内の各パーティは、隣接するパーティとは別の暗号キーを持っている;パーティの暗号キーと隣接パーティの共有暗号キーの組み合わせに基づいて、当該パーティ用のミーティング・キーを生成する;そしてミーティング・キーを仲介者に送信する;中間キーを仲介者から受信する。ここでは中介者はリング内のパーティの少なくとも2つ以上のミーティング・キーを組み合わせることに基づいて中間キーを計算している;パーティの暗号キーと受信した中間キーの組み合わせに基づいてグループ・キーを作成し、以下の手順を実行する:リング内で隣接するパーティの暗号キーを、そのパーティと共有またはネゴシエートする;リング内の隣接パーティの中間キーを仲介者から受信する;
隣接パーティの共有暗号キーと受信した中間キーとの結合に基づいてグループ・キーを作成する;グループ内の1つまたは複数の他のパーティと通信でグループ・キーを使用する。
【0023】
オプションで、第1の様相によるコンピュータ実装方法において、グループ内のパーティの偶数N(ただし、N>2)について、N個パーティのすべてが順序付けられたリング0<=p<=N-1に配置されている場合、あるパーティによって実行される方法は以下を含む:当該パーティが順序付けられたリング内0<=p<N-1のp番目のパーティであるとき:
p=0のとき、以下の手順を実行する:
p番目の暗号キーKpをリング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;そして
p番目の暗号キーKPと、リング内(N-2)番目のパーティから以前に共有またはネゴシエートされた(N-2)番目の暗号キーKN-2との組み合わせに基づいて、p番目のパーティ用のp番目のミーティング・キーMpを生成する;
ミーティング・キーMPを仲介者に送信し、仲介者はp番目のパーティのミーティング・キーを除く、リング内の隣接しない2つのパーティのミーティング・キーの組み合わせに基づいて、p番目の中間キーXPを計算する;また、
0<P<N-1の場合、以下の手順を実行する:
p<N-2の場合、p番目の暗号キーKPを、リング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;
p=N-2の場合、p番目の暗号キーKPを、リング内の0番目のパーティと共有またはネゴシエートする;
p番目の暗号キーKpと(p-1)番目のパーティから以前に共有された(p-1)番目の暗号キーKP-1との組み合わせに基づいて、p番目のパーティ用の第p番目のミーティング・キーMpを生成する;そしてミーティング・キーMPを仲介者に送信し、ここで、仲介者はp番目のミーティング・キーMPと他のパーティの少なくとも1つの中間キーとの組み合わせに基づいて、p番目の中間キーXPを計算する;そして
p番目の中間キーXPを仲介者から受信する;
p番目の暗号キーKPとp番目の中間キーXPとの組み合わせに基づいて、グループ・キーKGを作成する;また、
パーティがリング内の(N-1)番目のパーティである場合、以下の手順を実行する:
リング内の(N-2)番目のパーティの(N-2)番目の暗号キーを(N-2)番目のパーティと共有する;
リング内の(N-2)番目のパーティの(N-2)番目の中間キーを仲介者から受信する;そして
リング内の(N-2)番目のパーティの共有された(N-2)番目の暗号キーと、受信した(N-2)番目の中間キーとの組み合わせに基づいて、グループ・キーKGを作成する;
そして、グループ内の1つまたは複数の他のパーティと通信でグループ・キーKGを使用する。
【0024】
さらなるオプションとして、第1の側面によるコンピュータ実装方法において、各p番目の暗号キーKPは、共有前にp番目のパーティによって生成されたプリカーサ・キーである。
【0025】
別のオプションとして、第1の様相によるコンピュータ実装方法は、共有が、p番目のパーティのp番目の暗号キーKpを、隣接する((P-1+N)mod N)番目のパーティと共有することをさらに含み、リング内のすべてのパーティが共有した後、リング内のp番目のパーティは、リング内の((P-1+N)mod N)番目のパーティの((P-1+N)mod N)番目の暗号キーK(p-1+N)m0dNを有する。
【0026】
別のオプションとして、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPは、p番目のパーティによって(p+1)番目のパーティとネゴシエートされたプリカーサ・キーであり、ここではp=N-2のとき、(N-2)番目の暗号キーKN-2は、(N-2)番目のパーティが0番目のパーティとネゴシエートしたプリカーサ・キーであり、p=N-1のとき、(N-1)番目の暗号キーKN-1は、(N-2)番目のパーティのプリカーサ・キーである。
【0027】
オプションで、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPをネゴシエートすることは、0<p<=N-2について、p番目のパーティのp番目の暗号キーKPを隣接する((P-1+N)mod N)番目のパーティとネゴシエートするためにキーを交換またはネゴシーション手順を実行することをさらに含んでおり、そしてp=0のとき、p番目のパーティのp番目の暗号キーKPを隣接する((P-2+N)mod N)パーティと共有し、0<P<N-1の場合は,p番目のパーティと隣接する((P-1+N)mod N)のパーティは、同じ((P-1+N)mod N)番目の暗号キーK(P-1+N)mo
dNを共有する。そしてp=0の場合は,0番目のパーティと隣接する(N-2)番目のパーティは、同じ(N-2)番目の暗号キーK(N-2)を共有する。
【0028】
オプションとして、第1の様相によるコンピュータ実装方法は、p番目のミーティング・キーMPを生成することが、すべてのp番目についてMP=KPXORK(P-1+N)mod
Nに基づいてp番目のミーティング・キーMPを生成することをさらに含む。
【0029】
別のオプションとして、第1の様相によるコンピュータ実装方法では、仲介者は、以下に基づいてp番目のパーティのp番目の中間キーXPを計算する。
p=0の場合、X0=XOR{R=2 to N-1 step2}MR;そして0<p<Nの場合、XP=XP-1 XOR Mp.
【0030】
さらなるオプションとして、第1の様相によるコンピュータ実装方法は、p番目のパーティ用のグループ・キーKGを作成することが、KG=XP XOR KPに基づいてグループ・キーKGを作成することをさらに含み、グループ・キーKGはすべてのパーティで同じである。
【0031】
オプションで、第1の様相によるコンピュータ実装方法において、グループ内のパーティの偶数Nのパーティに対して、N>2の場合、N個のパーティの全てが順序付けられたリングに配置され、(N+1)番目の仮想パーティが、順序付けられたリング内の(N+1)番目と0番目のパーティとの間に含まれ、(N+1)番目の仮想パーティは、N番目の暗号キーを提供され、この方法は、リング0<=p<=Nの各p番目のパーティによって実行され、以下を含む:
あるパーティがリング内にいる場合、以下の手順を実行する:
リング内の隣接するパーティと当該パーティの暗号キーを共有またはネゴシエートする。ここではリング内の各パーティは、隣接するパーティとは別の暗号キーを持っている;当該パーティの暗号キーと隣接パーティの共有暗号キーの組み合わせに基づいて、当該パーティ用のミーティング・キーを生成する;そしてミーティング・キーを仲介者に送信する;仲介者から中間キーを受信する。ここで、仲介者はリング内のパーティの少なくとも2つ以上のミーティング・キーを組み合わせることに基づいて中間キーを計算している;パーティの暗号キーと受信した中間キーの組み合わせに基づいてグループ・キーを作成する;また
当該パーティが仮想パーティである場合、以下の手順を実行する:
リング内の隣接パーティの暗号キーを当該パーティと共有する;そして仲介者からリング内の隣接パーティの中間キーを受信する;隣接パーティの共有暗号キーと受信した中間キーの組み合わせに基づいてグループ・キーを作成する;さらに
グループ内の1つまたは複数の他のパーティと通信でグループ・キーを使用する。
【0032】
オプションとして、第1の様相によるコンピュータ実装方法において、グループ内のパーティの偶数Nのパーティに対して、N>2の場合、N個のパーティの全てが順序付けられたリング0<=p<=N-1に配置され、(N+1)番目の仮想パーティが、順序付けられたリング内の(N-1)番目と0番目のパーティとの間に含まれる場合、この方法は、ひとつのパーティによって実行され、以下を含む:
p=0の場合、以下の手順を実行する:
p番目の暗号キーKpをリング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;そして
p番目の暗号キーKPと、リング内の(N+1)番目の仮想パーティに関連付けられた、以前に共有されたN番目の暗号キーKNの組み合わせに基づいて、p番目のパーティ用のp番目のミーティング・キーMPを生成する;
ミーティング・キーMPを仲介者に送信し、仲介者はp番目のパーティのミーティング・キーを除く、リング内の隣接しない2つのパーティのミーティング・キーの組み合わせに基づいて、p番目の中間キーXPを計算する;また、
0<p<=N-1の場合、以下の手順を実行する:
p<N-1の場合、以下の手順を実行する:
p番目の暗号キーKPをリング内で次に隣接する(p+1)番目のパーティと共有またはネゴシエートする;
p番目の暗号キーKPと、(p-1)番目のパーティから以前に共有された(p-1)番目の暗号キーKP-1との組み合わせに基づいて、p番目のパーティのためのp番目のミーティング・キーMPを生成する;そして
ミーティング・キーMPを仲介者に送信し、仲介者はp番目のミーティング・キーMPと他のパーティの少なくとも1つの中間キーの組み合わせに基づいて、p番目の中間キーXPを計算する;p=N-1の場合、以下の手順を実行する:
(N+1)番目の仮想パーティをホストする;
(N+1)番目の仮想パーティのN番目の暗号キーKNを、リング内の0番目のパーティと共有またはネゴシエートする;
(N-1)番目の暗号キーKPと(N-2)番目のパーティから以前に共有された(N-2)番目の暗号キーKN-2との組み合わせに基づいて、(N-1)番目のパーティ用の(N-1)番目のミーティング・キーMN-1を生成する;
(N+1)番目の仮想パーティの共有またはネゴシエートされたN番目の暗号キーKNとN番目のパーティの(N-1)番目の暗号キーKN-1との組み合わせに基づいて、(N-1)番目のパーティ用のN番目のミーティング・キーMNを生成する;そして
ミーティング・キーMNとMN-1を仲介者に送信し、仲介者は(N-1)番目のミーティング・キーMN-1と(N-2)番目のパーティの(N-2)番目の中間キーXN-2との組み合わせに基づいて、(N-1)番目の中間キーXN-1を計算する;そして
仲介者からp番目の中間キーXPを受信する;
p番目の暗号キーKPとp番目の中間キーXPを組み合わせてグループ・キーKGを作成する;そして
グループ・キーKGを使用して、グループの1つまたは複数の他のパーティと通信する。
【0033】
別のオプションとして、第1の様相によるコンピュータ実装方法において、各p番目の暗号キーKPは、共有の前にp番目のパーティによって生成されたプリカーサ・キーである。
【0034】
さらなるオプションとして、第1の様相によるコンピュータ実装方法において、0<=p<Nの場合、p番目のミーティング・キーMPを生成することは、MP=KP XOR K(P+N)mod(N+1)に基づいて、p番目のMPを生成することをさらに含む;そして
p=N-1の場合、以下のステップを実行する:KN-I XOR KN-2に基づいて、(N-1)番目のミーティング・キーMN-1を生成する;そしてKN XOR KN-1に基づいて、N番目のミーティング・キーMN-1を生成する。
【0035】
オプションとして、第1の様相によるコンピュータ実装方法は、仲介者が、p番目のパーティ用のp番目の中間キーXPを、以下に基づいて計算する:p=0の場合、X0=XOR{R=2からN-2ステップ2}MR;;および0<p<=Nの場合、XP=XP-1 XOR MP。
【0036】
オプションとして、第1の様相によるコンピュータ実装方法は、p番目のパーティのグループ・キーKGを作成することが、KG=XP XOR KPに基づいてグループ・キーKGを作成することをさらに含み、グループ・キーKGはすべてのパーティで同じである。
【0037】
オプションで、第1の様相によるコンピュータ実装方法は、暗号キーを共有することが、暗号キーの暗号キー交換を実行することをさらに含む。
【0038】
さらなるオプションとして、第1の様相によるコンピュータ実装方法は、暗号キーを共有することは、以下をさらに含む:リング内のp番目の暗号キーKPを次の隣接パーティp+1と安全に共有すること;そして、リング内の前の隣接パーティ(p-1)から(p-1)番目の暗号キーKp-1を安全に受信すること。
【0039】
さらなるオプションとして、第1の様相によるコンピュータ実装方法において、暗号キーをネゴシエートすることは、以下をさらに含む:リング内の次の隣接パーティp+1とp番目の暗号キーKPを安全にネゴシエートする;そして、リング内の前の隣接パーティ(p-1)と(p-1)番目の暗号キーKp-1を安全にネゴシエートする。
【0040】
オプションで、第1の様相によるコンピュータ実装方法において、パーティまたは外部アクターは、パーティグループによる使用のためにグループ・キーが必要であることを仲介者に通知し、その通知は、パーティグループに含まれることになる各パーティを代表するデータを含む。
【0041】
オプションとして、第1の様相によるコンピュータ実装方法において、仲介者は当該パーティグループのパーティを順序付けられたリングに配置または編成し、リングの周囲を時計回りまたは反時計回りのいずれかで、隣接する各パーティに順序付けられた増加性のインデックスを割り当てる。
【0042】
オプションとして、第1の様相によるコンピュータ実装方法において、リング内に偶数のパーティが存在する場合、仲介者はリング内のデバイスの数を奇数になるようにリングのサイズを調整する。
【0043】
別のオプションとして、第1の様相によるコンピュータ実装方法において、仲介者は当該パーティグループのパーティをリングに配置または編成し、各パーティに連続するゼロベースのインデックスpを内部的に割り当て、各パーティの外部参照をそのゼロベース参照pにマッピングする。
【0044】
さらなるオプションとして、第1の様相によるコンピュータ実装方法において、仲介者は、0<=p<N-1のリング内の(p+1)番目のパーティの外部参照またはアドレスを各p番目のパーティに通知し、ここで仲介者は0番目のパーティの外部参照またはアドレスを(N-1)番目のパーティに通知する。
【0045】
オプションで、第1の様相によるコンピュータ実装方法は、グループの別のパーティまたは仲介者以外の外部パーティから追加キーを受信することをさらに含み、ここで当該グループ・キーを計算することは、中間キーをパーティの暗号キーおよび受信した追加キーと組み合わせることをさらに含む。
【0046】
オプションとして、第1の様相によるコンピュータ実装方法において、追加キーはOTPキーである。
【0047】
オプションとして、第1の様相によるコンピュータ実装方法において、グループ内のp番目のパーティは、KG=XP XOR KP XOR追加キーに基づいてグループ・キーKGを計算する。XPはp番目のパーティによって受信された中間キーであり、KPはp番目のパーティの暗号キーである。
【0048】
第2の様相において、本開示は、仲介者を使用してN個のパーティグループのグループ・キーを作成するコンピュータ実装方法を提供し、この方法は、仲介者によって実行され、以下を含む:仲介者において各パーティからミーティングを受信する。ここで各パーティ用のミーティング・キーは当該パーティの暗号キーと、隣接するパーティからの共有またはネゴシエートされた暗号キーとの組み合わせに基づく;各パーティ用の中間キーを計算する。ここで各パーティ用の中間キーは、対応するパーティの2つ以上のミーティング・キーの組み合わせに基づいて計算される;各パーティ用の中間キーを各パーティに送信する。ここで、前述の各パーティの中間キーは、先に述べた各パーティの暗号キーと受信した前述の各パーティの中間キーとの組み合わせに基づいてグループ・キーを作成するために使用され、ここで、作成されたグループ・キーは、複数のパーティの暗号キーの少なくともN-1個の組み合わせからなる。
【0049】
オプションとして、第2の様相によるコンピュータ実装方法は、第1および/または第2の様相のコンピュータ実装方法の手順もしくは特徴のいずれかに従って仲介者によって実装される方法手順をさらに含む。
【0050】
第3の様相において、本開示は、プロセッサユニット、メモリユニット、および通信インターフェースから成る装置を提供し、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、ここで、プロセッサユニット、メモリユニットおよび通信インターフェースは、第1および/または第2の様相のいずれかに従ったコンピュータ実施方法の対応する手順を実施するように適合される。
【0051】
第4の様相において、本開示は、プロセッサユニット、メモリユニット、および通信インターフェースから成る仲介者を提供し、プロセッサユニットはメモリユニットおよび通信インターフェースに接続されており、ここでプロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2および/または第3の様相のいずれかに従ったコンピュータ実装方法の対応する中間手順を実施するように適合されている。
【0052】
第5の様相において、本開示は、プロセッサユニット、メモリユニット、および通信インターフェースを備えるパーティを提供し、プロセッサユニットはメモリユニットおよび通信インターフェースに接続されており、ここでプロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2および/または第3の様相のいずれかに従ったコンピュータ実装方法の対応するパーティ手順を実施するように適合されている。
【0053】
第6の様相において、本開示は、仲介者ならびに第1、第2、第3、第4および/または第5の様相のいずれかに従って構成された複数のパーティまたはデバイスから成るシステムを提供し、ここで、複数のデバイスのパーティは、その間の安全な通信のために、および/または任意の他の適切な目的のために、グループ・キーを使用する。
【0054】
第7の様相において、本開示は、プロセッサ上で実行されると、プロセッサに、ここに記載されるように、および/またはアプリケーションが要求するように、第1、第2、第3、第4、第5および/または第6の様相のいずれかに従ったコンピュータ実装方法、その修正、それらの組み合わせを実行させる、コンピュータコードまたはその上に記憶された指示(命令)で構成されたコンピュータ可読媒体を提供する。
【0055】
ここに記載される方法は、例えば、有形記憶媒体上の機械可読形式のソフトウェアによって実行され得る。例えば、プログラムがコンピュータ上で実行されるときに、ここで記載されている方法のいずれかのすべての手段を実行するように適合されたコンピュータプログラムコード手順で構成されたコンピュータプログラムの形態で、コンピュータプログラムはコンピュータ可読媒体上に具現化され得る。有形(または非一時的)記憶媒体の例には、ディスク、サムドライブ、メモリカードなどが含まれ、伝播信号は含まれない。当該ソフトウェアは、並列プロセッサまたは直列プロセッサでの実行に適しており、方法手順を任意の適切な順序で、または同時に実行することができる。
【0056】
アプリケーションは、ファームウェアとソフトウェアが価値のある、別個に取引可能な商品となり得ることを認識している。これは、所望の機能を実行するために、「ダム」または標準的なハードウェア上で実行または制御するソフトウェアを包含することを意図している。また、シリコンチップの設計やユニバーサル・プログラマブル・チップの構成に使用されるHdL(ハードウェア記述言語)ソフトウェアなど、ハードウェアの構成を「記述」または定義し、所望の機能を実行させるソフトウェアも包含することも意図されている。
【0057】
好ましい特徴は、当業者には明らかなように、適宜組み合わせることができ、本発明のどの側面とも組み合わせることができる。
本発明の実施形態を、例として、以下の図面を参照して説明する:
【図面の簡単な説明】
【0058】
【
図1a】
図1aは、本発明のいくつかの実施形態によるグループ・キー作成/形成システムの一例を示す回路図である;
【
図1b】
図1bは、本発明のいくつかの実施形態による、
図1aとともに使用するためのグループ・キー作成/形成プロセスの例を示すフロー図である;
【
図1c】
図1cは、本発明のいくつかの実施形態による、
図1aと共に使用するためのグループ・キー作成/形成プロセスの別の例を示すフロー図である;
【
図1d】
図1dは、本発明のいくつかの実施形態による、
図1aと共に使用するためのグループ・キー作成/形成プロセスのさらなる例を示すフロー図である;
【
図1e】
図1eは、本発明のいくつかの実施形態によるグループ・キー作成/形成システムの他の例を示す回路図である;
【
図1f】
図1fは、本発明のいくつかの実施形態によるグループ・キー作成/形成システムのさらに他の例を示す回路図である;
【
図1g】
図1gは、本発明のいくつかの実施形態によるグループ・キー作成/形成システムのさらなる例を示す回路図である;
【
図2】
図2は、本発明のいくつかの実施形態による奇数Nのグループ・キー作成/形成システムの他の例を示す回路図である;
【
図3】
図3は、本発明のいくつかの実施形態による、偶数Nのグループ・キー作成/形成システムの別の例を示す回路図である;
【
図4】
図4は、本発明のいくつかの実施形態による、偶数Nおよびひとつ仮想パーティのためのグループ・キー作成/形成システムの他の例を示す回路図である;
【
図5a】
図5aは、本発明のいくつかの実施形態によるグループ・キー作成/形成プロトコル/プロセス例の1つ以上の部分を実施する際に使用するコンピューティングシステム、デバイスまたは装置の1例を示す回路図である;そして、
【
図5b】
図5bは、本発明のいくつかの実施形態によるグループ・キー作成/形成プロトコル/プロセス例の実施に使用するシステムの1例を示す回路図である。
【0059】
図全体を通して、同様の特徴を示すために共通の参照数字が使用されている。
【発明を実施するための形態】
【0060】
本発明の実施形態を例示としてのみ以下に説明する。これらの例は、出願人が現在知っている本発明を実施するための最良の形態を表すものであるが、これを達成できる唯一の方法ではない。本記述では、この例の機能と、この例を構築し操作するための一連の手順を示す。しかしながら、同一または同等の機能およびシーケンスが、異なる例によって達成される可能性もある。
【0061】
本開示は、多数のパーティ用のグループ・キーを確立するためのグループ・キー形成プロセスを使用する方法、装置、およびシステムを提供し、各パーティは、ひとつのグループとして安全に通信できるようにするために、すべてのパーティが知っている共有対称グループ・キーをネゴシエートできるようにするためのひとつのパーティ(例えば、デバイス/サーバー/OGR/ユーザユーザなど)を使用する。このグループ・キー形成プロセスは、共有対称グループ・キーがグループを形成する複数のパーティのみに知られ他のパーティおよび/または仲介者には知られないもので、グループ通信のセキュリティを強化する。
【0062】
例えば、このグループ・キーの形成は、仲介者(例えば、chatまたはMeet Meサーバー、クラウドサービス/アプリケーション、専用サーバー、他の任意の単一の計算デバイス、またはloTデバイスなど)を使用して、N個のパーティ用のグループ・キーを作成することを含むことができる。N個のパーティは特定の順序で配置され、順序づけられたリングを順次形成する。この順序づけられたリングでは、n番目のパーティと(n+1)番目のパーティは0<=n<N-1で互いに隣接し、(N-1)番目のパーティは順序づけられたリングの1番目のパーティまたは0番目のパーティに隣接する。リング内の各パーティは、以下のように構成されている:リング内の次のパーティまたは隣接するパーティと、当該パーティのプリカーサ暗号キーを共有、確立、またはネゴシエートし、そこではリング内の各パーティは、前の隣接するパーティとプリカーサ暗号キーを共有/確立またはネゴシエートしている。したがって、各パーティはリング内の前の隣接パーティおよび次の隣接パーティと、プリカーサ・キーを共有/確立またはネゴシエートしている。各パーティ用のミーティング・キーは、当該パーティのプリカーサ暗号キーと前のパーティからの共有プリカーサ暗号キーとの組み合わせに基づいて生成される;ミーティング・キーを仲介者に送信し、中間キーを仲介者から受け取る。
仲介者は、リング内の各パーティからの2つ以上のミーティング・キーの組み合わせに基づいて中間キーを計算する。リング内の各パーティは、さらに次のように構成される:当該パーティの暗号プリカーサ・キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する。いずれにせよ、グループ内の各パーティは、作成されたグループ・キーを、当該グループ内の他の1つ以上のパーティとの通信(または他の目的のため)に使用する。仲介者は最終的なグループ鍵の可視性を持たないため、グループ鍵を導出することができない。したがって、仲介者はパーティのグループがグループ・キーをネゴシエートするのを支援する、信頼できないデバイスまたはサーバーとして構成またはみなされる可能性がある。本発明の利点は、信頼できない仲介者がグループ・キーを決して認識することなく、仲介者がパーティに関する情報からグループ・キーを計算することも、盗聴者がパーティ間で交換されたデータまたは任意の数のパーティと仲介者の間で交換されたデータのいずれかからグループ・キーを計算することもできないことを提供する。
【0063】
グループ・キーがネゴシエートされた後、リングに参加していない追加パーティが当該グループに追加されることがある。ここで、追加パーティはリング内パーティの1つに接続し、接続されたパーティは以下のように構成される:自身のプリカーサ・暗号キーを追加パーティと共有する;中間キーを追加パーティに提供する;ここで、追加パーティは、接続パーティの共有プリカーサ暗号キーと受信した中間キーとの組み合わせに基づいてグループ・キーを作成する。これは複数の追加パーティに対して実行してもよいが、グループ鍵のセキュリティに影響を与える可能性がある。代わりに、複数の追加パーティがパーティのグループに参加する場合、新しいグループ・キーが形成される場合がある。
【0064】
オプションとして、そしてグループ・キーをさらに保護するために、ミーティングの主催者はリング内の各参加者にワンタイムパッド(OTP)キーを送信することができる。この場合、OTPキーは仲介者に配布または共有されない。リング内の各パーティが、中間キーとプリカーサ・キーのXORによりグループ鍵を計算するとき、この結果と受信したOTPキーをさらにXORして、結果として得られるグループ・キーの安全性をさらに高める。こうすることで、仲介装置が、主催者またはイニシエーターによって合意されていない、さらなるパーティや未知のパーティをグループに加えることを阻止できるというさらなる利点も提供する。このような未知のパーティはOTPキーを持たないため、主催者に知られることなく保護されたグループ・キーを導出することはできない。
【0065】
記述したように、各パーティは、リング内の隣接するパーティとプリカーサ暗号キーを共有、確立、またはネゴシエートすることができる。隣接する2つのパーティが同じ暗号キーを共有することを保証するために、任意の適切な、または安全な鍵共有、確立、またはネゴシエーションのプロトコルまたは手順を実装することができる。これは、両パーティ間で共有/確立またはネゴシエートされた、共有されるプリカーサ暗暗号キーとなる。キーの共有、確立、またはネゴシエーションのプロトコルは、共有/確立またはネゴシエートされるプリカーサ暗号キーが同じ形式、同様のフォーマットおよび/またはタイプであり、グループ・キーを形成するためにミーティング・キーと組み合わされる数学的互換性があることを保証するために、リング内のすべてのパーティで同じにすることができる。使用されるキーの共有、確立またはネゴシエーションプロトコルは、限定するものではないが、例えばBB84プロトコルに基づくことができる;任意の適切なポスト量子鍵交換プロトコルは、例えば、これらに限定されるものではないが、超特異同種写像鍵カプセル化(SupeR singulaR Isogeny Key encapsulation、SIKe)、ビットフリッピング鍵カプセル化(Bit Flipping Key encapsulation、BIKe)、および/またはその他の適切なポスト量子鍵交換プロトコル、それらの組み合わせ、それらの変更、および/またはアプリケーションの要求に応じたもの;任意の適切な古典的な鍵交換/共有/ネゴシエーションプロトコル、例えば、共有キーをネゴシエートするために使用されるトランスポート層セキュリティ(TLS)/ディフィーヘルマン(dH)プロトコルなどであるが、これらに限定されない;または、2者間で安全なチャネルを確立し、ここでは一方から他方へワンタイムパッド(OTP)またはランダムキーを渡す;2者間で共有キーを確立および/または交換するために使用される、その他の量子鍵交換プロトコル;仲介者やクラウドサービスなどの第三者を介しての共有キーのネゴシエートまたは確立;ここで、当該共有キーは、量子鍵配送鍵に基づくものであろうし、また、鍵確立プロトコルが量子配送鍵を使用してパーティ間で共有キーを確立する量子安全鍵確立プロトコルであるため、量子安全または量子セキュア・キーとすることができる;これらの組み合わせ、これらの変更など。ここでは、リング内の各パーティが、当該各パーティにリング内で隣接する前のパーティと第1の共有プリカーサ・キーを安全に共有、ネゴシエート、交換、確立しており、当該各パーティにリング内で隣接する次のパーティと第2の共有プリカーサ・キーを共有、交渉、交換し、確立していることを前提とする。
【0066】
パーティとは、暗号操作および通信を実行することができ、グループ鍵のネゴシエーションを行うグループの一員となることを希望する、または選ばれたエンティティ、コンピューティングデバイス、またはデバイスを指す。パーティの例としては、これに限定するものではないが、例えば、グループの一員になることを望むユーザー・デバイス、OGR、サーバー、loTデバイス、戦闘機のコンポーネント、スマートフォン、ラップトップ、パーソナル・コンピューター、ポータブル・コンピューティング・デバイス、任意の通信デバイスなどが挙げられる。仲介者は、パーティのグループがグループ鍵をネゴシエートするのを支援する、信頼できないエンティティ、アプリケーション、デバイス、クラウドサービス、コンピューティング・デバイスまたはサーバーなどを指すことがある。仲介者の例としては、これに限定するものではないが、例えば、クラウドサービス/アプリケーション;クラウドプラットフォーム、チャットサービスまたはサーバー/アプリケーション;Meet Meサービスまたはサーバー/アプリケーション;信頼できないデバイスまたはエンティティ;専用サーバー;その他の単一コンピュート・デバイス;コンピューティング・デバイス;loTデバイス;サーバーネットワークなどがある;および/または、ここで記載されたグループ・キーのネゴシエーションにおいてパーティグループを支援するために、本書で説明される仲介者として機能する、他の任意の適切なコンピューティング装置、コンポーネントおよび/またはプラットフォーム;それらの組み合わせ、それらの修正、および/またはアプリケーションの要求に応じたもの。
【0067】
各暗号キー、プリカーサ・キー、ミーティング・キー、中間キーなどは、記号列または記号列の集合で構成もしくは表すことができる(例えば、記号あたりnビットをM=2nの異なる記号で表す。ここではn≧1)。記号列の処理には、記号列のセットの組み合わせが含まれる場合がある。例えば、これに限定されるものではないが、ワンタイムパッド暗号化/復号化、マスキング、記号がビットに変換されたときのビットに対する排他的論理和(XOR)演算、または記号文字列または難読化された記号文字列のセットに対する拡張XOR演算に基づいて、第1の記号文字列が第2の記号文字列と組み合わされる場合がある。例えば、あるキーと他のキーのそれぞれのビットおよび/または記号に対するXOR演算および/または拡張XOR演算を使用して、キーを別のキーと組み合わせることができる。
【0068】
すなわち、第1のキー(または第1の記号セットまたは第1の記号列)と第2のキー(または第2の記号セットまたは第2の記号列)との組み合わせは、これに限定するものではないが、例えば、第1のキーと第2のキーの対応する記号に対する排他的論理和(XOR)演算を用いて実行することができる(例えば、第1および第2のキーの記号をビット列に変換し、ビットごとのXORを実行する);第1および第2のキーの記号がビット記号である場合のビットごとのXOR演算;第1および第2のキーの対応する記号に対する拡張XOR演算(例えば、ビットごとのXOR演算の数学的特性を保持する、記号に対する「記号XOR」演算の数学的に定義された拡張セットを使用する);これらに限定するものではないが、モジュロの加算や減算のようなOTP関数などが適切な代替となる(-(A-B)modn->C、[0..N-1]の記号値で動作);第1キーの記号のセットと第2キーの記号のセットのワンタイムパッド暗号化;および/または、第1のキーの記号のセットおよび第2のキーの記号のセットなどに対する他のトラップドアまたは暗号化操作など。
【0069】
以下の実施例では、XOR演算および/またはXOR型演算を使用することを説明するが、これは単なる例であり、本発明はそのように限定されるものではなく、
図1aから
図5bを参照してここで説明したXOR演算および/または記号文字列、キーなどの組み合わせは、例えば第1および第2のキーの記号がビット記号である場合のビット単位のXOR演算などを含むが、これらに限定されるものではない、任意の適切なタイプの関数、OTP関数および/または演算で置き換えることができることを当業者は理解されよう;第1および第2のキーの対応する記号に対する拡張XOR演算(例えば、ビットごとのXOR演算の数学的特性を保持する記号に対する「記号XOR」演算の数学的に定義された拡張セットを使用する);第1のキーの記号セットと第2のキーの記号セットのワンタイムパッド暗号化;および/または、第1キーの記号セットおよび第2キーの記号セットなどに対する他のトラップドアまたは暗号化操作;モジュロの加算または減算は、適切な代替手段となる((-(A-B)modn->C、[0..N-1]の記号値で動作)など;および/または適切なグループ・キーなどを作成するために、記号文字列、第1および第2のキー、中間キー、ミーティング・キー値などの暗号的な組み合わせ、もしくは単純に組み合わせたりするために使用され得る他の任意の適切な数学的関数または演算;それらの組み合わせ;それらの修正;および/または本明細書に記載された通り、および/またはアプリケーションの要求に応じたもの。
【0070】
図1aは、複数のパーティ102a~102mとのグループ会議を手配するために、仲介者(例えば、ミーティング・アグリゲーション・サービスとしても知られるMeet Meサーバー、またはWhatsApp(RTM)サーバー、MS Teams(RTM)サーバー)と通信する複数のパーティ102a~102mを含む、グループ・キー作成/形成ミーティングおよび通信システム100の例を示す回路図である。ミーティング・アグリゲーション・サービス104は、中間キー値をアグリゲーション(集成)してパーティに送り返し、パーティがグループ・キーを計算できるようにすることで、パーティグループのグループ・キー・ネゴシエーションを支援する信頼できないサーバーである。ミーティング・アグリゲーション・サービス104は、グループ・キーを認識することは決してなく、持っている情報からグループ・キーを計算することもできない。パーティは、安全でないチャネルを介してミーティング・アグリゲーション・サービス104と通信する。ミーティング・アグリゲーション・サービス104は、Quantum cloud
TMのようなクラウドサービス、または顧客がホストするサービス(顧客のデータセンター、またはドローン上でさえも)によって提供される。ミーティング・アグリゲーション・サービス104は、ミーティング・アグリゲーション・ノード(図示せず)から構成される。
【0071】
システム100は、さらにミーティング・オーケストレーション・サービス(図示せず)を含むことがある。
ミーティング・オーケストレーション・サービスは、パーティ間のキーの合意およびパーティとミーティング・アグリゲーション・サービス間のメッセージを調整することにより、パーティのグループがグループ・キーをネゴシエートするのを支援する信頼できないサーバーである。ミーティング・オーケストレーション・サービスは、グループ・キーを認識することは決してなく、持っている情報から計算することもできない。パーティ102a~102mは、Quantum cloudTMが提供するような量子セキュアチャネルを介して、ミーティング・オーケストレーション・サービスと通信する。ミーティング・オーケストレーション・サービスはQuantum cloudTMなどのクラウドサービスによって提供される。ミーティング・オーケストレーション・サービスは、ミーティング・オーケストレーション・ノード(図示せず)で構成される。
【0072】
この例では、グループ・ミーティングまたはグループ通信セッションなどに出席するように手配されたN個の別個のパーティ102a~102m(例えば、パーティ0、パーティ1、パーティ2、パーティ3、パーティ4...、そしてパーティN-1)が存在する。N個のパーティ102a~102m間のグループ・ミーティングを安全に行うために、パーティ102a~102mの各々は、仲介者104(例えばミーティング・アグリゲーション・ノード)にとって未知のグループ・キーを作成するために、グループ・キーの形成/ネゴシエーションの実行に関与する。グループ・キーはミーティング・オーケストレーション・サービスにも知られていない。仲介者104またはミーティング・オーケストレーション・サービスのミーティング・オーケストレーション・ノード(図示せず)は、パーティ102a~102mを順序付けられたリングに配置し、各パーティ102a~102mがグループ・キーを交渉し作成するのを支援するために、安全な通信チャネル106a~106mを介して、隣接する他のパーティ102a~102mの1つ以上の参照/アドレスをパーティ102a~102mのそれぞれに通知するように構成され得る。そうすることが必要な場合、順序付けられたリング内のパーティ102a~102mの各々は、セキュアチャネル107a~107mのひとつを介して、および/またはセキュアチャネル106a~106mを介して中間デバイスを経由し、他のパーティ102a~102mの隣接するパーティと直接通信するように構成され得ることが想定される。
【0073】
例えば、仲介者が複数のN個のパーティ102a~102mをリングに順序付けると仮定すると、簡略化のためかつこれに限定されるものではないが、例えば、パーティ102aはリングの1番目または0番目のパーティであり、パーティ102bはリングの2番目または1番目のパーティでありというように、パーティ102mがリングの(N-1)番目のパーティになるまで続き、そして、リングの各パーティは、リングの当該各パーティに対する前の隣接するパーティおよび次の隣接するパーティの接続詳細を提供される。例えば、リング内の1番目のパーティ102aは、リング内時計回り方向に隣接する次パーティまたは2番目のパーティ102bと接続/通信するように構成されてもよく、また、リング内反時計回り方向に隣接する前パーティまたは(N-1)番目のパーティ102mと接続/通信するように構成されてもよい。同様に、リング内の2番目のパーティ102bは、リング内の次の隣接パーティまたは3番目のパーティ102cと接続/通信するように構成されてもよく、また、リング内の前の隣接パーティまたは0番目のパーティ102aと接続/通信するように構成されてもよい、など。したがって、各パーティ(例えばパーティ102a)は、次にリング内で次に隣接するパーティ(例えば2番目のパーティ102b)と第1のキーを「共有」、「確立」、または「ネゴシエート」することができ、また、各パーティ(例えばパーティ102a)は、リング内で前に隣接するパーティ(例えばパーティ102m)と別の第2のキーを共有、確立、またはネゴシエートするように構成することができる。リング内の次に隣接するパーティおよび前の隣接パーティとそれぞれ共有/交渉/ネゴシエートされる各パーティ用のこれら第1および第2のキーは、それぞれ、任意の適切なキー共有/ネゴシエート/確立のプロトコル/手順を使用して共有/ネゴシエート/確立され得る。キーの共有/ネゴシエート/確立のプロトコル/手続きは、あるパーティと、前後の隣接パーティとの間で実行されることがある。このキーの共有/ネゴシエートには、仲介者104や他の第三者の装置/サービスなどを利用することが含まれることもある。
【0074】
したがって、仲介者104は、パーティ102a~102mの各々に、正確に2つの他のパーティ102a~102m、つまり、リング内の前の隣接パーティとその後の隣接パーティ(例えば、リング内の当該パーティのひとつ前のパーティと次のパーティ)の参照/アドレスを通知するので、それらはグループ・キー共有プロトコルで使用するためのキーを共有/交換するためにグループ・キー作成プロセス中に通信することができる。セキュアチャネル106a~106mおよび/又は107a~107mの各々は、これに限定されるものではないが、例えば、結果の望ましいセキュリティに応じて、古典的/標準的なセキュア通信チャネル(例えば、対称暗号化、公開鍵暗号化、RSA暗号化、AeS暗号化)であるかもしれないし、または量子安全通信チャネル(量子安全/セキュア分散キーで暗号化)でもありえる。同様に、パーティ102a~102mのそれぞれは、望ましいセキュリティに応じて、別のセキュアチャネル106a~106m、例えば、限定することなく、典型的な又は標準的なセキュア通信チャネル又は量子セキュア通信チャネル等を通じて、媒介物104と通信することができ、これにより、ミーティング鍵及び媒介鍵を保護するのではなく環形成に関する情報を保護するのに役立ち得る。
【0075】
例えば、パーティ102a~102mの間のセキュアチャネル107a~107mのうちの1つ以上、及び/又は、各パーティ102a~102m及び媒介物104の間の1つ以上のセキュアチャネル106a~106mは、量子セキュアチャネルとしてもよい。量子セキュア通信チャネルは、対応する量子安全配送を用いて暗号化され、及び/又は量子安全配送鍵のセットの1つ以上の量子安全配送鍵から得られる量子安全鍵を用いて暗号化される通信チャネルを含んでもよいし、表してもよい。量子セキュアチャネルは、チャネルの両側が承認した量子安全鍵に基づいた対称暗号を用いてもよい。簡略化するため、パーティのグループ及び/又は媒介物の間の接続又は通信チャネルのそれぞれは、事前準備された量子安全配送鍵によってセキュアにすることができると想定されている。
【0076】
例えば、量子安全配送鍵は、限定することなく、例えば、量子送受信機を使い、それぞれ量子/非量子衛星チャネルを通じて量子配送鍵のセットを表すデータを生成し通信する衛星量子鍵配送プロトコルを行うよう構成された、衛星量子鍵配送を用いて生成され、配送されてもよい。別の例において、量子安全配送鍵は、限定することなく、例えば、対応する量子送受信機とともに、それぞれ量子/非量子ファイバチャネルを用いて量子配送鍵のセットを生成し配送する地上型量子鍵配送プロトコルを実行するよう構成された、地上ベースの量子鍵配送システムを用いて生成され、配送されてもよい。二種類の量子鍵配送システムが簡潔に記載されるが、これは単なる例であり本発明を限定せず、例えば、限定することなく、本明細書に記載するように及び/又は本出願が請求するように、衛星量子鍵配送、地上型量子鍵配送、衛星/地上型併用の量子鍵配送、及び/又は任意の他の種類の量子鍵配送システム、それらの組み合わせ、それらの変形等、量子鍵配送プロトコル及び/又は量子鍵配送システムのいずれの種類も用いてよいことが当業者には理解されよう。
【0077】
図1aを参照すると、パーティ102a~102mは、リレーとして又はスターネットワークとして媒介物を介して、セキュアチャネル106a~106mを通じ、互いに通信するよう構成されてもよい。代替的には又は加えて、パーティ102a~102mは、媒介物104と通信する際にはセキュアチャネル106a~106mを通じ、媒介物104と通信するよう構成されてもよく、また媒介物104がリレーとして振る舞うよう要求する必要なく、それぞれ他のパーティ102a~102mに対し分離した直接のセキュア通信チャネル107a~107mに優先して、それぞれ他のパーティ102a~102mとセキュアチャネル107a~107mで通信するよう構成されてもよい。
【0078】
パーティ102a~102mがセキュアチャネル106a~106m及び/又はセキュアチャネル107a~107mを通じて通信するように示されているが、これは単なる例であり本発明を限定せず、ネゴシエートするためにN個のパーティのそれぞれを媒介物104に及び/又はN個のパーティのそれぞれを互いに接続し、グループ鍵、結果として複数のパーティ102a~102mに関してグループミーティング及び/又はグループ通信セッションをセキュアにするグループ鍵を用いる通信チャネルのセットを作成する本発明に係る、通信リソース、ネットワーク及び/又はセキュアチャネルの構成又は配列のいずれの種類等、それらの変形、それらの組み合わせが、本出願が請求するように適用され及び/又は実装されてもよいと当業者には理解されよう。
【0079】
図1bは、本発明に係る
図1aに関して記載されるようなグループ鍵ミーティング及び通信システム100とともに使用する例示のグループ鍵作成プロセス110を示すフロー図である。簡略化するため、
図1aの特徴/構成要素/機能等に対する参照符号は、同じ及び/又は同様の特徴/構成要素/機能等について再使用される。基本的には、グループ鍵作成プロセス110の目的は、N個のパーティ102a~102mが、限定することなく、例えば、グループ通信セッション、グループミーティング、グループビデオ/チャット電話会議/コラボレーションシステム等の間に互いとセキュアに通信でき、限定することなく、例えば、媒介物104又は盗聴器等の他の装置がパーティ102a~102m間のセキュアな通信にアクセスできないようにするために、N個のパーティ102a~102m全てに既知であるが、媒介物104(例えば、Meet Me)又はミーティングオーケストレーションサービス(Meeting OR chest Ration SeRvice)には既知でないグループ鍵K
Gを作成することである。グループ鍵形成プロセス110は、次のステップに基づいている。
【0080】
ステップ111において、グループ通信/ミーティングに入ることになるN個のパーティ102a~102mは、
図1aに示されるような順序付けられた環等のグループ形成になるよう配列される。例えば、パーティのうちの1つ又は外部アクタは、グループ鍵がグループミーティング/通信等に必要であることを媒介物104又はミーティングオーケストレーションノードに通知してもよく、外部参照(又は連絡先の詳細)、すなわちパーティの{R}のセットを表すデータが媒介物104に与えられ、このデータはグループミーティング/通信内に含められることになる。パーティの外部参照は、別の装置を当該パーティと通信できるようにする任意のデータを含んでもよいし、表してもよい。例えば、外部参照は、限定することなく、例えば、パーティのインターネットアドレス、パーティのチャットID、パーティにインストールされているグループミーティング/通信(例えば、Meet Me)アプリケーションと提携したパーティに与えられるグループミーティング/通信(Meet Me)サービスアドレス/識別子、パーティを使用し、パーティ上の電子メールアプリケーションを介してアクセス可能なユーザの電子メールアドレス、パーティのmacアドレスを表すデータ、及び/又は、装置がグループ鍵作成プロセス110及び/又は後続のグループミーティング/通信セッションに関してパーティと連絡する/接続する/通信することを可能にするために用いることができる任意の他のデータ等を含んでもよい。外部参照、すなわち{R}のセットは、限定することなく、例えば、インターネットアドレス、パーティの電子メールアドレス、パーティ/装置のID、パーティと提携した電話番号、パーティと提携したユーザネーム、macアドレス、インターネットプロトコルアドレス及び/又は任意の他の特有な識別子、及び/又は、パーティを識別し通信する又は連絡するのに用いることができるアドレス/連絡先の詳細、それらの組み合わせ、それらの変形、及び/又は本出願が請求するようなものであってもよい。例えば、媒介物(例えば、Meet Meサーバ)又はミーティングオーケストレーションノードは、このパーティを環108となるように配列された番号順にまとめ、最初のパーティ(又は最初のパーティと提携した装置)102aは、環108を形成するような番号順で最後のパーティ(又は最後のパーティと提携した装置)102mに接続する。したがって、各パーティ102a~102mは、限定することなく、例えば、一連の番号又はロケーション番号等のパーティ識別子を割り当てられ、これにより順序付けられた環108におけるその順序付け/ロケーションが示される。媒介物は、環108におけるパーティ102a~102mのそれぞれが環108に形成され/まとめられる場合、環108における別のパーティ102a~102mといかに接続されるかに関するマッピングを保管してもよい。この参照がパーティを識別しない(例えば、ユーザを識別する)場合、代わりにこの参照からパーティに対するマッピング(例えば、電子メールアドレスから装置IPアドレスへのマッピング)があってもよい。
【0081】
図1aを参照すると、
図1aは、N個のパーティ102a~102mの順序付け(例えば、パーティ0~パーティN-1)を示している。この場合、N個のパーティ102a~102mは、0≦p≦N-1の場合、{パーティ0、パーティ1、パーティ2、パーティ3、パーティ4、...パーティp......パーティN-1}の一連を形成するように配列されてもよい。したがって、この一連は、簡略化のために単なる例として、パーティN-1~パーティ0を接続することによって、環108を形成することができる。好ましくは、媒介物104又はミーティングオーケストレーションノードは、内部で、一連のゼロベースのインデックスpを各パーティに割り当て、各パーティの外部参照(例えば、連絡先の詳細)をそのゼロベースの参照pにマッピングしてもよい。
図1aにおいて、各パーティは、0~N-1の番号を割り当てられる。割り当てられると、媒介物104又はミーティングオーケストレーションノードは、対応する通信チャネル106a~106mを介して、環108を形成するその一連において次に隣接するパーティの対応する外部参照(又は連絡先の詳細)のパーティ102a~102mのそれぞれに通知する。代替的には、媒介物は、パーティの外部参照をパーティ識別子にマッピングしてもよく、代わりにその外部参照を送信する。例えば、媒介物104は、パーティ102b(パーティ1)の外部通信参照/連絡先の詳細をパーティ102a(パーティ0)に通知し、媒介物104はパーティ102c(パーティ2)の外部の通信参照/連絡先の詳細をパーティ102b(パーティ1)に通知し、媒介物104は、パーティ102d(パーティ3)の外部の通信参照/連絡先の詳細をパーティ102c(パーティ2)に通知し、媒介物104は、パーティ102e(パーティ4)の外部の通信参照/連絡先の詳細をパーティ102d(パーティ3)に通知し、媒介物104は、順序付けられた環の一連において次に隣接するパーティの外部の通信参照/連絡先の詳細をパーティ102e(パーティ4)に通知し、以下同様であり、その後媒介物104は、パーティ102a(パーティ0)の外部の通信参照/連絡先の詳細をパーティ102m(パーティN-1)に通知する。これにより、順序付けられた環が形成される。パーティ102a~102mのこの特定の「時計回り」の順序が本明細書に記載されるが、これは簡略化のための単なる例であり、本発明を限定せず、環の反時計回りすなわち「逆」の順序を用いてもよく、ここで最初のパーティは、パーティN-1のパーティ102mであり、最後のパーティは、パーティ0のパーティ102aであり、以下同様であることが当業者に理解されよう。
【0082】
ステップ112において、環108におけるパーティ102a~102mのそれぞれは、環108において次に隣接するパーティ、すなわち環108の周囲で同じ方向に進むパーティに対して前駆体の(pRecuRsoR)暗号鍵を承認し、共有し、作成し、ネゴシエートし及び/又は取得するように構成される。例えば、0≦p<N-1で、第p番目のパーティの場合、環108における次のパーティは、第(p+1)番目のパーティであり、ここでp=N-1、したがって第(N-1)番目のパーティ108mの場合、環108における次のパーティは第0番目のパーティ102aである。Nが奇数の場合、各パーティ102aは、環108において次に隣接するパーティ102bに対して前駆体の鍵を単に共有し、作成し及び/又はネゴシエートし、最後のパーティ102m(例えば、パーティN-1のパーティ102m)は、環108における最初のパーティ102a(例えば、パーティ0)に対して前駆体の鍵を共有し、作成し及び/又はネゴシエートすることに留意されたい。したがって、パーティ102a~102mのグループの各パーティ102aは基本的に、環108において次に隣接するパーティ102b及び前に隣接するパーティ102mに対して共有され、作成され及び/又はネゴシエートされる、第1の前駆体の鍵及び第2の前駆体の鍵を有する。
【0083】
しかしながら、パーティの偶数N又は偶数個Nの場合、環108におけるグループ鍵形成に対して前駆体の鍵を与えるパーティの数のサイズを減らして奇数個N-1のパーティにすることによって、及び/又は、グループ鍵形成に対して前駆体の鍵を与えるパーティの数を増やすことで(例えば、架空のパーティを加えることによって)環108のサイズを増やして奇数個のN+1パーティにすることによって、環108を調整してもよい。万が一これが必要である場合、全体のグループ鍵作成プロセス110に僅かな変更を加え、ここで、
図2及び
図3を参照して記載される以下の例、それらの変形、それらの組み合わせに基づいて、及び/又は本明細書に記載されるように、グループ鍵プロセス110に対する修正がなされてもよい。簡略化のため、グループ作成プロセス110の概念は、Nが奇数個である場合を踏まえて記載される。
【0084】
さらに、選択肢として、そして最後のグループ鍵のセキュリティを改善するため、またグループが知得するオーガナイザなしでミーティングオーケストレーションノードにより環108に未知のパーティが加えられる場合があるリスクを減らすために、ステップ111又は112(又は更に言うと、グループ作成プロセス110における任意の他のステップ)は更に修正されてもよく、パーティのグループの主催者のパーティ102a又は外部アクタ(例えば、媒介物104とは異なるサードパーティ)は、環108における全ての他のパーティ102b~102m又は環108における全てのパーティ102a~102mに対してワンタイムパッド(OTP)鍵を作成し及び/又は送信して、グループ鍵作成プロセス110により生成されたグループ鍵を更にセキュアにする。これは、グループ鍵作成プロセス110の最後のステップにおいて達成されてもよく、受信されたOTP鍵は各パーティに用いられ、パーティ102a~102mのグループの各パーティによって受信されたOTP鍵とグループ鍵とをXOR演算することによって、グループ鍵を更にセキュアにする。セキュアになったグループ鍵は、その後、本出願が請求するように、パーティ102a~102mのグループの各パーティによってグループ鍵として用いられてもよい。媒介物104がOTP鍵にアクセスできず、又はORP鍵を知得しないことを考慮すると、この鍵は媒介物に送信されないので、媒介物104又はミーティングオーケストレーションノードは、更なる未知のパーティを環108に加えることができない。媒介物104が未知のパーティを環108に加えようとした場合、これらの未知のパーティはグループ鍵を引き出すために用いられるOTP鍵を所有しないので、最後のグループ鍵を決して知得できず又は引き出すことができない。
【0085】
ステップ113において、前駆体の鍵共有/作成/ネゴシエーションが完了すると、奇数Nの場合、パーティ102a~102mのそれぞれは2つの異なる前駆体の鍵を有する。
図1aの例において、パーティのそれぞれは、当該パーティによって生成された現在の前駆体の鍵、及び環108において前に隣接するパーティの前駆体の鍵を有する。代替的には、
図1aの例において、パーティのそれぞれは、環108において次に隣接するパーティに対して当該パーティによってネゴシエートされた現在の前駆体の鍵、及び環108における現在のパーティに対してネゴシエートされる、環108において前に隣接するパーティの前の前駆体の鍵を有する。したがって、各パーティ102a~102mが次に隣接するパーティに対してその前駆体の鍵を共有し又はネゴシエートすると、現在の前駆体の鍵と、前の隣接する前駆体の鍵(前に隣接する部分的な装置の前駆体の鍵)との組み合わせに基づいて(例えば、XOR演算を実行することに基づいて)、パーティのミーティング鍵を作成することによって、ミーティング通知がパーティのそれぞれにより作成される。各パーティは、パーティのミーティング鍵を表すデータを含む、ミーティング通知を媒介装置104に対して(例えば、ミーティングアグリゲーションノードに対して)送信する。各ミーティング通知は、パーティの外部参照Rを表すデータを含み、媒介デバイス104がそのパーティに割り当てられる適切な連続番号pとともにミーティング鍵を保存してもよい。例えば、媒介物104(例えば、Meet Meサーバ又はミーティングアグリゲーションノード)は、各パーティの外部参照Rを内部インデックスpに対してマッピングし、これはグループ形成ステップ111中に当該各パーティに割り当てられる。これにより、媒介物104又はミーティングアグリゲーションノードが、第p番目のパーティに対するミーティング鍵M
Pの提携を保存することができ、例えばミーティング鍵M
P対pを保存する。
【0086】
選択肢として、媒介物104はまた、全てのミーティング鍵値をキャッシュする場合があり、その後グループ鍵がもはや必要ないことが通知される。これにより、再計算が必要なミーティング鍵値のみが、加えられるパーティの左右にあり、他の全てのミーティング鍵値は同じままとすることができるので、パーティの追加又は排除が効率化及び/又は単純化し得る。新しいミーティング鍵及び残りのミーティング鍵を用いて、全てのパーティの媒介鍵値の新しいセットを生成することができ、これはその後、新しいグループ鍵を形成するために各パーティに送信されてもよい。ミーティング鍵値が媒介物104においてキャッシュされず、その後グループ鍵がもはや必要なくなった場合、全てのミーティング鍵値は、別のパーティが環108から追加又は排除される場合はいつでも、環における全てのパーティから返送される必要がある。セキュリティ要件に応じて、これらのミーティング鍵を再び送信するような必要がある全てのパーティの更なる要件が理由で、ミーティング鍵値をキャッシュしないよりもむしろミーティング鍵値をキャッシュした方が好ましい場合があり、これはパーティのうちの1つがオフラインである場合失敗することがあり、これはすなわち、全体のグループ鍵作成/形成プロセスは、オンラインであるパーティのみに対して初めから実行される必要があるということである。
【0087】
ステップ114において、媒介装置104が環108における各パーティから全てのミーティング通知を受信すると、媒介物104又はミーティングアグリゲーションノードは、パーティの2つ以上のミーティング鍵の組み合わせ(例えば、XOR演算)に基づいて、各パーティに関する媒介鍵を計算する。パーティに関する各媒介鍵計算について、計算された媒介鍵が当該パーティの対応する前駆体の鍵と結びつくと(例えば、XOR演算すると)、結果として全ての他のパーティの他の媒介鍵のそれぞれがこれらの対応する前駆体の鍵と結びついた場合に同じグループ鍵となるように、2つ以上のミーティング鍵が結びつく(例えば、1つ以上のXOR演算)。各パーティの媒介鍵は、他のパーティのうちの1つ以上の媒介鍵と比較して異なってもよいし、特有であってもよい。各パーティの媒介鍵が計算されると、媒介鍵は、媒介物104又はミーティングオーケストレーションノードから対応するパーティに対してパーティ通知として送信される。
【0088】
ステップ115において、各パーティが対応する媒介鍵とともに媒介物104からそのパーティ通知を受信すると、当該各パーティは、ステップ112において生成され/ネゴシエートされ/取得されるその受信された媒介鍵及びその前駆体の鍵に基づいて、グループ鍵を計算する。例えば、グループ鍵は、媒介鍵と前駆体の鍵とのXOR演算に基づいてパーティによって計算されてもよい。これは各パーティにおいて実行される。したがって、各パーティpは、受信された第p番目の媒介鍵XPとそれ自身の前駆体の鍵KPとをXOR演算することによって、グループ鍵KGを設ける(例えば、KG=XPXORKP)。各パーティにおいて計算されたグループ鍵は、全てのパーティにとって同じである。パーティのそれぞれによって計算されたグループ鍵KGは、Nが奇数の場合、全ての前駆体の鍵の組み合わせである。
【0089】
選択肢として、グループにおけるパーティ102a~120mのそれぞれが、ステップ112において記載されるようにオーガナイザ(例えば、グループにおける別のパーティ)及び/又は外部パーティからOTP鍵を受信する場合、OTP鍵は、各パーティによってグループ鍵計算KGに含められてもよい。したがって、各パーティpは、初めに、受信された第p番目の媒介鍵XPとそれ自身の前駆体の鍵KPとをXOR演算することによって、次に、この結果と受信されたOTP鍵とをXOR演算することによって、グループ鍵KGを設ける(例えば、KG=XPXOR KP XOR OTP)。各パーティにおいて計算されたセキュアなグループ鍵が全てのパーティにとって同じであるのは、各パーティが受信された同じOTP鍵を有するからである。パーティのそれぞれによってこのように計算されたグループ鍵KGは、Nが奇数の場合、全ての前駆体の鍵及びOTP鍵の組み合わせである。
【0090】
その後、グループのパーティは、限定することなく、例えば、セキュアグループ通信セッション/ミーティングを設けるために、及び/又は任意の他の適した目的等で及び/又は本出願が請求するようにグループ鍵KGを用いてもよい。
【0091】
図1cは、本発明に係る
図1aを参照して記載されるようなグループ鍵ミーティング及び通信システム100とともに使用するための、パーティグループ鍵プロセス120a及び対応する媒介グループ鍵プロセス120bを用いた別の例示のグループ鍵作成プロセス120を示すフロー図である。グループ鍵作成プロセス110は、
図1cのグループ鍵作成プロセス120の1つ以上の特徴及び/又はステップによって更に修正されてもよい。簡略化のため、
図1aの特徴/構成要素/機能等に対する参照符号は、同じ及び/又は同様の特徴/構成要素/機能等について再使用される。この例において、
図1a及び/又は
図1bを参照してこれまでに記載されたように、媒介物104と及び/又は互いに通信するN個のパーティ102a~102mがある。各パーティ102a~102mは、対応するパーティグループ鍵プロセス120aを実装/運用するよう構成され、媒介物104は、媒介グループ鍵プロセス128~130を実装/運用するように構成されてもよい。簡略化のため、パーティ102aに関してグループ鍵プロセス120aのステップ122a~127aを参照し、ここで互いのデバイス102b~102mは、それぞれグループ鍵プロセス120aのステップ122m~1227mに対して、それぞれ対応するステップ122b~127bを実行する。パーティグループ鍵プロセス(複数の場合もある)120a及び媒介グループ鍵プロセス120bを含むグループ鍵作成プロセス120は、以下の通り記載され、グループ鍵作成プロセス120は以下のステップに基づくものである。
【0092】
ステップ121において、媒介物は、いずれかN個のパーティ102a~102mを順序付けられた環108に配列する。代替的には、別の外部装置、N個のパーティ及び/又は第p番目のパーティは、N個のパーティを順序付けられた環108に配列するよう構成されてもよい。この例において、パーティの数Nが奇数である場合、以下のパーティグループ鍵プロセス(複数の場合もある)120aは、奇数個のパーティに対し実行されてもよく、グループ鍵作成プロセス120は、フロー分割を処理して、各対応するパーティによって実行された複数の対応するパーティグループ作成プロセス120aとなり、パーティ102aに関するパーティグループ作成プロセスは以下のステップに基づくものである。
【0093】
ステップ122aにおいて、各第p番目のパーティは、新しい暗号鍵KPを生成する。ステップ123aにおいて、各パーティ102aは、環108において次のパーティ102bに対してこれらKPを共有する(例えば、パーティ102aのパーティ0は、パーティ102bのパーティ1に対してその鍵を共有し、以下同様であり、ここでパーティ102mのパーティN-1は、パーティ102aのパーティ0に対してその鍵KN-1を共有する)。代替的には、ステップ122aにおいて、各第p番目のパーティは、例えば、TLS等の鍵ネゴシエーションプロトコルを用いて、環108において次のパーティ102bに対して新しい暗号鍵KPをネゴシエートし、又は承認する(例えば、パーティ102aのパーティ0は、パーティ102bのパーティ1に対して鍵をネゴシエートし、以下同様であり、ここでパーティ102mのパーティN-1は、パーティ102aのパーティ0に対して鍵KN-1をネゴシエートする)。各パーティN-1が新しい鍵KPを承認するよう命じるのがミーティングオーケストレーションサービスである。ステップ124aにおいて、ミーティング鍵を生成し、各パーティはそれらが承認した鍵KPと、前のパーティによって共有し/ネゴシエートされた鍵K(p-1+P)modNとをXOR演算し、ミーティング鍵MPを作成する。ステップ125aにおいて、各パーティ102aは、それらのミーティング鍵MPを媒介物104(例えば、ミーティングアグリゲーションノード)に送信する。例えば、パーティ102aのミーティング鍵M0、パーティ102bのミーティング鍵m1、パーティ102mのミーティング鍵MN-1が媒介物104に送信される。各パーティのミーティング鍵の新しい組み合わせに基づいて媒介物104が対応する媒介鍵を計算するまで、各パーティ102a~102mのプロセスフロー120aは待機する。この計算は、媒介グループ作成プロセス120bにおいて概説される。いずれのイベントにおいても、各パーティ102aの媒介鍵が計算されると、媒介物104又はミーティングアグリゲーションノードは、媒介鍵XPを対応するパーティ102aに返送/送信する。ステップ126aにおいて、各パーティ102aは、その対応する媒介鍵XPを受信する。ステップ127aにおいて、各パーティは、媒介鍵XPと前駆体の鍵KPとのXOR演算に基づいて、グループ鍵KGを計算する。例えば、パーティ102aは、その鍵KPとXPとをXOR演算し、グループ鍵KGを形成する。全ての他のパーティ102b~102mは、それらの対応する媒介鍵及び対応する前駆体の鍵等を用いて、同様にXOR演算する。その後、パーティ102a~102mのそれぞれは、同じグループ鍵KGを有する。
【0094】
ステップ125a~125mからステップ126a~126mまで、グループ作成プロセス120は、媒介鍵を計算する媒介グループ作成プロセス120bに進む。媒介グループ作成プロセス120bは、以下のステップに基づくものである。すなわち、ステップ128において、媒介物は、奇数個のミーティング鍵(複数の場合もある)を形成するため、環におけるパーティ(複数の場合もある)のそれぞれ(又はパーティのうちのほとんど、若しくはNが偶数である場合に仮想パーティを加えた全てのパーティ)からミーティング鍵(複数の場合もある)を受信する。ステップ129において、媒介物又はミーティングアグリゲーションノードは、ミーティング鍵MPと2つ以上の他のミーティング鍵Miとの新しいXORの組み合わせに基づいて、各パーティPについて対応する媒介鍵XPを計算する。媒介鍵XPは、第p番目のパーティに関する値又は鍵である。例えば、Nが奇数の場合、媒介物は、以下の式に基づいて、第p番目のパーティについて媒介鍵を計算し、すなわちP=0の場合、Xo=XOR{R=2 to N-1 step2}MR;foR0<P<N,XP=XP-1.;XOR MPである。
【0095】
さらに、選択肢として、そしてグループ鍵XGのセキュリティを改善するため、またパーティ102a~102mのそれぞれによって実行される対応するグループ鍵計算ステップ127a~127mより前に、グループが知得しているオーガナイザなしで環108に未知のパーティが加わる場合があるリスクを減らすために、パーティグループ鍵プロセス120aは更に修正されてもよく、パーティのグループの主催者のパーティ102a又は外部アクタ(例えば、媒介物104とは異なるサードパーティ)は、環108における全ての他のパーティ102b~102m(主催者のパーティがパーティ102aである場合)又は環108における全てのパーティ102a~102m(パーティのグループ及び媒介物104と異なる外部パーティである場合)に対して、ワンタイムパッド(OTP)鍵を作成し及び/又は送信して、パーティグループ鍵プロセス120aによって生成されたグループ鍵KGを更にセキュアにするステップを含むよう構成される。したがって、グループにおけるパーティ102a~102mのそれぞれがオーガナイザ(例えば、グループにおける別のパーティ)及び/又は外部パーティからOTP鍵を受信すると、OTP鍵は、各パーティによって、そのパーティ102a~102mの対応するステップ127a~127mのグループ鍵計算KGに含められてもよい。したがって、ステップ127a~127mにおいて、各パーティpは、初めに、受信された第p番目の媒介鍵XPとそれ自身の前駆体の鍵KPとをXOR演算することによって、その後さらに、この結果と受信されたOTP鍵とをXOR演算することによって、グループ鍵KGを設ける(例えば、KG=XP XOR KP XOR OTP key)。パーティ102a~102mのそれぞれによって計算されたセキュアなグループ鍵が全てのパーティにとって同じであるのは、各パーティが受信された同じOTP鍵を有するからである。パーティのそれぞれによってこのように計算されたグループ鍵KGは、Nが奇数の場合に全ての前駆体の鍵及びOTP鍵の組み合わせである。セキュアなグループ鍵KGは、全てのパーティ102a~102mにとって依然として同じであるので、本出願が請求するようにパーティ102a~102mのグループのそれぞれのパーティによってグループ鍵として用いられてもよい。
【0096】
パーティNの数が偶数である場合はプロセス(複数の場合もある)120a及び120bに対して僅かに修正が加わり、これらの修正は、以下の2つの別のケースを伴う
図3及び
図4を参照した詳細な説明において以下で記載されることに留意されたい。偶数ケースaは、環108を一時的に減らして、グループ鍵を計算する奇数個のパーティを作るためにこの計算から省略されるパーティ102mの最後のパーティに基づくが、ここでパーティ102mの最後のパーティは、グループ鍵を依然として受信し、すなわちこれは単にその生成(geneRation)に寄与しない。偶数ケースbは、仮想パーティの余分な前駆体の鍵を追加することによって環108を一時的に増加させることに基づき、この仮想パーティは最後のパーティ102mと最初のパーティ102aとの間で仮に共有され、グループ鍵を計算する奇数個のパーティを作る。
【0097】
図1dは、本発明に係る、N個のパーティのグループに関するグループ鍵作成/形成プロセス140の別の例を示すフロー図である。グループ鍵作成/形成プロセス140は、以下のステップを含む。
【0098】
ステップ142において、パーティ102a~102mのそれぞれには、パーティ(又は当該パーティと提携した装置)の数のインジケーション、又はパーティ(又は提携した装置)が奇数個あるかどうか、及び/又は、パーティ(又は提携した装置)が偶数個あるかどうか、また全てのパーティのグループ鍵をネゴシエートし作成する場合、各パーティ及び媒介物104によってケースa又はケースbどちらが実行されるかを表すデータ等のグループ形成データが与えられてもよい。
【0099】
ステップ143において、パーティ(又はパーティのそれぞれと提携した装置)102a~102mのそれぞれは、Nが奇数かどうかをグループ形成データから指示され又は決定し、Nが奇数の場合(例えば、Y)、当該パーティ102a~102mのそれぞれ及び同様に媒介物104は、Nが奇数の場合についての、対応する同じグループ鍵形成プロセス145を実行し、ステップ145に進む。パーティ(又は提携した装置)102a~102mのそれぞれは、Nが偶数(例えば、「N」)かどうかをグループ形成データから指示され又は決定すると、当該パーティ102a~102mのそれぞれ及び同様に媒介物104はステップ144を実行し、グループ鍵形成プロセスを実行するために偶数ケースa又はbどちらを用いるかを決定する。代替的には、パーティは実際に数Nを知得する必要はなく、むしろ媒介物/ノード104は、数Nが偶数である場合に何をする必要があるか(すなわち、最後のパーティ102mは仮のノードを作成する必要があるかどうか、又は最初のパーティ102aが最後から2番目(すなわち、最後の一つ前)のパーティに対して鍵を共有し/ネゴシエートする(例えば、最後のパーティ102mを飛ばす)必要があるかどうか)について、最初のパーティ102a及び最後のパーティ102mに単に指示する。
【0100】
ステップ144において、パーティ(又は提携した装置)102a~102mのそれぞれは、Nが偶数の場合、偶数ケースaが実行されるように選択されるかどうか、グループ形成データから指示され又は決定し、さもなければ偶数ケースbが実行される。ケースaが実行されると(例えば、「Y」)、グループ形成プロセス140はパーティ(又は提携した装置)102a~102mのそれぞれ及び同様に媒介物104についてのステップ146に進む。さもなければ、ケースaが実行されない場合(例えば、「N」)、プロセス140はステップ147に進み、ここで各パーティ及び/同様に媒介物に関するグループ形成プロセスの偶数ケースbが実行される。
【0101】
ステップ145において、Nが奇数の場合、奇数個Nのパーティに関するグループ形成プロセスの対応するステップは、パーティ102a~102mのそれぞれによって実行され、同様に、奇数個Nのパーティに関するグループ形成プロセスの対応するステップは媒介物104によって実行され、これにより対応する媒介鍵をパーティ102a~102mのそれぞれに出力する。ステップ145は、
図1a~
図2を参照して記載されるようなグループ鍵形成プロセス(複数の場合もある)110及び120のステップとともに更に補われ及び/又は修正されてもよい。プロセスは、パーティ102a~102mのそれぞれに関するグループ鍵装置を計算するステップ148に進む。
【0102】
ステップ146において、Nが偶数でケースaが実行されるように選択された場合、偶数個Nのパーティに関するグループ形成プロセスの対応するステップは、ケースaに基づいて実行され、ここで環108/208は、環108/208における残りのパーティ102a~102mのそれぞれによって一時的に減少し、同様に、ケースaにおける偶数個Nのパーティに関するグループ形成プロセスの対応するステップは媒介物104によって実行され、これにより対応する媒介鍵をパーティ102a~102Iのそれぞれに出力する。ステップ146は、
図1a~
図3、それらの変形を参照して記載されるように及び/又は本明細書に記載されるように、Nが偶数でケースaの場合、グループ鍵形成プロセス(複数の場合もある)及び/又はシステム(複数の場合もある)100、110、300の対応するステップとともに更に補われ及び/又は修正されてもよい。プロセスは、パーティ102a~102mのそれぞれに関するグループ鍵装置を計算するステップ148に進む。
【0103】
ステップ147において、Nが偶数でケースbが実行されるよう選択される場合、偶数個Nのパーティに関するグループ形成プロセスの対応するステップがケースbに基づいて実行され、ここで環108/208は仮想パーティ/鍵を含むことによって一時的に増加し、環108/208におけるパーティ102a~102mのそれぞれは、ケースbについての偶数個Nのパーティに関するグループ形成プロセスの対応するステップ、同様に媒介物104によって実行される相補的/対応するステップを実行し、これにより対応する媒介鍵をパーティ102a~102mのそれぞれに出力する。ステップ146は、
図1a~
図4、それらの変形を参照して記載されるように及び/又は本明細書に記載されるように、Nが偶数でケースbの場合、グループ鍵形成プロセス(複数の場合もある)及び/又はシステム(複数の場合もある)100、110、400の対応するステップとともに更に補われ及び/又は修正されてもよい。プロセスは、パーティ102a~102mのそれぞれに関するグループ鍵装置を計算するステップ148に進む。
【0104】
ステップ148において、パーティ102a~102mのそれぞれは、媒介鍵を受信し、これを用いて、Nが奇数(例えば、KG=XP XOR KP)又は偶数であるかどうか、また偶数である場合にケースa又はケースbが実行されるかどうかに応じて、それらの前駆体の鍵及び/又は別の前駆体の鍵に基づき同じグループ鍵を計算する。
【0105】
ステップ149において、パーティ102a~102mのそれぞれは、グループ鍵をここで用いてもよく、この鍵はそれぞれ互いに、セキュアグループ通信セッション及び/又はミーティング等において計算される。
【0106】
さらに、選択肢として、そしてグループ鍵のセキュリティを改善するため、またパーティ102a~102mのそれぞれによって実行される対応するグループ鍵計算ステップ148より前に、グループが知得しているオーガナイザなしで環108に未知のパーティが加わる場合があるリスクを減らすために、グループ鍵作成/形成プロセス140は更に修正されてもよく、パーティのグループの主催者のパーティ102aは又は外部アクタ(例えば、媒介物104とは異なるサードパーティ)は、媒介物104を除いた環108における全ての他のパーティ102b~102m(例えば、主催者のパーティがパーティ102aである場合)又は媒介物104を除いた環108における全てのパーティ102a~102m(例えば、パーティのグループ及び媒介物104と異なる外部パーティである場合)に対して、ワンタイムパッド(OTP)鍵を作成し及び/又は送信して、パーティグループ鍵作成/形成プロセス140によって生成されたグループ鍵KGを更にセキュアにするステップを含むよう構成される。したがって、グループにおけるパーティ102a~102mのそれぞれがオーガナイザ(例えば、グループにおける別のパーティ)及び/又は外部パーティからOTP鍵を受信すると、OTP鍵は、各パーティによってそのパーティに関する対応するステップ148のグループ鍵計算KGに含められてもよい。例えば、ステップ148において、各パーティpは、受信された媒介鍵、それらの前駆体の鍵、受信されたOTP鍵に基づいてグループ鍵を計算し、設けてもよい(例えば、KG=XP XOR KP XOR OTP Key)。パーティ102a~102mのそれぞれによって計算されたセキュアなグループ鍵がすべてのパーティにとって同じであるのは、各パーティは受信された同じOTP鍵を有するからである。パーティのそれぞれによってこのように計算されたグループ鍵は、Nが奇数の場合に全ての前駆体の鍵及びOTP鍵の組み合わせである。セキュアになったグループ鍵KGは、依然として全てのパーティ102a~102mにとって同じであるので、本出願が請求するようにパーティ102a~102mのグループの各パーティによってグループ鍵として用いられてもよい。
【0107】
図1eは、複数のパーティ光地上受信機ステーション(OGRS:optical gRound ReceiveR station)152a~152mによって使用するグループ鍵を配列するための、
図1a~
図1d及び/又は
図2~
図5bを参照して記載されるようなグループ鍵作成/形成プロセス(複数の場合もある)を実装するように構成されるMission contRol/Meet Me媒介物154と通信する複数のパーティOGRS152a~152mを含む、例示のシステム150を示す概略図である。この例において、パーティOGR152a~152mのグループは、環158を形成するように配列され、最初のOGR152aは、最後のOGR152mに接続されるように配列され、これは環158においてOGR152aの前に隣接するOGRである。
【0108】
図1fは、複数のパーティユーザ装置162a~162eによって使用するグループ鍵を配列するための、
図1a~
図1d及び/又は
図2~
図5bを参照して記載されるようなグループ鍵作成/形成プロセス(複数の場合もある)を実装するように構成されるcloud MeelMe及びKeyネゴシエーションサービス媒介物164と通信する複数のパーティユーザ装置162a~162mを含む、別の例示のシステム160を示す概略図である。この例において、パーティユーザ装置162a~162eのグループは、環168を形成するように配列され、最初のパーティ装置162aは、最後のパーティ装置162eと接続されるように配列され、これは環168においてパーティユーザ装置162aの前に隣接するパーティユーザ装置162eである。同様に、この例において、パーティユーザ装置162a~162eの各パーティユーザ装置162dは、環168において次に隣接するユーザ装置162eに対して前駆体の鍵をネゴシエート/共有するために、cloudKeyネゴシエーションサービス媒介物164と通信し使用するように構成され、同様にパーティユーザ装置162a~162eの各パーティユーザ装置162dは、環168において前に隣接するパーティユーザ装置162cに対して別の前駆体の鍵をネゴシエートし及び/又は共有するために、cloudKeyネゴシエーションサービス媒介物164と通信し使用するように構成される。前駆体の鍵は、したがって、ユーザ装置162a~162eと媒介物164等との間にグループ鍵を実装し形成するように用いられる、グループ鍵形成プロセスで用いられる。
【0109】
図1gは、複数のパーティのモノのインターネット(loT)装置172a~172eによって使用するグループ鍵を配列するための、
図1a~
図1d及び/又は
図2~
図5bを参照して記載するようなグループ鍵作成/形成プロセス(複数の場合もある)を実装するように構成されるcloud Meet MeのloT媒介物174と通信する複数のパーティloT装置172a~172eを含む、更なる例示のシステム170を示す概略図である。この例において、loT装置172a~172eのグループは、環178を形成するよう配列され、最初のパーティloT装置172aは、最後のパーティloT装置172eと接続されるように配列され、これは、環178においてパーティloT装置172aの前に隣接するパーティloT装置172eである。同様に、この例において、パーティloT装置172a~172eの各パーティloT装置172dは、環178において次に隣接するパーティloT装置172eに対して前駆体の鍵をネゴシエート及び/又は共有するために、cloudKeyネゴシエーションサービス媒介物175(例えば、サードパーティ)と通信し使用するように構成される。cloudKeyネゴシエーションサービス媒介物175は、本明細書に記載されるように、他のloT装置172a~172eが前に隣接する及び次に隣接するloT装置172a~eに対して前駆体の鍵をネゴシエートするためにも用いられる。前駆体の鍵は、それゆえ、loT装置172a~172eとloT媒介物174等との間にグループ鍵を実装し形成するために用いられるグループ鍵形成プロセスにおいて用いられる。
【0110】
図2は、
図1a~
図1dを参照して記載されるようなグループ鍵を作成し、パーティ102a~102eに対してグループミーティングを配列するように構成される媒介物104(例えば、Meet Meサーバ又はWhatsApp(RTM)サーバ、MS Teams(RTM)サーバ)と通信する奇数個Nのパーティ102a~102eについての
図1eの例示のグループ鍵作成/形成ミーティング及び通信システム200を示す概略図である。この例において、パーティの数は、限定することなく、例えば、グループミーティング又はグループ通信セッション等に参加するよう配列される、N=5個のパーティ102a~102e(例えば、パーティ0、パーティ1、パーティ2、パーティ3、パーティ4)である。N個のパーティ102a~102e間のグループミーティングをセキュアにするために、パーティ102a~102eのそれぞれは、媒介物104にとって未知であるグループ鍵を作成するためにグループ鍵形成/ネゴシエーションを実行することに関わる。媒介物104は、パーティ102a~102eそれぞれがグループ鍵をネゴシエートし作成するのを助けるようにそれぞれ又は対応する他のパーティ102a~102eと通信して使用するために、他のパーティ102a~102eの1つ以上の参照/アドレスのセキュア通信チャネル(図示せず)を通じてパーティ102a~102eのそれぞれを配列し、それらに通知するように構成されてもよい。そのようにする必要がある場合、パーティ102a~102eのそれぞれは、対応するセキュアチャネル等を介して及び/又は本明細書に記載されるように、セキュアチャネル204a~204e(例えば、チャネル107a~107eと同様のもの)のうちの1つを通じて及び/又は媒介物104を通して直接、別のパーティ102a~102eと通信するように構成されてもよいと想定される。例えば、媒介物104はクラウドサービス媒介物であってもよいので、パーティ102a~102eのそれぞれは、クラウド媒介物サービス104を通して鍵又はグループ鍵をネゴシエートするように構成される。
【0111】
この例において、グループの形成、すなわち環208は、N個のパーティ102a~102eの一団又は外部アクタによる要求で実行されてもよく、これによって媒介物104(例えば、Meet Me)にグループ通信セッション/ミーティングのグループ鍵が必要であることを通知する。この要求は、限定することなく、例えば、グループに含められるパーティ102a~102eの外部参照/連絡先の詳細{R}のセットを含んでもよい。媒介物及び/又は他のパーティは、
図2aに示されるように、一団のパーティ102a~102eを環208になるよう配列又は組織してもよく、パーティ102a~102eは{パーティ0、パーティ1、パーティ2、パーティ3、パーティ4}の連続になるように配列される。例えば、媒介物104が内部で、連続するゼロベースのインデックスpを各一団に割り当て、一団の各パーティの外部参照をそのゼロベースの参照pにマッピングすることによって、これは達成されてもよい。媒介物104は、環208において次の一団の外部参照のパーティ102a~102eを介して一団のそれぞれに通知する。この例において、パーティ0の102aは、パーティ1の102bの外部参照を受信し、パーティ1の102bは、パーティ2の102cの外部参照を受信し、パーティ2の102cは、パーティ3の102dの外部参照を受信し、パーティ3の102dは、パーティ4の102eの外部参照を受信し、パーティ4の102eは、パーティ0の102aの外部参照を受信する。したがって、各パーティpはここで、0≦p<N(例えば、この例においてはN=5)の場合、環208において次に隣接するパーティに対する外部参照を有する。
【0112】
したがって、パーティ102a~102eの全ては、グループ鍵を作成又は形成するグループ形成/作成プロセスの前駆体の鍵共有/ネゴシエーション段階を開始するために必要な詳細を有する。この例において、前駆体の鍵共有は以下に基づいて進む。すなわち、パーティpのそれぞれは、前駆体の鍵Kpを作成/取得する。一度作成/取得されると、パーティのそれぞれは、環208において次のパーティに対して、セキュア通信チャネル202a~202eを通じてその前駆体の鍵Kpを共有する。したがって、0≦p<Nの場合、パーティpのそれぞれ(又は第p番目のパーティ)はここで、その前駆体の鍵Kp、及び環208において前のパーティからの前駆体の鍵K(P-1+N)modNを有する。代替的にはこの例において、前駆体の鍵ネゴシエーションは、以下に基づいて進む。すなわち、パーティpのそれぞれは、例えば、量子セキュアサービスのサービスを用いて次のパーティ(p+1)modNに対して前駆体の鍵KPをネゴシエートする。したがって、0≦p<Nの場合、パーティpのそれぞれ(又は第p番目のパーティ)はここで、その前駆体の鍵Kp、及び環208において前のパーティからの前駆体の鍵K(P-1+N)modNを有する。
【0113】
したがって、パーティ102a~102eはここで、ミーティング通知(例えば、Meet Me又はミーティングアグリゲーションノード通知)を作成してもよく、0≦p<Nの場合、一団Pの各パーティは、その前駆体の鍵KP及び前の一団の前駆体の鍵K(P-1+N)modNのXORを計算し、第p番目のパーティのミーティング鍵MP=KPXORK(P-1+N)mod,を作成する。一団Pの各パーティは、その外部参照rとともにMPを表すデータを含むミーティング通知を媒介物104(例えば、Meet Me又はミーティングアグリゲーションノード)に送信し、これにより媒介物104が、第p番目のミーティング鍵を形成された環208における第p番目の装置/パーティにマッピングできる。例えば、媒介物は、MP対Pのマッピングを保存する。
【0114】
ここで、媒介物104(又はミーティングアグリゲーションノード)は、0≦p<N個のパーティのそれぞれに関して媒介鍵XPを計算し、これはそれぞれ、パーティ通知で対応するパーティに送信される。例えば、各一団pが0≦p<Nである場合、媒介物104は、以下に基づいて媒介鍵XPを計算する。すなわち、一団のパーティ102aがP=0の場合、媒介物はサードパーティから始まる代替の全てのミーティング通知をともに、X0=XOR{r=2toN-1step2}MrとしてXOR演算することによって媒介鍵を計算し、一団の残りのパーティ102b~102eが0<P<Nの場合、媒介物104は、Xp=Xp-1XORΜpを計算する。一度計算されると、媒介物104(例えば、Meet Me又はミーティングアグリゲーションノード)は、媒介鍵Xpを表すデータを、全てのNについて一団Pの第p番目のパーティに通知し又は送信する。この例において、N=5である。
【0115】
パーティ102a~102eの各パーティがその媒介鍵を受信すると、そのパーティはその前駆体の鍵KPを用いてグループ鍵KGを計算してよい。例えば、一団Pのそれぞれのパーティ(又は第p番目のパーティ)は、媒介物104から受信した受信済のXpとそれ自身の前駆体の鍵KPとをXOR演算することによってそれ自身のグループ鍵を設ける。したがって、グループ鍵は、0≦p<Nの場合、KG=XpXORKPに基づいて、それぞれ第p番目のパーティにおいて計算されてもよい。
【0116】
図1a~
図1g及び
図2を参照して記載されるようなグループ鍵形成/作成プロセス(複数の場合もある)110、120、140及びステップ145及び200、それらの組み合わせ、それらの変形等のいずれかを参照して、以下は、Nが2より大きい奇数の場合のN個のパーティのグループについてグループ鍵を作成する範例である。
図1a~
図1g及び
図2を参照して記載されるようなグループ鍵形成/作成プロセス(複数の場合もある)110、120、140及びステップ145、200のそれぞれは、以下の範例の概念及び/又はステップ、それらの組み合わせ、それらの変形に基づいて、及び/又は本明細書に記載されるように、更に修正及び/又は適合されてもよい。簡略化のため、
図1a~
図2の参照符号は、同様の又は同じ特徴、構成要素、ステップ及び/又はプロセス(複数の場合もある)等について再使用されてもよい。以下の範例において、グループにおけるパーティの数は、N=5であり、5個のパーティは、
図2aを参照して記載されるような対応するパーティ102a~102eのパーティ0~パーティ4として配列される。
【0117】
図1a又は
図2aを参照して、N=5の場合に環108又は208が形成された後、各パーティ102a~102eは、順序付けられた環208に置かれる連続番号又はロケーションp(例えば、0≦p≦4)、及び同様に、少なくとも環208において次に隣接するパーティ等の1つ以上の他のパーティの参照/連絡先の詳細を知得し(又は媒介物104によって通知され)、Nが奇数の場合のグループ鍵形成プロセスは、以下の主なステップ、すなわち、A)前駆体の鍵共有/ネゴシエート(例えば、
図1cのプロセス120aのステップ122a~122m又は
図1bのプロセス110のステップ112)、B)ミーティング通知(例えば、
図1cのプロセス120aのステップ124a~124m及び125a~125m並びにプロセス120bのステップ128又は
図1bのプロセス110のステップ113)、C)パーティ通知(例えば、
図1cのプロセス120bのステップ129及び130並びにプロセス120aのステップ126a及び126b又は
図1bのプロセス110のステップ114)、及びD)グループ鍵計算(例えば、
図1cのプロセス120aのステップ127a~127m又は
図1bのプロセス110のステップ115)を含む。
【0118】
グループ鍵形成/作成プロセスの前駆体共有/ネゴシエートステップであるステップA)において、パーティ102a~102eのそれぞれは、環208において次に隣接する装置に対して前駆体の鍵共有/ネゴシエーションステップを実行し、これは、環208において或るパーティから次のパーティへの共有、又は環208において或るパーティと次のパーティとの間の鍵のネゴシエーションを含んでもよい。
【0119】
例えば、前駆体の共有ステップで、パーティ102a~102eのそれぞれは、以下、
・パーティ0のパーティ102aは、前駆体の鍵K0202aを作成/取得する
・パーティ1のパーティ102bは、前駆体の鍵K1202bを作成/取得する
・パーティ2のパーティ102cは、前駆体の鍵K2202cを作成/取得する
・パーティ3のパーティ102dは、前駆体の鍵K3202dを作成/取得する、及び、
・パーティ4のパーティ102eは、前駆体の鍵K4202eを作成/取得する
に基づいて、0≦p≦4の場合、それらの対応する前駆体の鍵/暗号鍵KPを作成/取得するよう構成される。
したがって、パーティ102a~102eのそれぞれは、以下、
・パーティ0のパーティ102aは、チャネル204aを通してパーティ1のパーティ102bに対してK0を共有する
・パーティ1のパーティ102bは、チャネル204aを通してパーティ2のパーティ102cに対してK1を共有する
・パーティ2のパーティ102cは、チャネル204aを通してパーティ3のパーティ102dに対してK2を共有する
・パーティ3のパーティ102dは、チャネル204aを通してパーティ4のパーティ102eに対してK3を共有する、及び、
・パーティ4のパーティ102eは、チャネル204aを通してパーティ0のパーティ102aに対してK4を共有する
に基づいて、環208において次に隣接するパーティに対してセキュア通信チャネル204a~204dを通してそれらの対応する前駆体の鍵KPを共有する。
【0120】
例えば、前駆体のネゴシエーションステップで、パーティ102a~102eのそれぞれは、環において前に隣接するパーティ又は次に隣接するパーティに対してネゴシエートする(すなわち、暗号鍵交換を実行する)よう構成され、ここで、以下、
・パーティ0のパーティ102aは、パーティ1のパーティ102bに対して前駆体の鍵K0,202aをネゴシエートする(例えば、鍵交換を実行する)
・パーティ1のパーティ102bは、パーティ2のパーティ102cに対して前駆体の鍵K1,202bをネゴシエートする(例えば、鍵交換を実行する)
・パーティ2のパーティ102cは、パーティ3のパーティ102dに対して前駆体の鍵K2,202cをネゴシエートする(例えば、鍵交換を実行する)
・パーティ3のパーティ102dは、パーティ4のパーティ102eに対して前駆体の鍵K3,202dをネゴシエートする(例えば、鍵交換を実行する)、及び、
・パーティ4のパーティ102eは、パーティ0のパーティ102aに対して前駆体の鍵K4,202eをネゴシエートする(例えば、鍵交換を実行する)
に基づいて、0≦p≦4の場合、前駆体の鍵/暗号鍵KPがネゴシエートされる。
その後、パーティ102a~102eのそれぞれは、以下、
・パーティ0のパーティ102aはK4及びK0を有する
・パーティ1のパーティ102bはK0及びK1を有する
・パーティ2のパーティ102cはK1及びK2を有する
・パーティ3のパーティ102dはK2及びK3を有する、及び、
・パーティ4のパーティ102eはK3及びK4を有する
に基づくネゴシエーション後に、保存された第1の前駆体の鍵及び第2の前駆体の鍵を有する。
【0121】
グループ鍵形成/作成プロセスのミーティング通知ステップであるステップB)において、パーティ102a~102eのそれぞれは、それらの前駆体の鍵Kp、及び、0≦p<Nの場合、前に隣接するパーティから共有された/ネゴシエートされた前駆体の鍵K(p-1+N)modNに基づいてそれらのそれぞれのミーティング鍵Mpを計算し、以下、
・パーティ0のパーティ102aは、媒介物104又はミーティングアグリゲーションノードに対してM0=(K0 XOR K4)を共有する
・パーティ1のパーティ102bは、媒介物104又はミーティングアグリゲーションノードに対してM1=(K1 XOR K0)を共有する
・パーティ2のパーティ102cは、媒介物104又はミーティングアグリゲーションノードに対してM2=(K2 XOR K1)を共有する
・パーティ3のパーティ102dは、媒介物104又はミーティングアグリゲーションノードに対してM3=(K3 XOR K2)を共有する
・パーティ4のパーティ102eは、媒介物104又はミーティングアグリゲーションノードに対してM4=(K4 XOR K3)を共有する
に基づいて、媒介物104又はミーティングアグリゲーションノードに対してそれらのミーティング鍵Mpを送信/共有する。
【0122】
ステップc)において、媒介物104又はミーティングアグリゲーションノードは、環208においてパーティ102a~102eの2つ以上のミーティング鍵の賢明な組み合わせに基づいて、パーティ102a~102eのそれぞれについて対応する媒介鍵Xpを計算し、それによって、第p番目のパーティの各Xpを、第p番目のパーティの対応する前駆体の鍵KpとXOR演算した場合、パーティのそれぞれにとって同じグループ鍵KGが形成されるようになる。例えば、ミーティング鍵の賢明な組み合わせは、以下に基づいてもよい。すなわち、パーティ(例えば、パーティ102a)P=0の場合、X0=XOR{r=2 to N-1 step2}Mrであり、パーティ(例えば、パーティ102b~102e)0<P<Nの場合、XP=XP-1 XOR MPである。以下において、取り消し線は、XOR演算の相互の性質及び関連する性質によって打ち消す用語を示すように用いられる。したがって、媒介物104又はミーティングアグリゲーションノードは、以下に基づいて、パーティ102a~102eのそれぞれについて対応する媒介鍵Xpを計算する。すなわち、
・パーティ0のパーティ102aについての媒介鍵は、
X0=M2 XOR M4=(K2 XOR K1)XOR(K4 XOR K3)=K1 XOR K2 XOR K3 XOR K4
として計算される
・パーティ1のパーティ102bについての媒介鍵は、
X1=X0 XOR M1=(K4 XOR K2 XOR K3 XOR K4)XOR(K4 XOR K0)=K2 XOR K3 XOR K4 XOR K0
として計算される
・パーティ2のパーティ102cについての媒介鍵は、
X2=X1 XOR M2=(K2 XOR K3 XOR K4 XOR K0)XOR(Ka XOR K1)=K3 XOR K4 XOR K0 XOR K1
として計算される
・パーティ3のパーティ102dについての媒介鍵は、
X3=X2 XOR M3=(K3 XOR K4 XOR K0 XOR K1)XOR(K3 XOR K2)=K4 XOR K0 XOR K1XOR K2
として計算される
・パーティ4のパーティ102eについての媒介鍵は、
X4=X3 XOR M4=(K4 XOR K0 XOR K1 XOR K2)XOR(K4 XOR K3)=K0 XOR K1 XOR K2 XORK3
として計算される
したがって、媒介物104又はミーティングアグリゲーションノードは、以下に基づいて、対応する計算された媒介鍵を、セキュア通信チャネルを通じてパーティ102a~102eのそれぞれに送信する。すなわち、
・媒介物104又はミーティングアグリゲーションノードは、パーティ0のパーティ102aにX0を送信する
・媒介物又はミーティングアグリゲーションノード104は、パーティ1のパーティ102bにX1を送信する
・媒介物又はミーティングアグリゲーションノード104は、パーティ2のパーティ102cにX2を送信する
・媒介物又はミーティングアグリゲーションノード104は、パーティ3のパーティ102dにX3を送信する
・媒介物又はミーティングアグリゲーションノード104は、パーティ4のパーティ102eにX4を送信する
【0123】
グループ鍵計算のステップd)において、パーティ102a~102eのそれぞれは、以下に基づいて、それらの受信された媒介鍵Xpとそれらの前駆体の鍵KpとをXOR演算することによって、同じグループ鍵KGを計算する。すなわち、
・パーティ0のパーティ102aは
Kg=X0 XOR K0=K0 XOR K1 XOR K2 XOR K3 XORK4
を計算する
・パーティ1のパーティ102bは
Kg=X1 XOR K1=K0 XOR K1 XOR K2 XOR K3 XOR K4
を計算する
・パーティ2のパーティ102cは
Kg=X2 XOR K2=Ko XOR Ki XOR K2 XOR K3 XOR K4
を計算する
・パーティ3のパーティ102dは
Kg=X3 XOR K3=K0 XOR Ki XOR K2 XOR K3 XOR K4
を計算する
・パーティ4のパーティ102eは
Kg=X4 XOR K4=K0 XOR K1 XOR K2 XOR K3 XOR K4
を計算する
【0124】
したがって、全てのパーティはここで、5個全ての前駆体の鍵のXORである同じグループ鍵を有する。
【0125】
さらに、選択肢として、そしてグループ鍵のセキュリティを改善するため、またパーティ102a~102eのそれぞれによって実行される対応するグループ鍵計算ステップd)より前に、グループが知得しているオーガナイザなしで環208に未知のパーティが加わる場合があるリスクを減らすために、グループ鍵作成/形成ミーティング及び/又は通信システム200は、媒介物104を除いた環208における全ての他のパーティ102b~102e(例えば、主催者のパーティがパーティ102aである場合)又は媒介物104を除いた環208における全てのパーティ102a~102e(例えば、パーティのグループ及び媒介物104とは異なる外部パーティである場合)に対して、ワンタイムパッド(OTP)鍵Kotpを作成し及び/又は送信するパーティのグループの主催者パーティ102a又は外部アクタ(例えば、媒介物104とは異なるサードパーティ)を含むように更に修正され、構成されてもよい。OTP鍵Kotpは、各パーティによって生成されたグループ鍵Kgをセキュアにするように更に用いられてもよい。したがって、グループにおけるパーティ102a~102eのそれぞれが、媒介物ではないオーガナイザ(例えば、グループにおける別のパーティ)及び/又は外部パーティからOTP鍵Kotpを受信すると、OTP鍵Kotpは、以下に基づいて、0≦p<Nの場合、各パーティによってグループ鍵計算Kgに含められてもよい。すなわち、
・パーティ0のパーティ102aは
Kg=X0 XOR K0 XOR KOtp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
を計算する
・パーティ1のパーティ102bは
Kg=X1 XOR K1 XOR Kotp=Ko XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
を計算する
・パーティ2のパーティ102cは
Kg=X2 XOR K2 XOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
を計算する
・パーティ3のパーティ102dは
Kg=X3 XOR K3 XOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
を計算する
・パーティ4のパーティ102eは
Kg=X4 XOR K4 XOR Kotp=Ko XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
を計算する
【0126】
したがって、環208における全てのパーティ102a~102eはここで、環208の5個全ての前駆体の鍵及びOTP鍵のXORである、同じグループ鍵を有する。これにより、全てのパーティ102a~102eにとって同じであるセキュアなグループ鍵Kgが形成されるので、これを、本出願が請求するように、パーティ102a~102eのグループの各パーティによってグループ鍵として用いてもよい。
【0127】
図3は、
図1a~
図1gを参照して説明したようなグループ鍵を作成し、当事者102a~102dとのグループ会議を手配するように構成された、仲介104(例えば、Meet MeサーバまたはWhatsApp(RTM)サーバ、MS Teams(RTM)サーバ)と通信する偶数Nの当事者102a~102dのための、
図3のグループ鍵作成/形成会議および通信システム300の例を示す概略図である。
図3は、グループ鍵作成/形成処理において、全ての関係者102a~102dに対して形成されるリング308の数を減らすか、一時的に減らすケースAのグループ形成/形成処理の例を示す説明図である。この例では、パーティ数は、特に限定されないが、例えばN=4人のパーティ102a~102d(例えば、パーティ0、パーティ1、パーティ2、パーティ3)が、グループミーティングやグループコミュニケーションセッション等に参加するように手配されている。
【0128】
N個の当事者102a~102d間のグループ会合を安全にするために、当事者102a~102cの各々は、仲介者104にとって未知のグループ鍵を作成するためのグループ鍵形成/ネゴシエーションの実行に関与するように構成され、当事者102dは、導出されたグループ鍵を代表するデータをリング308内の以前使用された隣接デバイス102cから受信する。仲介者104は、当事者102a~102dがそれぞれグループ鍵を交渉し作成するのを支援するために、それぞれのまたは対応する他の当事者102a~102dと通信する際に使用するために、他の当事者102a~102dの1つまたは複数の参照/アドレスを、安全な通信チャネル(図示せず)を介して当事者102a~102dのそれぞれに手配し通知するように構成され得る。そうする必要がある場合、当事者102a~102dの各々は、セキュアチャネル304a~304e(例えばチャネル107a~107eと同様)のうちの1つを介して、および/または対応するセキュアチャネルなどを介して中間デバイス104を介して、当事者102a~102dのうちの別のものと直接通信するように構成され得ることが考えられる。
【0129】
この例では、グループ、したがってリング308の形成は、N当事者102a~102dのうちの当事者による要求に応じて、外部アクターによって実行され得、外部アクターは、仲介者104(例えば、Meet Me)にグループキーを通知する。そのグループキーというのは、グループコミュニケーションセッション/ミーティングのために必要とされる。この要求には、例えば、グループに含まれる当事者102a~102dの外部参照先/連絡先詳細のセット{R}が含まれるが、これに限定されない。仲介者および/または他の当事者は、
図3aに示すように、当事者のうちの当事者102a~102dをリング308に配置または組織することができ、当事者102a~102dは{当事者0、当事者1、当事者2のシーケンスに配置される。パーティ3}。例えば、これは、中間者104が内部的に順次ゼロベースのインデックスpを各パーティに割り当て、パーティの各パーティの外部参照をそのゼロベースの参照pにマッピングすることによって達成され得る。仲介者104は、リング308内の次のパーティの外部参照をパーティ102a~102dを介して各パーティに通知する。この例では、パーティ102aのパーティ0はパーティ102bのパーティ1の外部参照を受信し、パーティ102bのパーティ1は外部参照を受信する。当事者102bのパーティ1は当事者102cの当事者2の外部参照を受信し、パーティ102cのパーティ2は、パーティ102dのパーティ3の外部参照を受信し、パーティ102dのパーティ3は、パーティ102eのパーティ4の外部参照を受信する。したがって、0<=p<N(例えば、この例ではN=4)のパーティpの各々は、リング308内の次の隣接するパーティの外部参照を有する。
【0130】
しかしながら、ケースaのシステム300のグループ形成/作成プロセスの場合、リング308は、グループ鍵に参加する奇数のパーティ102a~102cを形成するために最後のパーティ102d(例えばパーティ3)を削除することによって仮想的に縮小される。グループ形成/作成プロセスの前駆体形成、会議通知、パーティー通知ステップからの形成。したがって、仲介者104はまた、最後から2番目のパーティ、すなわちパーティ102cまたはパーティ2に、リング308内の最初のパーティ102a(たとえばパーティ0)の外部参照/連絡先詳細を提供する。したがって、リング308は効果的に縮小される。グループ形成/作成プロセスの前駆体形成、会議通知、およびパーティ通知ステップを実行するための循環シーケンス{パーティ0、パーティ1、パーティ2}に続きます。最後のパーティ102d(例えば、パーティ3)は、以下に説明するように、グループ鍵作成ステップ中にリング308に戻される。
【0131】
したがって、関係者102a~102cのすべては、グループ鍵を作成または形成するためのグループ形成/作成プロセスの前駆鍵共有/交渉段階を開始するために必要な詳細を有する。この例では、プリカーサ鍵の共有は、以下に基づいて進行する。リング308のN-1パーティとは別に、パーティpのそれぞれが、プリカーサ鍵KP、302a~302cを作成/取得する。作成/取得されると、リング308のパーティP(0<=p<N-1)のそれぞれ(例えば、パーティ102a~102c)は、安全な通信チャネル304a~304eを介して、その前駆キーKPを次のパーティと共有する。さらに、最後から2番目のパーティ102cは、p=N-2のとき、そのプリカーサ鍵KPを第1のパーティ0または第1のパーティ102aとチャネル304eを介して共有する。最後のパーティN-1または最後のパーティ102dは何も共有/交渉しません。例えば、各パーティは、リング308内の次のパーティのパーティとプリカーサキーを共有するが、最後のパーティを除き、最後から2番目のパーティPW-2のパーティ102c(例えば、デバイス102c)がそのプリカーサキーを共有/ネゴシエートする場合を除く。したがって、0<=p<N-1の場合、各パーティp(またはp番目のパーティ)は、そのプリカーサキーKPとプリカーサを持ちます。リング308内の前のパーティからのキーK(p-1+n)modnただし、最後から2番目のパーティKN-2からの前駆キーを有するリング308内の最初のパーティを除く。リング308内の最後のパーティは、チャネル304dを介して共有されるプリカーサ鍵KN-2のみを有するので、KN-2は、N-1パーティ102dのプリカーサ鍵となる(例えば、KN-1=KN-2)。
【0132】
したがって、当事者102a~102cは、会議通知(例えば、ミートミー通知)を作成することができる。この通知において、0<=p<N-1の場合、当事者pの各当事者は、その前駆キーKPのXORを計算し、前のパーティの前駆キーK(p-1+n)modnを使用して、p番目のパーティの会議キーMp=KpXORK(P-1+n)modnを作成します。ここで、0番目のパーティは当事者102a、p=0は、会議鍵M0、その前駆鍵K0と最後から2番目の当事者102cの前駆鍵K(N-2)とのXORを計算する。すなわち、この例ではM0=K0XORK2である。
当事者p(0<=p<N-1)の各当事者は、MPを表すデータを含む会議通知を、その外部参照Rとともに中間者104(例えば、Meet Me)に送信し、これにより、中間者104がマッピングできるようにする。形成されたリング308内のp番目のデバイス/パーティへのp番目のミーティングキー。たとえば、仲介者はMPとpのマッピングを保存します。最後の当事者(例えば、当事者3の当事者102d)は仲介者104に何も送信しないことに留意されたい。
【0133】
ここで、仲介者104(例えば、会議集約ノード)は、0<=p<N-1の当事者102a~102cのそれぞれについて中間鍵Xpを計算し、これらはそれぞれ当事者通知で対応する当事者に送信される。例えば、各当事者p、0<=p<N-1について、中間者104は、以下に基づいて中間鍵XPを計算する。当事者P=0である当事者102aの場合、中間者は中間鍵をX0=XORとして計算する。{r=2toN-1ステップ2}Mr;パーティ0<P<N-1である縮小リング308内の残りのパーティ102b~102cについて、仲介者104はXP=XP.;XOR MPを計算する。計算されると、仲介者104(例えば、ミートミーまたは会議集約ノード)は、0≦p<N-1の場合、中間キーXPを表すデータをパーティPのp番目のパーティに通知または送信する。さらに、仲介者104(例えば、会議集約ノード)は、最後から2番目の当事者102cの中間鍵XN-2を、P=N-1の場合、当事者Pの(N-1)番目の当事者102dに送信する。N-1番目のパーティの-1番目の中間鍵はXN-1=XN-2です。この例では、N=4です。
【0134】
当事者102a~102dの各当事者がその中間鍵を受信すると、その当事者は、その前駆鍵KPを使用してグループ鍵KGを計算することができる。例えば、当事者Pの各当事者(またはp番目の当事者)は、仲介者104から受け取った受信XPとそれ自身の前駆鍵KPとのXORをとることによって、自身のグループ鍵を確立する。したがって、グループ鍵は計算され得る。各p番目のパーティでKg=XP XOR KP:for0<=p<N-1に基づきます。(N-1)番目の当事者または最後の当事者102dの場合、グループ鍵は、最後から2番目の当事者102cの(n-2)番目の中間鍵を使用することによって計算され得る。XN-2。ここで、グループキーは、p=N-1の場合、Kg=Xv-2XOR K2に基づく可能性がある。
【0135】
図1a~
図3を参照して説明したように、Nが偶数である場合のグループ鍵形成/作成システム/プロセス100、110、120、140およびステップ145、および300のいずれかを参照すると、それらの組み合わせ、その修正が示される。以下は、リング308が一時的にNパーティからN-1パーティ(例えば、最後のパーティ102dは、プリカーサ共有/ネゴシエーションおよびグループ鍵の作成/形成中にリング308から削除される)。
図1aから
図3を参照して説明したグループ鍵形成/作成プロセス(複数可)110、120、140およびステップ145、300のそれぞれは、以下の概念および/またはステップに基づいてさらに修正および/または適合させることができる。実施例、それらの組み合わせ、それらの修正、および/または本明細書に記載のとおりである。簡素化するために、
図1aから
図3の参照番号は、類似または同じ特徴、構成要素、ステップおよび/またはプロセスなどに対して再利用され得る。以下の実施例では、グループ内のパーティの数はN=4であり、
図3を参照して説明したように、4つのパーティはリング308内の対応するパーティ102a~102dのパーティ0~パーティ3として配置される。
【0136】
図1aまたは
図3を参照すると、リング308がN=4に対して形成された後、各当事者102a~102dは、シーケンス番号または位置p(例えば、0≦p≦3)を知っている(または仲介者104によって通知されている)。それらは、順序付けられたリング308内に位置し、また、リング308内の少なくとも次の隣接当事者および/またはリング内の以前の隣接当事者、グループなどの1つまたは複数の他の当事者の参照/連絡先詳細も位置する。ケースAでNが偶数である場合の鍵形成プロセスには、以下の主なステップが含まれる。A)前駆体鍵の共有/ネゴシエーション(例えば、
図1dのプロセス140のステップ146で説明される)。B)会議通知(例えば、
図1dのプロセス140のステップ146に記載)。C)当事者通知(例えば(例えば、
図1dのプロセス140のステップ146で説明される))。D)グループキー計算(例えば、
図1dのプロセス140のステップ148で説明される)。
【0137】
グループ鍵形成/作成プロセスのプリカーサ共有/ネゴシエーションステップであるステップa)において、当事者102a~102dのそれぞれが、リング308内の次に隣接するデバイスとプリカーサ鍵共有/ネゴシエーションステップを実行する。リング308内のある当事者から次の当事者へ鍵を共有すること、またはリング308内の一方の当事者と次の当事者の間で鍵の交渉を行うこと。
【0138】
例えば、プリカーサ共有ステップでは、当事者102a~102dのそれぞれが、以下に基づいて、0<=p<=3の対応するプリカーサ鍵/暗号鍵Kpを作成/取得するように構成される。
・パーティ0のパーティ102aは、プリカーサキーK0、302aを作成/取得する。
・パーティ1のパーティ102bは、プリカーサキーK1、302bを作成/取得する。
・パーティ2のパーティ102cは、プリカーサキーK2、302cを作成/取得する。
・パーティ3のパーティ102dはプリカーサキーを作成しない。
その後、0<=p<3のパーティ102a~102cのそれぞれは、以下に基づいて、安全な通信チャネル304a~304eを介して、リング308内の次に隣接するパーティと、対応するプリカーサ鍵Kpを共有する。
・パーティ0のパーティ102aはチャネル304aを介してパーティ1のパーティ102bとK0を共有する。
・パーティ1のパーティ102bは、チャネル304bを介してパーティ2のパーティ102cとK1を共有する。
・パーティ2のパーティ102cは、チャネル304eを介してパーティ0のパーティ102aとK2を共有し、また
・パーティ2のパーティ102cは、チャネル204dを介してパーティ3のパーティ102dとK2を共有する。
【0139】
例えば、プリカーサネゴシエーションステップでは、当事者102a~102dのそれぞれが、リング内の前または次の隣接当事者とネゴシエートする(すなわち、暗号キー交換を実行する)ように構成される。ここで、0<=p<=3のプリカーサキー/暗号キーKpが以下に基づいて交渉される。
・パーティ0のパーティ102aは、パーティ1のパーティ102bとプリカーサ鍵K0、302aを交渉させる(例えば、キー交換を実行する)。
・パーティ1のパーティ102bは、パーティ2のパーティ102cとプリカーサ鍵K1、302bを交渉させる(例えば、キー交換を実行する)。
・パーティ2のパーティ102cは、パーティ0のパーティ102aとプリカーサ鍵K2、302cを交渉させる(例えば、キー交換を実行する)。また
・パーティ2のパーティ102cは、プリカーサキーK2をパーティ3のパーティ102dと共有する。
その後、当事者102a~102dのそれぞれは、以下に基づく交渉の後、第1および第2の前駆体キーを保存する。
・パーティ0のパーティ102aはK2とK0を所有する。
・パーティ1のパーティ102bはK0とK1を所有する。
・パーティ2のパーティ102cはK1とK2を所有する。また
・パーティ3のパーティ102dはK2を所有する。
【0140】
グループキー形成/作成プロセスの会議通知ステップであるステップb)において、0<=p<=3の当事者102a~102cのそれぞれは、前駆キーKpや前の隣接パーティから共有/交渉された0<=p<N-1の前駆キーK(p-1+N)modNに基づいてそれぞれの会議キーMpを計算し、その会議キーMpを、以下に基づいて仲介者104または会議集約ノードに送信/共有する。
・パーティ0のパーティ102aは、M0=(K0 XOR K2)を仲介者104または会議集約ノードと共有する。
・パーティ1のパーティ102bは、M1=(K1XORK0)を仲介者104または会議集約ノードと共有する。
・パーティ2のパーティ102cは、M2=(K2XORK1)を仲介者104または会議集約ノードと共有する。
・パーティ3のパーティ102dは何も共有しない。
【0141】
ステップc)において、仲介者104は、当事者102a~102cの2つ以上の会議鍵の賢明な組み合わせに基づいて、当事者102a~102cのそれぞれに対応する中間鍵Xpを0≦p<3で計算する。リング308において、p番目のパーティの各Xpがp番目のパーティの対応する前駆キーKpとXOR演算されると、同じグループキーKgが0<=p<3の各パーティに対して形成される。例えば、会議キーの賢明な組み合わせは、以下に基づくと考えられる。パーティP=0(例えば、パーティ102a)の場合、X0=XOR{r=2からN-1へのステップ2}Mr;およびパーティ0<P<N-1(例えば、パーティ102b~102c)の場合、XP=Xp-1 XOR Mp。
以下では、取り消し線は、XOR演算の可換性および関連性により相殺される項を示すために使用される。したがって、仲介者104または会議集約ノードは、以下に基づいて当事者102a~102cの各々について対応する中間鍵Xpを計算する。
・パーティ0のパーティ102aの中間キーは次のように計算される。
X0=M2=(K2 XORK1)=K1 XOR K2
・パーティ1のパーティ102bの中間キーは次のように計算される。
X1=X0 XOR M1=(K1 XOR K2)XOR(K1 XOR K0)=K2 XOR K0
・パーティ2のパーティ102cの中間キーは次のように計算される。
X2=X1 XOR M2=(K2 XOR K0)XOR(K2 XOR K1)=K0 XOR K1
その後、仲介者104または会議集約ノードは、安全な通信チャネルを介して、以下に基づいて、対応する計算された中間鍵を当事者102a~102cのそれぞれに送信する。
・仲介者104または会議集約ノードは、パーティ0のパーティ102aにX0を送信する。
・仲介者104または会議集約ノードは、パーティ1のパーティ102bにX1を送信する。
・仲介者104または会議集約ノードは、パーティ2のパーティ102cにX2を送信する。
【0142】
ステップd)のグループ鍵計算では、当事者102a~102cのそれぞれが、以下に基づく0<=p<N-1に関して、受信した中間鍵Xpとその前駆鍵Kp-とのXORを行うことにより、同じグループ鍵KGを計算する。
・パーティ0のパーティ102aは次を計算する。
Kg=X0 XOR K0=K0 XOR K1 XOR K2
・パーティ1のパーティ102bは次を計算する。
Kg=X1 XOR K1=K0 XORK1 XOR K2
・パーティ2のパーティ102cは次を計算する。
Kg=X2 XOR K2=K0 XOR K1 XOR K2
・パーティ2のパーティ102cはX2をパーティ3に送信し、パーティ3のパーティ102dは次を計算する。
Kg=X2 XORK2=K0 XORK;XOR K2
【0143】
したがって、すべての当事者は、「縮小された」リング308の3つのプリカーサキーすべてのXORである同じグループキーを有する。
【0144】
さらに、オプションとして、グループ鍵のセキュリティを向上させ、102a~102dの各グループによって実行される対応するグループ鍵計算ステップD)に先立って、グループの主催者が知らないうちに未知の当事者がリング308に追加されるリスクを軽減するために、グループ鍵作成/形成会議および/または通信システム300は、当事者グループの組織当事者102aまたは外部アクター(例えば、仲介者104とは異なる第三者)、ワンタイムパッド(OTP)キー、KOTPを作成する事、および/又は、仲介者104を除くリング308内の他の全ての当事者102b~102dにそれを送信する事(例えば、組織化当事者がパーティ102aである場合)、または中間者104を除くリング308内のすべてのパーティ102a~102d(それがパーティのグループおよび仲介者104とは異なる外部パーティである場合)を含むようにさらなる修正および構成が行われることが考えられる。OTPキーKOTPは、各当事者によって生成されたグループキーKGを保護するためにさらに使用できる。したがって、グループ内のパーティ102a~102dのそれぞれが、主催者(例えば、グループ内の別のパーティ)および/または外部パーティからOTPキーKOTPを受信すると、以下に基づいた0<=p<N-1のグループキーの計算KGにおいてOTPキーKOTPを各パーティによって含むことができる。
・パーティ0のパーティ102aは次を計算する。
Kg=X0 XOR K0 XOR Kotp=K0 XOR K1 XOR K2 XOR Kotp
・パーティ1のパーティ102bは次を計算する。
Kg=X1 XOR K1 XOR Kotp=K0 XOR K1 XOR K2 XOR Kotp
・パーティ2のパーティ102cは次を計算する。
Kg=X2 XOR K2 XOR Kotp=K0 XOR K1 XOR K2 XOR Kotp
・パーティ2のパーティ102cはパーティ3にX2を送信し、パーティ3のパーティ102dは次を計算する。
Kg=X2 XOR K2 XOR Kotp=K0 XOR K1 XOR K2 XOR Kotp
【0145】
したがって、リング308内のすべての当事者102a~102dは、「縮小された」リング308の3つすべてのプリカーサ鍵とOTP鍵とのXORである同じグループ鍵を有する。これにより、すべての当事者102a~102dに対して同一である安全なグループ鍵Kgが形成され、アプリケーションの要求に応じて当事者102a~102dのグループの各当事者によってグループ鍵として使用され得る。
【0146】
図4は、仲介者104(例えば、Meet MeサーバまたはWhatsApp(RTM)サーバ、MSTeams(RTM)サーバ)と通信する偶数Nの当事者102a~102dのためのグループ鍵作成/形成会議および通信システム400の一例を示す概略図である。その仲介者104は、
図1a~1dを参照して説明するようにグループ鍵を作成し、当事者102a~102dとのグループ会議を手配するように構成されている。
図4は、ケースbのグループ形成/作成プロセスの例を示す図である。このプロセスでは、すべてのパーティ102a~102dに対して形成されるリング408が、例えば、制限なくパーティ(N-1)の(N-1)番目のパーティ102d(例えば、パーティ3)によってホストされる「仮想パーティ」または「仮想パーティ」401aを含むように拡張される。この例では、当事者の数は、制限なく、例えば、グループ会議またはグループ通信セッションなどに出席するように手配されたN=4の当事者102a~102d(例えば、当事者0、当事者1、当事者2、当事者3)である。N個の当事者102a~102d間のグループ会議を安全にするために、当事者102a~102cのそれぞれは、中間者104にとって未知のグループ鍵を作成するためのグループ鍵形成/交渉の実行に関与するように構成される。そこでは102dはさらに、リング408へのパーティの数を奇数のパーティであるN+1に増加させる「仮想パーティ」または「仮想パーティ」401aをホストするように構成されている。仲介者104は、それぞれのまたは対応する他の当事者102a~102dとの通信に使用するために、他の当事者102a~102dのうちの1つまたは複数の参照/アドレスの安全な通信チャネル(図示せず)を介して当事者102a~102dのそれぞれに手配し、通知するように構成され得る。他の当事者102a~102dは、当事者102a~102dがそれぞれネゴシエーションしてグループ鍵を作成するのを支援する。そうする必要がある場合、当事者102a~102dのそれぞれは、(例えばチャネル107a~107eと同様の)安全なチャネル404a~404dのうちの1つを介して直接当事者102a~102dのうちの別の当事者と通信するように構成されると考えられる。および/または対応する安全なチャネルなど経由の中間デバイス104を介して。
【0147】
この例では、グループ、したがってリング408の形成は、N当事者102a~102dの当事者による要求に応じて、外部アクターによって実行されると考えられる。その外部アクターは、グループコミュニケーションセッション/ミーティングのグループキーが必要とされる中間者104(例えばミートミー)に通知する。この要求には、制限なく、例えば、グループに含まれる当事者102a~102dの外部参照先/連絡先詳細のセット、{R}が含まれると想定される。仲介者および/または他の当事者は、
図4aに示されるように、当事者のうちの当事者102a~102dをリング408に配置または組織し、当事者102a~102dは{パーティ0、パーティ1、パーティ2、パーティ3}のシーケンスに配置される。例えば、これは、中間者104が内部的に順次ゼロベースのインデックス、pを各パーティに割り当て、パーティの各パーティの外部参照をそのゼロベースの参照、pにマッピングすることによって達成され得る。仲介者104は、リング408内の次のパーティの外部参照をパーティ102a~102dを介して各パーティに通知する。この例では、パーティ102aのパーティ0はパーティ102bのパーティ1の外部参照を受信し、パーティ102bのパーティ1はパーティ102cのパーティ2の外部参照を受信し、パーティ102cのパーティ2はパーティ102dのパーティ3の外部参照を受信し、パーティ102dのパーティ3はパーティ102eのパーティ4の外部参照を受信する。したがって、0≦p<N(例えば、この例ではN=4)のパーティpのそれぞれは、リング408内の次に隣接するパーティへの外部参照を有する。
【0148】
しかしながら、システム400のケースbのグループ形成/作成プロセスの場合、リング408は、最後のパーティ102d、すなわちパーティ3によってホストされ、仮想パーティまたは、グループ形成/作成プロセスの前駆体形成、会議通知、およびパーティ通知ステップにおけるデバイス401aを含んで「仮想パーティまたはデバイス」401aを追加することによって仮想的に増加される。したがって、「仮想パーティまたはデバイス」401aが追加されると、リング408は、プリカーサ形成、会議通知、およびグループの形成/作成プロセスのパーティ通知ステップを実行するために、次の循環シーケンス{パーティ0、パーティ1、パーティ2、パーティ3、仮想パーティ}に効果的に増加させられる。最後のパーティ102d(例えば、パーティ3)は、以下に説明するように、仮想パーティ401aをホストする。
【0149】
したがって、関係者102a~102dのすべては、グループ鍵を作成または形成するためのグループ形成/作成プロセスの前駆鍵共有/交渉段階を開始するために必要な詳細を有する。この例では、プリカーサ鍵の共有は、以下に基づいて進行する。リング408の当事者pのそれぞれが、プリカーサ鍵KP、402a~402dを作成/取得する。さらに、当事者PN-1、この例ではパーティ102dであり、「仮想パーティ/パーティ」PN、401aを作成し、したがって、プリカーソルキー、KN-1、402dの代わりにリング408内の第1パーティ102aと共有する第2の前駆キーKN、401bを作成する。
【0150】
作成/取得されると、リング408の0≦p<N-1のパーティPのそれぞれ(例えば、パーティ102a~102c)は、安全な通信チャネル404a~404cを介して、その前駆キー、KPをリング408内の次のパーティと共有する。さらに、p=N-1の場合、最後のパーティp(すなわち、p=N-1)、またはN-1番目のパーティ102dは、第2のプリカーサ鍵KNを最初のパーティ0または、チャネル404dを介して第1パーティ102aと共有する。例えば、各パーティは、リング408内の次のパーティとそのプリカーサキーを共有するが、最後のパーティ102dは例外であり、代わりに、それがリング408内で第1パーティ(すなわち、パーティ102a)とホストしている仮想デバイス/パーティ401aの第2プリカーサキー401bを共有する。したがって、0<p<=N-1の場合、各パーティ、p(またはp番目のパーティ)は、リング408内の前のパーティからそのプリカーサキーKPとプリカーサキーK(P-1+N)modNを有する。ただし、そのプリカーサ鍵K0および最後のパーティ102d(または最後の(N-1)番目のパーティ/パーティ)によってそれと共有される「仮想パーティ」401aの第2のプリカーサ鍵、KN、401bを有するリング308内の最初のパーティを除く。
【0151】
したがって、当事者102a~102dは、会議通知(例えば、ミートミー通知)を作成することができ、0<=p<=N-1の場合、当事者pの各当事者は、p番目のパーティの会議キーMP=KPXORK(P+n)mod(n+i)を作成するためにその前駆キーKPと前のパーティのプリカーソルキーK(P+N)mod(n+1)のXORを計算する。ここで、(「仮想パーティ」401aをホストしている)パーティP=N-1の最後のパーティ102dもまた、P=N、すなわち「仮想パーティ」401aの会議キーであるMNについてMP=KP XOR K(P+n)mod(n+1)を計算する。
【0152】
当事者p(0≦p<N-1)の各当事者は、MPを表すデータを含む会議通知を、その外部参照Rとともに中間者104(例えば、Meet Me)に送信し、これにより、中間者104が形成されたリング408内のp番目のデバイス/パーティへのp番目の会議キーをマッピングできるようにする。しかしながら、パーティN-1の最後のパーティ102aは、MN-1とMNの両方を、MN-1とMNを表すデータを含む会議通知で、その外部参照Rとともに中間者104(例えば、ミートミー)に送信する。これにより仲介者104は、N-1番目の会議キーを、それが形成したリング408内のN-1番目のデバイス/当事者にマッピングすることができる。たとえば、仲介者はMPvsPのマッピングを保存する。
【0153】
ここで、仲介者104は、仮想パーティ401aを含む0<=p<=Nのパーティ102a~102dのそれぞれについて中間鍵XPを計算し、これらはそれぞれパーティ通知で対応するパーティに送信される。例えば、各当事者p、0<=p<N-1について、中間者104は、以下に基づき、中間鍵XPを計算する。当事者P=0の当事者102aの場合、中間者は中間鍵をX0=XOR{R=2toN-2step2}MR;として計算する。そして、パーティ0<P<=Nのリング408内の残りのパーティ102b~102d(および「仮想パーティ」N401a)について、仲介者104は、Xp=Xp-1 XORMPを計算する。ここで、p=Nの場合、仲介者104は、(N-1)番目の当事者102dから受け取った会議キーMNを使用する。計算が完了すると、仲介者104(例えばMeet Me)は、中間キーXpを表すデータを0<=p<N-1のパーティPのp番目のパーティに通知または送信する。(N-1)<=p<=Nの場合、(N-1)番目のパーティ102dがN番目の「仮想パーティ/パーティ」401aをホストしているため、中間デバイス104は(N-1)番目のパーティ102dへ中間鍵XN-1とXnの両方を送信する。この例ではN=4だが、それはいかなる偶数のNにも適用できる。
【0154】
当事者102a~102dの各当事者が中間鍵を受信すると、その当事者は、その前駆鍵KPおよび受信した中間鍵Xpを使用してグループ鍵KGを計算することができる。例えば、当事者Pの各当事者(またはp番目の当事者)は、仲介者104から受け取った受信XPとそれ自体の前駆鍵KPとのXORを行うことによって、独自のグループ鍵を確立する。したがって、グループキーはN個のパーティ102a~102dのそれぞれについて同じであるが、0<=p<NのKG=XP XOR KPに基づいて、各p番目のパーティで独立して計算される。
【0155】
図1aから
図4を参照し説明するように、Nが偶数である場合のグループ鍵形成/作成システム/プロセス100、110、120、140およびステップ147、および400のいずれかを参照すると、それらの組み合わせ、その修正および同様の事が行われる。以下は、NパーティからN+1パーティまでの仮想パーティの(例えば、最後のパーティ102dは、プリカーサ共有/ネゴシエーションおよびグループキーの作成/形成中にリング408に含まれる仮想パーティ401aをホストする)仮想手段によってリング408が一時的に増加される時に、ケース(例えば、ケースb)について、Nが2より大きい偶数である場合に、Nパーティのグループのグループ鍵を作成する実際の例である。
図1aから
図4を参照して説明したグループ鍵形成/作成プロセス110、120、140およびステップ145、400のそれぞれは、以下の実施例、それらの組み合わせ、修正、および/または本明細書に記載の概念および/またはステップに基づいてさらに修正および/または適合させることができる。簡素化にするために、
図1aから
図4までの参照番号は、類似または同じ特徴、構成要素、ステップおよび/またはプロセスなどに対して再利用され得る。以下の実施例では、グループ内のパーティの数(仮想パーティを含まない)はN=4であり、
図4を参照して説明するように、4つのパーティは、リング408内の対応するパーティ102a~102dのパーティ0からパーティ3として配置される。
図1aまたは
図4を参照すると、リング408がN=4に対して形成された後、各当事者102a~102dは、シーケンス番号または位置p(例えば、0<=p<=3)を認知する(または仲介者104によって通知されている)。それらは、それに応じて、順序付けられたリング408内に配置され、また、リング408内の少なくとも次の隣接当事者および/またはリング内の前の隣接当事者など、1つまたはそれ以上の他の当事者の参照/連絡先の詳細も配置される。ケースBでNが偶数の場合のグループキー形成プロセスには、次の主な手順が含まれる。a)プリカーサキーの共有/ネゴシエーション(例えば、
図1dのプロセス140のステップ147で説明される)b)会議通知(例えば、
図1dのプロセス140のステップ147に記載)c)当事者通知(例えば(例えば、
図1d)のプロセス140のステップ147に記載))およびd)グループ鍵計算(例えば、
図1dのプロセス140のステップ148に記載)
【0156】
グループ鍵形成/作成プロセスの前駆体共有/ネゴシエーションステップであるステップa)では、当事者102a~102dのそれぞれが、リング408内の次に隣接するデバイスとの前駆体鍵共有/ネゴシエーションステップを実行する。これにはリング408内の一方の当事者から次の当事者への鍵の共有またはリング408内の一方の当事者と次の当事者との間の鍵のネゴシエーションが含まれる可能性がある。
【0157】
例えば、プリカーサ共有ステップでは、当事者102a~102dのそれぞれが、以下に基づいて、0<=p<=3の対応するプリカーサ鍵/暗号鍵Kpを作成/取得するように構成される。
・パーティ0のパーティ102aは、プリカーサキーK0、402aを作成/取得する。
・パーティ1のパーティ102bは、プリカーサキーK1、402bを作成/取得する。
・パーティ2のパーティ102cは、プリカーサキーK2、402cを作成/取得する。
・パーティ3のパーティ102dは、プリカーサキーK3、402dを作成/取得し、また
・パーティ3のパーティ102dも、仮想パーティ401aを作成/ホストし、前駆キーK4、401bを作成/取得するので、リング408は、仮想パーティ401aを含むように増加される。仮想パーティ401aは、現在、パーティ0のパーティ102aの前の隣接パーティである。
その後、以下に基づいて0<=p<=3のパーティ102a~102dのそれぞれと仮想パーティ401aは、安全な通信チャネル404a~404c、401c、および404dを介して、増加したリング408内の次の隣接パーティと対応する前駆キーKPを共有する。
・パーティ0のパーティ102aは、チャネル404aを介してパーティ1のパーティ102bとK0を共有する。
・パーティ1のパーティ102bは、チャネル404bを介してパーティ2のパーティ102cとK1を共有する。
・パーティ2のパーティ102cは、チャネル404cを介してパーティ3のパーティ102dとK2を共有する。
・当事者3の当事者102dは、「仮想チャネル」401cを介して仮想当事者401aとK3を「共有」する。
・パーティ3のパーティ102dは、仮想パーティ401aを介してチャネル404dを介してパーティ0とK4を共有する。
【0158】
例えば、プリカーサネゴシエーションステップでは、当事者102a~102dのそれぞれが、リング内の前または次の隣接当事者とネゴシエートする(すなわち、暗号鍵交換を実行する)ように構成される。ここで、0<=p<=3のプリカーサ鍵/暗号鍵KPは以下に基づいてネゴシエートされる。
・パーティ0のパーティ102aは、パーティ1のパーティ102bとプリカーサ鍵K0、302aをネゴシエートする(例えば、鍵交換を実行する)。
・パーティ1のパーティ102bは、パーティ2のパーティ102cとプリカーサ鍵K1、302bをネゴシエートする(例えば、鍵交換を実行する)。
・パーティ2のパーティ102cは、パーティ3のパーティ102dとプリカーサ鍵K2、302cをネゴシエートする(例えば、鍵交換を実行する)。また
・パーティ3のパーティ102dは、仮想パーティ401aを作成/ホストし、その後、パーティ3がホストする仮想パーティ401aとプリカーサキーK3、402dを「ネゴシエート/作成」する。また
・パーティ3のパーティ102dも、仮想パーティ401aを介して、パーティ0のパーティ102aとプリカーサキーK4、401bを「ネゴシエート/作成」する。
その後、当事者102a~102dのそれぞれと仮想当事者は、以下に基づく交渉の後、第1および第2の前駆体鍵を保存する。
・パーティ0のパーティ102aはK4とK0を持つ。
・パーティ1のパーティ102bはK0とK1を持つ。
・パーティ2のパーティ102cはK1とK2を持つ。
・パーティ3のパーティ102dはK2とK3を持つ。また
・パーティ3がホストする仮想パーティ401aはK3とK4を持つ。
【0159】
グループ鍵形成/作成プロセスの会議通知ステップであるステップb)において、0<=p<=3の当事者102a~102dのそれぞれは、前駆鍵Kpに基づいてそれぞれの会議鍵Mpを計算し、前の隣接パーティから共有/ネゴシエートされた前駆キー0<=p<=N-1のK(P-1+n)modnを取得し、その会議キーMpを中間者104または会議集約ノードに送信/共有する。ここで、(N-1)番目のパーティ102d(例えば、パーティ3)は、2つのミーティングキーを生成する。そのうちの1つはそれ自体用であり、もう1つは仮想パーティ401a用である。ミーティングキーは、以下に基づいて作成され、通知/共有される。
・パーティ0のパーティ102aは、M0=(K0 XOR K4)を作成し、仲介者104または会議集約ノードと共有する。
・パーティ1のパーティ102bは、M1=(K1 XOR K0)を作成し、仲介者104または会議集約ノードと共有する。
・パーティ2のパーティ102cは、M2=(K2 XOR K1)を作成し、仲介者104または会議集約ノードと共有する。
・パーティ3のパーティ102dは、M3=(K3 XOR K2)を作成し、仲介者104または会議集約ノードと共有する。また
・パーティ3のパーティ102dは、ホストされた仮想パーティ401aを介して、M4=(K4 XOR K3)を作成し、仲介者104と共有する。
【0160】
ステップc)において、仲介者104は、パーティ102a~102dのそれぞれについて、0<=p<=N-1の対応する中間鍵Xpを計算し、また、仲介者104がホストする仮想パーティ401aの中間鍵XNも計算する。最後のパーティ102dは、増加したリング408内のパーティ102a~102dおよび401aの2つ以上の会議キーの賢明な組み合わせに基づいて、p番目のパーティの各Xpがp番目のパーティの対応するプリカーサキーKpとXOR演算されると、0<=p<=3の場合、各パーティに対して同じグループキーKGが形成される。例えば、会議キーの賢明な組み合わせは、以下に基づくことが考えられる。パーティP=0(例えば、パーティ102a)の場合、X0=XOR{R=2 to Nstep2}MR;およびパーティ0<P<=N(例えば、パーティ102b~102dおよび401a)の場合、XP=XP-1XORMP。以下では、取り消し線は、XOR演算の可換性および関連性により相殺される項を示すために使用される。したがって、仲介者104または会議集約ノードは、以下に基づいて、当事者102a~102dのそれぞれについての対応する中間鍵Xpおよび仮想当事者の中間鍵XNを計算する。
・パーティ0のパーティ102aの中間キーは次のように計算される。
X0=M2 XOR M4=(K2 XOR K1)XOR(K4 XOR K3)=KI XOR K 2XOR K3 XOR K4
・パーティ1のパーティ102bの中間キーは次のように計算される。
X1=X0 XOR M1=(K4 XOR K2 XOR K3 XOR K4)XOR(K4 XOR K0)=K2 XOR K3 XOR K4 XOR K0
・パーティ2のパーティ102cの中間キーは次のように計算される。
X2=X1 XOR M2=(K2 XOR K3 XOR K4 XOR K0)XOR(Ks XOR K,)=K3 XOR K4 XOR K0 XORK1
・パーティ3のパーティ102dの中間キーは次のように計算される。
X3=X2 XOR M3=(K3 XOR K4 XOR K0 XOR K1)XOR(K3 XORK2)=K4 XOR K0 XOR K1 XOR K2
・パーティ3がホストする仮想パーティ401aの中間キーは次のように計算される。
X4=X3 XOR M4=(K4 XOR K0 XOR K1 XOR K2)XOR(K4 XOR K3)=K0 XOR K1 XOR K2 XOR K3
その後、中間者104または会議集約ノードは、安全な通信チャネルを介して、以下に基づいて、対応する計算された中間鍵を当事者102a~102dのそれぞれに送信する。
・仲介者104または会議集約ノードは、パーティ0のパーティ102aにX0を送信する。
・仲介者104または会議集約ノードは、パーティ1のパーティ102bにX1を送信する。
・仲介者104または会議集約ノードは、パーティ2のパーティ102cにX2を送信する。
・仲介者104または会議集約ノードは、パーティ3のパーティ102dにX3を送信する。また
・仲介者104または会議集約ノードは、パーティ3のパーティ102dがホストする仮想パーティ401aにX4を送信する。
【0161】
ステップd)のグループ鍵計算では、以下に基づいて当事者102a~102cのそれぞれが、その受信した中間鍵Xpと0≦p≦N-1の前駆鍵KpとのXOR演算により、同じグループ鍵KGを計算する。
・パーティ0のパーティ102aは次を計算する。
Kg=X0 XOR K0=K0 XOR K1 XOR K2 XOR K3 XOR K4
・パーティ1のパーティ102bは次を計算する。
Kg=X1 XOR K1=K0 XOR K1 XOR K2 XOR K3 XOR K4
・パーティ2のパーティ102cは次を計算する。
Kg=X2 XOR K2=K0 XOR K1 XOR K2 XOR K3 XOR K4
・パーティ3のパーティ102dは次を計算する。
Kg=X3 XOR K3=K0 XOR K1 XOR K2 XOR K3 XOR K4
【0162】
したがって、リング408内のすべての実パーティ102a~102dは、「増加した」リング408または仮想パーティ401aを含むリング408の5つすべてのプリカーサキーのXORである同じグループキーを有する。
【0163】
さらに、オプションとして、グループ鍵のセキュリティを向上させ、当事者102a~102dのそれぞれによって実行される対応するグループ鍵計算ステップd)に先立って、グループの主催者が知らないうちに未知の関係者がリング408に追加され得るリスクを軽減するために、グループ鍵作成/形成会議および/または通信システム400は、当事者グループの組織当事者102aまたは外部アクター(例えば、仲介者104とは異なる第三者)を含むようにさらに修正および構成され得る。ワンタイムパッド(OTP)キー、KOTPを作成し、及び/又は、仲介者104を除くリング408内の他のすべての当事者102b~102d(例えば、主催当事者が当事者102aである場合)、又は仲介者104を除くリング408内のすべての当事者102a~102d(関係者のグループおよび仲介者104とは異なる外部関係者である場合)に送信する。OTPキーKOTPは、各当事者によって生成されたグループキーKGを保護するためにさらに使用できる。したがって、グループ内のパーティ102a~102dのそれぞれが、主催者(例えば、グループ内の別のパーティ)および/または外部パーティからOTPキー、KOTPを受信すると、以下に基づいてOTPキー、KOTPを0<=p<=N-1のグループキー計算KGの各パーティが含むことができる。
・パーティ0のパーティ102aは次を計算する。
Kg=X0 XOR KOXOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
・パーティ1のパーティ102bは次を計算する。
KG=X1 XOR K1 XOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
・パーティ2のパーティ102cは次を計算する。
Kg=X2 XOR K2 XOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
・パーティ3のパーティ102dは次を計算する。
KG=X3 XOR K3 XOR Kotp=K0 XOR K1 XOR K2 XOR K3 XOR K4 XOR Kotp
【0164】
したがって、リング408内のすべての実パーティ102a~102dは、「増加した」リング408、または仮想パーティ401aとOTPキーを含むリング408の5つすべてのプリカーサキーのXORである同じグループキーを有する。これにより、すべての当事者102a~102dに対して同一である安全なグループ鍵KGが形成され、その後アプリケーションの要求に応じて当事者102a~102dのグループの各当事者によってグループ鍵として使用され得る。
【0165】
図1aから
図4を参照して上で説明したように、および/またはここで説明するように、リング内の当事者グループの各当事者間での暗号鍵または前駆体鍵の共有および/またはネゴシエーションは、任意の適切なタイプの共有、キー交換、および/またはネゴシエーションタイプのプロトコルまたは受信者を使用することができる。上記で説明するように、各当事者は、リング内の隣接する当事者と前駆暗号キーを共有、確立、またはネゴシエートすることができます。したがって、各当事者は、第1の前駆暗号鍵、すなわち、順序付けられたリング内の前の隣接当事者によって各当事者に対して共有/ネゴシエートまたは交換された暗号鍵と、第2の前駆暗号鍵、すなわち、共有/ネゴシエーションまたは交換された暗号鍵を有する。順序付けられたリング内の次に隣接するパーティによって、各パーティに送信されます。2つの隣接する当事者が同じ暗号鍵を共有または確立/ネゴシエーションできるようにするために、いかなる適切なまたは安全な鍵共有、確立またはネゴシエーションのプロトコルまたは手順が実行される。キー共有、確立、またはネゴシエーションのプロトコルは、共有/確立またはネゴシエートされるプリカーサ暗号キーが同じ形式、同様のフォーマットおよび/またはミーティングキーと組み合わせてグループキーを形成するために数学的に互換性があることを保証するというタイプであることを保証して、リング内のすべての当事者で同じにすることができる。使用されるキー共有、確立、またはネゴシエーションプロトコルは、制限なく、例えばBB84プロトコルに基づくことが考えられる。任意の適切な古典的な鍵交換/共有/ネゴシエーションプロトコル、例えば、共有鍵をネゴシエートするためのトランスポート層セキュリティ(TLS)/ディフィーヘルマン(dH)プロトコルなどである。または、二者間でワンタイムパッド(OTP)またはランダムキーを一方から他方に渡す安全なチャネルを確立する。また二者間で共有鍵を確立および/または交換するために使用されるその他の量子鍵交換プロトコルである。第三者、仲介者、クラウドサービスなどを介して共有キーを交渉または確立する。ここで、共有鍵は、量子鍵分散鍵に基づくことが予想され、鍵確立プロトコルが量子分散鍵を使用して当事者間で共有鍵を確立する量子安全鍵確立プロトコルであるため、量子安全鍵または量子安全鍵とすることが可能である。これらの組み合わせ、変形等も可能である。本明細書では、リング内の各当事者が、リング内の以前の隣接当事者と第1の共有プリカーサ鍵を安全に共有、ネゴシエートまたは交換および確立し、各パーティのリング上で第2の共有プリカーサ鍵をリング内の次に隣接するパーティと、共有、ネゴシエーションまたは交換および確立していると仮定する。
【0166】
例えば、BB84QKDプロトコルは、光子偏光ベースを使用して、第1者と第2者の当事者間で共有キーを交換するために使用できる情報を送信するためによく知られたQKDプロトコルです。これは、次のような当事者グループ内の各当事者に適用される場合があります。例えば、前記各当事者と次に隣接する当事者は、BB84プロトコルの使用に基づいてキーをネゴシエートするか、共有キーを交換する。bb84QKDプロトコルは、共役光子偏光基底の少なくとも2対を含む塩基のセット(例えば、直線偏光子基底(例えば、制限なしの垂直(0°)偏光および水平(90°)偏光)を含む塩基のセット)や対角光子基準(例えば45°および135°偏光)または、左利きと右利きの循環基準などを使用する。BB84プロトコルでは、QKDは送信側デバイス(またはサードパーティ/仲介者)間で実行される。(それは例えば、アリスと呼ばれることが多い)また第一当事者(例えば、ボブと呼ばれることが多い)、および第2当事者(例えば、キャロルと呼ばれることが多い)。BB84プロトコルは、第一者と送信者デバイス、および第二者と送信者デバイスの間で量子通信チャネルを使用した鍵交換プロトコルであり、第一者と第二者が同じ暗号鍵を交換して共有する。送信側デバイスと第一者は、量子情報(量子状態など)の送信を許可する量子通信チャネルによって接続される。同様に、送信側デバイスと第2者は、量子情報(量子状態など)の送信を許可する別の量子通信チャネルによって接続される。各量子チャネルは、制限なしで、例えば、光ファイバーまたは光学的自由空間となることが予想される。さらに、送信側デバイスと第一者(および送信者デバイスと第二者)はまた、非量子チャネルまたはパブリッククラシックチャネル、制限なく、例えば光ファイバーチャネル、電気通信チャネル、無線チャネル、放送無線、インターネット、および/または他の無線または有線通信チャネルなどでも通信する。同様に、鍵をネゴシエートする際、第1当事者と第2当事者は、第1当事者と第2当事者の間で最終的な共有暗号鍵を交換するために、非量子チャネルまたは古典チャネルを介して通信できる。シェンカイ・リャオなど。「Satellite-to-gRound quantum Key distRibution」、NatuRe volume 549、43-47ページ、2017年9月7日では、鍵の配布にBB84プロトコルを使用する衛星ベースのQKDシステムについて説明している。ここでは、衛星自由空間光量子チャネルは、以下を使用して生成されます。IVlicius衛星(アリスなど)から光地上受信局(OGR)(ボブやキャロルなど)に光ビームを送信する口径300mmのカセグレン望遠鏡。それは、衛星自由空間光量子チャネルを介してQKD光子を受信するためにRitcheRy chRetien望遠鏡を使用する。BB84プロトコルでは、第1当事者と第2当事者の間で鍵の交換/確立を実行するために使用される第三者または仲介者が信頼されることが必要とされる。
【0167】
別の例では、2019年11月8日に出願され、参照により本書に組み込まれる「量子鍵配布プロトコル」と題する英国特許出願第1916311.2号に記載されているbb84プロトコルの修正バージョン、および/または任意のタイプのQKDプロトコルを使用して交換することができる。および/または量子暗号化キーを送信し、一対の当事者間で量子安全暗号キーを共有することができる。BB84プロトコルの修正バージョンは、送信側デバイス(例えば、サードパーティデバイス/仲介者)などが、第1当事者と第2当事者の間で最終的に合意された量子安全鍵についての知識を持たないように構成または実行され得る。これは、送信側デバイスが要求する信頼レベルが低下するか信頼できない可能性があるが、そこでは第一者と第二者間の共有キーは第一者と第二者のみが知っていることを意味する。BB84プロトコルの修正版では、送信側デバイス(例えば、衛星または地上光ファイバデバイス)は、第1の量子チャネル(例えば、光チャネル)を介して、第1の当事者に送信された送信基底とともに、第1のQKD鍵を第1の当事者に送信することができる。第1当事者(例:OGRまたはエンドポイントデバイス)を第1古典チャネルで受信する場合、第1当事者は、第1量子チャネルを介してQKD鍵を受信するために第1当事者が使用した受信基底を明らかにしない。これは、送信側デバイスが最初のQKDキーの受信ビットの約50%しか知らないことを意味する。このプロセスは、2番目のQKDキーの2番目のパーティと送信側デバイスで繰り返される。すなわち、送信側デバイスは、第2の古典チャネルを介して第2の当事者に送信される送信基底とともに、第2の量子チャネル(例えば、光チャネル)を介して第2の当事者に第2のQKD鍵を送信することができ、第2の当事者は、第2の量子チャンネルを介して第2のQKDキーを受信するために第2の当事者により使用された受信基準を明らかにしない。これは、送信側デバイスが第2のQKDキーの受信ビットの約50%しか知らないことを意味する。その後、送信側デバイスは1番目と2番目のQKDキーをXOR演算し、これらを2番目の当事者、または両方の当事者にも送信する。第1者と第2者は、正しく測定されたベースを検出するために通信し、送信された元のビットの約25%の新しい生キーを生成する。そこでその後、エラー訂正などを実行して、第1当事者と第2当事者の間で交渉される前駆キーとなる最終的な共有キーを生成する。
【0168】
代替的または追加的に、第1および第2のパーティのデバイスのそれぞれは、QKD鍵の正しく受信されたシンボルであるとみなされるものの指示のみを送信する。次に、送信側デバイスは、これらの正しく受信されたシンボルを送信するために使用される実際の基礎を、対応する第1当事者と第2当事者のそれぞれに送信する。次に、送信側デバイスは2つのQKDキーのXORを計算し、XORされたQKDキーの正しく受信されたシンボルを第2パーティに送信する。第1者と第2者は、正しく測定されたベースを検出するために通信し、送信された元のビットの約25%の新しい生キーを生成する。その後、そこでエラー訂正などを実行して、第1当事者と第2当事者の間で交渉される、前駆キーとなる最終的な共有キーを生成する。
【0169】
別の例として、bb84プロトコルを修正する上記のQKDプロトコル例は、N≧1の場合、各シンボルが2Nのバイナリビットを表す場合のものであり得る。各シンボルがn=1のバイナリビットを表す場合、このQKDプロトコルのステップは以下に基づくと考えられる。送信側デバイスは、第1の量子チャネルを介して第1の秘密ビット列(例:QKDキー)を第1の量子チャネルに送信するように構成されている。パーティ、第1の秘密ビット列の各ビットは、基底のセットからランダムに選択された基底状態によって変調される。送信側デバイスはまた、第1の古典通信チャネルを介して第1のパーティに第1の基底セットを送信し、第1の基底セットは、第1の秘密ビット列の各ビットを変調するために使用されるランダムに選択された基底を表すデータを含む。送信側デバイスはまた、第2の秘密ビット列(例えば、第2のQKD鍵)を、第2の量子チャネルを介して第2の当事者に送信することができ、第2の秘密ビット列の各ビットは、基底のセットからランダムに選択された基底状態によって変調され、送信側デバイスはまた、第2の古典通信チャネルを介して第2の当事者に第2の基底セットを送信し、第2の基底セットは、第2の秘密ビット列の各ビットを変調するために使用されるランダムに選択された基底を表すデータを含む。次に、送信側デバイスは、第1および第2の秘密ビット列の結合に基づいて第3のビット列を生成し、第2の通信チャネルを介して第3のビット列を第2のデバイスに送信する。
【0170】
第1の当事者と第2の当事者は、量子鍵交換を実行して、以下に基づいて共有鍵を確立する。第1の当事者は、受信した第1の基底セットを使用して、第1当事者によって正常に受信された第1の量子チャンネルを介して送信された第1の秘密ビット列のビットを含む第1の受信した秘密ビットのセットを決定する。第2の当事者は、受信した第2の基底セットを使用して、第2の当事者によって正常に受信された、第2の量子チャネルを介して送信された第2の秘密ビット列のビットを含む秘密ビットの第2の受信セットを決定する。第2の当事者は、受信した秘密ビットの第2のセットと受信した第3のビット列との組み合わせに基づいてビットの第4のセットを生成し、ビットの第4のセットの1つ以上のビットは、第1のビット列の1つ以上のビットに対応し、第1の当事者と第2の当事者は、第1の当事者で受信した第1の秘密ビットのセットと第2の当事者で受信した第4のビットのセットに基づいて、その間で第3の古典的通信チャネル上でビット・シフティング操作などを実行し、第1者と第2者で共有暗号キーを形成するための共通の選別されたビットのセットを生成する。
【0171】
このQKDプロトコルは、送信側デバイスと第1当事者および第2当事者間の対話を最小限に抑える。つまり、送信側デバイスは、第1当事者と第2当事者が有効に受信した秘密シンボルに関連する情報をほとんど受信しない。つまり、これにより、送信側デバイスと情報を共有するBB84などのQKDプロトコルよりも高いレベルのセキュリティが得られる可能性がある。しかしながら、このトレードオフは通常、信頼性を犠牲にし、および/またはふるい分けされたシンボルの共通セットを生成し、その後ふるいにかけられたシンボルの共通セットを生成して暗号キーを形成するために使用できる実行可能なシンボルの数の減少を犠牲にする。QKDプロトコルの信頼性および/または有効に受信された実行可能なシンボルは、第1当事者と第2当事者が、送信側デバイスを使用して、第1および第2パーティで正常に受信したシンボル(例えば、正常に受信されたシンボル位置)に関連する「少量の」情報を共有することで、安全であることが証明され、QKDプロトコルのセキュリティに影響を与えずにさらに改善される可能性がある。
【0172】
別の例である安全な鍵の共有、確立または交渉プロトコルまたは手順では、各当事者は、安全なクラウドプラットフォーム/サービスを使用して、リング内の隣接する当事者と前駆暗号鍵を共有、確立または交渉することができる。例示的な安全な鍵共有、確立または交渉プロトコルまたは手順は、2つの隣接する当事者または当事者のペアが同じ暗号鍵を共有または確立/交渉することを保証するために実行され得る。安全なキーの共有、確立、またはネゴシエーションプロトコルは、通信ネットワーク内の1つ以上のキーサービングノード(KNode)と通信する第1者と第2者の間で同じ暗号キーまたはキーを確立するために使用される。第1当事者と第2当事者との間で確立される鍵、または鍵確立プロトコルから得られる結果は、本書では互換的に前駆鍵と呼ばれ、セキュア鍵確立プロトコル例の最後に第1当事者と第2当事者によって導出される。第1および第2パーティのそれぞれは、対応する第1および第2の鍵提供ノードと通信しており、ここで各鍵提供ノードは、同じ分散鍵のセット(鍵のセットとも呼ばれる)にアクセスするが、第1当事者と第2当事者にはアクセスできない。鍵の各セットは、安全な方法で第1当事者と第2当事者の各鍵提供ノードに確立または配布される。例えば、鍵の各セットは、制限なく例えば鍵のセットを形成するために、古典的な鍵配布プロトコルを使用することに基づいて配布および/または形成され得る。量子鍵配布プロトコルを使用して、量子分散鍵を構成する鍵セットを形成する。および/または、あらゆる安全な鍵確立プロトコルの他のタイプは鍵のセットをKNodeに提供するのに適している。安全な鍵確立プロトコルで使用して、信頼できない方法で第1の当事者と第2の当事者の間で鍵(たとえば、確立された鍵または最終鍵)を確立する。
【0173】
一例として、通信ネットワークは、制限なしで、例えば、ネットワーク内の通信チャネルが古典的な暗号化/暗号法または非量子を使用して保護される古典的な通信ネットワーク(例えば、クラウドネットワーク/インフラストラクチャなど)に基づくと考えられる。それは、古典的な安全な通信ネットワークまたは古典的な安全なネットワーク(安全なネットワークとも呼ばれます)を形成する。例えば、1つまたは複数のキー提供ノード(KNode)は、クラシックセキュアネットワークの一部であり、古典的な安全な通信チャネルを介して相互に通信する。安全な鍵確立プロトコルで使用される鍵のセットは、さまざまな鍵配布プロトコルのうちの1つまたは複数を使用して、古典的な安全なネットワーク(例えば、1つまたは複数のHSMまたは安全なサーバーなどに保管される)に配布されて、鍵のセットを形成することができる。したがって、KNodeは、安全なネットワーク内の安全なチャネルを介してキーのセットに安全にアクセスできる。KNodeおよび/または他のコンピューティングデバイス、ノードおよび/またはセキュアネットワークのコンポーネント間の各古典的セキュア通信チャネルは、制限なしで、例えば、鍵セットからの鍵、派生鍵、または手動のキー入力プロセスなどから派生した分散キーから暗号化された通信チャネルに基づくことが考えられる。第1および第2のパーティのそれぞれは、セキュアキー確立プロトコル中にそれぞれのKノードとセットアップされた古典的で安全な通信チャネルを有すると考えられ、これらの古典的で安全な通信チャネルは、暗号化された通信チャネルを含みまたは表示することができる。そのチャンネルは、制限なく、例えばキーのセットのキー、キーのセットから派生したキー、さらには手動のキー入力プロセスから派生した分散キー、それぞれのKNodeと当事者の間で交換されるキーによって暗号化される。および/またはKNodeと当事者の間の通信チャネルを保護するその他の方法で、同様の方法および/またはアプリケーションの要求に応じて暗号化される。
【0174】
配布された鍵(または鍵の集合)の集合は2つ以上の、古典的セキュリティの確立されたネットワーク上のサーバー(例:1つ以上のHSMやセキュアサーバーなどに保存することができる。各サーバーは互いに別個または全く異なる地理上の位置に置かれ、セキュアな鍵確立プロトコルによって、各サーバーに配送鍵の集合をセキュアに配布する。当事者1と2の間では、異なる地理上の位置(例:異なるサーバー/Knode)からの鍵を受け取るためのセキュアな鍵確立プロトコルを用いることができるが、地理的位置(例:サーバー/Knode)へセキュアな方法で届けられた配布鍵に基づいたものでなければならない。
【0175】
或いは、または更に、通信ネットワークは、例えば量子セキュリティのあるネットワーク(例:量子クラウド)及び/または古典的通信ネットワークでも良く、そこに制限は無い。例えば、もし1つ以上の鍵提供ノード(KNode)が量子セキュリティのあるネットワークにあるならば、それらは互いに量子セキュリティのある各通信チャネルを通して通信を行うことができる。鍵集合は量子に対してセキュアなネットワークで量子鍵配送プロトコルを使って量子配送鍵を形成することができる。従ってKNodeは、量子配送された鍵集合である鍵集合に対して量子セキュリティのあるアクセスが可能である。KNode及び/または当事者の間の、量子セキュリティのある各チャネルは量子鍵配送または手動の鍵補完プロセスや類似のものから派生された鍵によって暗号化された通信チャネルとなるまたは構成する。
【0176】
しかしながら、量子セキュリティを確かなものにするために、量子配送鍵を量子配送鍵集合または1つ以上の、量子配送された鍵集合からの量子配送鍵からセキュアに派生した鍵及び/または1つ以上の量子配送された鍵及び類似のものまたは量子セキュリティのある鍵補完プロセスなど、どんな量子セキュリティのある方法でも派生させることができる。量子配送鍵集合は、量子セキュリティのあるネットワーク(例:OGR/地上波トランシーバ及び類似のもの)内の2つ以上の量子サーバーに保存することが可能で、各量子サーバーはもう一方のサーバーとは別個または全く異なる地理上の位置に置かれ、そこでは量子鍵配送システムが量子配送された鍵の集合を各量子サーバーへ配送する。当事者1と2の間ではセキュアな鍵確立のプロトコルを使って異なる地理上の位置(例:異なる量子サーバー/Knode)に在るがその地理上の位置へ量子的に安全な方法(例:光子的)で配送された鍵に基づいた同じ鍵を受け取ることができる。
【0177】
例えば、量子的に配送された鍵は、異なる地理上の位置にある量子サーバーへ、量子鍵配送システム/プロトコルを用いて配送することができる。このシステム/プロトコルは例えば、衛星と2つ以上の光子地上レシーバーの間を光子/衛星リンクで繋いだ衛星量子鍵配送システムや;2つ以上の異なる地理上の位置にある地上波トランシーバを光ファイバーチャネルで繋いだ地上波量子鍵配送システムや;それらを組合わせたものや;ここで説明したようなもの及び類似のものなどアプリケーションの要求に従ったもので良く、そこに制限は無い。
【0178】
しかしながら、鍵ノード1及び2の各々で使われる通信ネットワークまたは配送された鍵(鍵集合)の如何に依らず、セキュアな鍵確立プロセス/プロトコルは、当事者1が2に対して(a)当事者2の識別子(ID)(例:ID_R)や;当事者2が合意しようとしているKNodeのID(例:KID_R)や;当事者2の生成する最初のノンス(例:N_R)を要求する以下の手順に基づいている。当事者2は
(a)生成された最初のノンス(例:N_R)や;(b)当事者2のID(例:ID_R);及びそのKNodeのID(例:KID_R)を現わすデータで応答する。当事者1は2番目のノンス(例:N_1)を生成し、当事者2の使ったKNodeとは別のKNodeからの中間2箇所存在鍵(例:Int_Bilocation_Key)を要求する。そこでの要求には(a)当事者2のID(例:ID_R)や;(b)当事者2のKNodeのID(例:KID_R);及び(c)第1及び第2ノンスから派生された第3のノンスを現わすデータを含むかそれらを現わすデータを渡す。第3ノンスは第1及び第2ノンスに基づく組み合わせまたは関数(例:第1及び第2ノンスにXOR型の演算を行ったもの、則ちバイナリ符号を使う場合はN_IR=N_R XOR N_1)に基づくことができる。
【0179】
当事者1の使うKNode(則ち第1鍵ノード)は中間2箇所存在鍵を、中間2箇所存在鍵の要求に基づいて計算する。この例では、第1鍵ノードには配送鍵(または鍵集合)集合が含まれ、当事者2の使うKNode(例:第2鍵ノード)の配送鍵集合と同じである。例えば、セキュアなネットワークが量子ネットワークの場合、配送された鍵の集合は量子配送鍵の集合である。従って、第1鍵ノードは当事者1から、中間2箇所存在鍵を生成する要求を受ける。そこでの要求には(a)当事者2のID(ID_R)や;(b)第2鍵ノードまたは当事者2の使うKNodeのID(KID_R)や;(c)当事者2の生成した第1のランダムノンス(例:N_R)と当事者1の生成した第2のランダムノンスから派生した第3のノンス(例:N_IR)が含まれる。第3ノンスは第1及び第2ノンスに基づく組み合わせまたは関数(例:第1及び第2ノンスにXOR型の演算を行ったもの、則ちバイナリ符号を使う場合はN_IR=N_R XOR N_1)に基づくことができる。中間2箇所存在鍵要求を受け取ったら、第1鍵ノードは配送鍵(または鍵集合)の集合から、少なくもID_R、KID_R、当事者1のID(ID_I)、第1鍵ノードまたはKNodeのIDに基づく鍵選択アルゴリズム/関数を使って鍵を選択する。当事者1のID_Iは当事者1を第1鍵ノードで認証する間に受信または派生することができる。鍵選択アルゴリズム/関数はハッシュ関数に基づくことができる。例えば、セキュアなネットワークが量子セキュリティのあるネットワークである場合、選択された鍵は量子配送鍵の集合から選択され、それもまた量子配送鍵である。鍵集合から選択鍵を選択した後、第1鍵ノードは、Int_Bilocation_Keyを派生/生成するための第1の乱数アンチリプレイ・ノンスを生成する。そして、第1鍵ノードはInt_Bilocation_Keyを、選択された鍵、第1アンチリプレイ・ノンス、及び少なくもID_R、KID_R、ID_I、KID_I及び受信した第3ノンスに基づくことができる。そして第1鍵ノードは、Int_Bilocation_Key及び第1アンチリプレイ・ノンス(例:プロセス230のステップ236の第4ノンス)を当事者1へ、当事者1及び当事者2が両者間の前駆鍵を確立/合意するために送る。
【0180】
中間2箇所存在鍵の要求に応じて、当事者1には当事者1の使用したKNode(則ち第1鍵ノード)から以下が返されるかまたはそれを受信する:KNode、則ち第1鍵ノードから作成されるのに使われた中間2箇所存在鍵(例:Int_Bilocation_Key)及び第4ノンス(例:第1アンチリプレイ・ノンス)。当事者1は以下を現わすデータを当事者2へ送るかまたは渡す:(a)第2及び第4ノンス(例:N_1及び第1アンチリプレイ・ノンス);(b)当事者1のID(ID_I);及び(c)当事者1の使うKNodeのID(例:KID_I)。当事者2は、受信した第2ノンス及び生成した第1ノンス(例:N_IR=N_1 XOR N_R)から第3ノンス(例:N_IR)を生成する。
【0181】
当事者2は、そのKNodeからの2箇所存在鍵を要求し、以下を現わすデータを当事者2の使うKNodeへ送信するかまたは渡す:(a)第3及び第4ノンスと;(b)ID_Iと;(c)KID_I。このKNodeは2箇所存在鍵を生成するように設定されている。
【0182】
当事者2の使うKNode、則ち第2鍵ノードは、当事者2から2箇所存在鍵生成の要求を受け取り次第、2箇所存在鍵を計算する。そこでの要求には以下を現わすデータを含んでいる:(a)当事者1のID(ID_I);(b)当事者1の使うKNodeのID(KID_I);(c)当事者2の発生する第1ランダムノンス(例:N_R)及び当事者1の発生する第2ランダムノンス(例:N_1)から派生する第3ノンス(例:N_IR)。
第3ノンスは第1ノンス及び第2ノンスの組み合わせまたは関数(例:第1及び第2ノンスを用いたXOR型の演算;則ち、バイナリ符号が使われる場合はN_IR=N_RXORN_1);及び、第1鍵ノードから当事者1に送られる第1アンチリプレイ・ノンスに基づくことができる。
【0183】
第2鍵ノード、則ち当事者2の使うKNodeは次に、少なくもID_I,KID_I、当事者2のID(ID_R)、第2鍵ノード(KID_R)または当事者2の使うKNode、及び第3ノンス(例:N_IR)に基づいたID鍵選択アルゴリズム/関数を使って配送鍵集合から鍵を選択する。但し当事者2のID_Rは、当事者2を第2鍵ノードで認証するときに事前に第2鍵ノードによって受信または派生されることができる。第2鍵ノードの使う鍵選択アルゴリズム/関数は、第1鍵ノードの使う鍵選択アルゴリズム/関数と同じである。鍵選択アルゴリズム/関数はハッシュ関数に基づくものでも良い。これは、第1及び第2鍵ノードが同じ配送鍵集合を持っており、第2鍵ノードへ、鍵選択アルゴリズム/関数へ同じ入力を提供できるようにする入力の集合があるならば、第2鍵ノードによって選択される鍵が第1鍵ノードによって選択される鍵と同じである、ということである。
【0184】
第2鍵ノードは、2箇所存在鍵を派生/生成するときに使う、乱数の受信者アンチリプレイ・ノンスを生成する。第2鍵ノードは、まず選択された鍵及び、少なくもID_I、KID_I,当事者2のID(ID_R)、第2鍵ノードのID(KID_R),第3ノンス(例:N_IR),及び受信した第1アンチリプレイ・ノンスに基づいたInt_Bilocation_Keyを生成することによって2箇所存在鍵を計算する。例えば、Int_Bilocation_Keyは少なくも選択された鍵と第1アンチリプレイ・ノンスのハッシュ、及び少なくもID_R、KID_R,ID_I,KID_I、及び受信された第3ノンスに基づくことができる。次に、第2鍵ノードは、Int_Bilocation_Keyと第2アンチリプレイ・ノンスと結合させたものに基づいて2箇所存在鍵を生成する。例えば、これはInt_Bilocation_Keyと第2アンチリプレイ・ノンスのハッシュに基づいたものとすることができる。第2鍵ノードは2箇所存在鍵と第2アンチリプレイ・ノンスまたは第5ノンスを、当事者2と当事者1が前駆暗号鍵を合意・確立するために当事者2へ送ることができる。
【0185】
当事者2は、KNodeから作成され当事者2によって使用される2箇所存在鍵と第5ノンス(例:第2アンチリプレイ・ノンス)の送付を受ける。当事者2は第5ノンス(例:第2アンチリプレイ・ノンス)を返信で当事者1に送るかまたは渡す。当事者1は、第5ノンス(例:第2アンチリプレイ・ノンス)と中間2箇所孫座鍵を結合して共有2箇所存在鍵を形成する。KNodeから当事者2へ送られ、当事者2の使用する2箇所存在鍵は当事者1がKNodeから受信した中間2箇所存在鍵を使って計算し当事者2によって使われ、そのために両者で共有される2箇所存在鍵と同じものである。従って、当事者1及び2の各々における2箇所存在鍵は共有2箇所存在鍵である。
【0186】
最後に、当事者1と2は、(a)2箇所存在鍵と合意されたノンス(例:第3ノンス。これは第1と第2ノンスの組み合わせである)を結合して前駆鍵を形成する;または(b)チャレンジ-レスポンスプロトコルおw使って暗号前駆鍵を形成するという合意に基づいて前駆鍵を生成することができる。従って、このセキュアな鍵の例は、グループの各当事者が環の中で前の隣接する当事者と次の当事者の間で前駆鍵を共有または合意/確立するのに使うことができる。
【0187】
図5aは、本発明の観点に従ってグループ鍵形成/作成のプロセスを実装及び/または実行するのに使われる計算システム500の例の模式図である。計算システム500は、システム、装置、当事者、中間メソッド、グループ鍵形成/作成プロセス、当事者グループ鍵形成/作成プロセス、中間グループ鍵形成/作成プロセス、及び/またはず1aから4に記述されたユースケース、ここに述べる、及び/またはアプリケーションの要求に沿って行われるそれらの組み合わせ、改造の1つ以上の観点を実装するのに使うことができる。計算システム500には計算デバイスまたは装置502(例:QSサーバー、第1または第2鍵ノード、第1及び/または第2デバイス)が含まれる。計算デバイスまたは装置502には1つ以上のプロセッサユニット504、メモリユニット506、及び、1つ以上のプロセッサユニット504がメモリユニット506につながっている通信インターフェース508、通信インターフェース508が含まれる。通信インターフェース508は、当事者間のグループ鍵を、ここに説明するように、本発明またはアプリケーションの要求に従って組み合わせまたは改造されたものに従って
図1aから4を参照しつつ説明する通り、グループ鍵形成/作成システム、装置(例:当事者、中間物、及び類似のもの(示されてはいない))、プロセスを通して確立するために、グループ鍵形成/作成システム、装置、プロセス計算デバイスまたは装置502を1つ以上の計算デバイス及び/または装置(例:当事者、中間及び類似のもの(示してはいない))と接続することができる。メモリユニット506は、計算デバイス502を操作するためのオペレーティングシステム506a、及びコンピュータプログラム命令、実行コード、コード及び/または機能及び/またはグループ鍵形成/作成プロセス、本発明、システム/プラットフォーム、それらの組み合わせ、改造、及び/またはここに
図1aから4の最低1つ以上を参照しながら説明されたことに従って、グループの中の全ての当事者間で共通となるグループ鍵を形成/作成するプロセスの1つ以上の部分に関連した1つ以上の当事者、1つ以上の中間物、1つ以上のメソッド及び/またはプロセスまたはプロトコルの1つ以上の部分、1つ以上のプログラム命令、コード及び/またはコンポーネントなどを保存するためのデータストレージ506bなどがあるが、上記は例示のためであり、これらに限定されるものでは無い。
【0188】
図5bは、当事者N人のグループで使うためのグループ鍵形成/作成プロトコル及び/またはプロセス512を促進及び/または実装するためのもう一つのグループ鍵形成/作成システム520模式図である。ここでN人の当事者514-518は、対応する当事者グループ鍵形成プロセスを実行するように設定されており、中間の520は、相互の/対応する中間グループ鍵形成のプロセスを実行するように設定されており、このプロセスはN人の当事者514-SI8の全員に対して同じグループ鍵を形成/作成するものである。
中間体520は、当事者512-518及び中間者520の間で交換された情報からグループ鍵を計算することはできない。これは各当事者512-518のための中間鍵を計算するのみである。各当事者512-518は、それらの者に対応する中間値を自分の前駆鍵とのXOR演算に基づいた同じグループ鍵を計算する。グループ鍵の形成/作成システム520には、少なくもN人の当事者512-518及び中間物520が入って居り演算及び/または対応するステップ及び/またはグループ鍵形成/作成プロセスを、本発明に従って、グループの中のN人の当事者514-518全員に共通のグループ鍵を、上記の
図1a,2,3,4の1つ以上のシステム100、200、300、及び/または400を示しながら説明したように、1つ以上のグループ鍵形成/作成のプロセス/メソッド、当事者グループ鍵形成/作成のシステム/メソッド及び/または
図1aから4の中間グループ鍵形成/作成のプロセス/メソッド110、120,140、それらの組み合わせ、改造及び/または
図1aから4を示しながら説明されたもの、及び/またはアプリケーションの要求に従ったものを機能実装/実行する複数の計算デバイスまたは装置502を含むことができる。
【0189】
上記に説明した具現化で、サーバーは単一のサーバーから成るものでも、サーバーのネットワークから成る者でもよい。或る例では、サーバーの機能は、ワールドワイドに分散したサーバーネットワークなど地理的地域を越えて配備されたサーバーネットワークから提供することができる。また、ユーザーは、その位置に基づいて、サーバーネットワークのうち1つに接続することができる。
【0190】
上記記述では、説明を明確にするため、本発明の実装を1ユーザーに限る。実際には複数のユーザーで、そしておそらく大きな数のユーザー間で同時に共有することができることは理解できると思われる。
【0191】
上記に説明する実装は完全に自動化されている。一部の例ではシステムのユーザーまたはオペレータがメソッドのステップを実行するよう手動で命令することも可能である。
【0192】
説明された本発明の実装では、システムは計算及び/または電子デバイスの任意の形式として実装することができる。そのようなデバイスは1つ以上のプロセッサから成り、それは、ルーティング情報を収集し記録する目的でデバイスの操作を制御するために、コンピュータに実行可能な命令を処理するためのマイクロプロセッサでもコントローラでも、その他どんな形式のプロセッサから成るものでも良い。一部の例では、例えば、チップアーキテクチャ上のシステムが使われ、プロセッサには1つ以上の、メソッドの一部を(ソフトウェアやファームウェアでなく)ハードウェアに実装する固定関数ブロック(アクセレレータとも呼ばれる)を含むことができる。アプリケーションソフトがデバイス上で実行できるために、オペレーティングシステムやその他のプラットフォームソフトウェアを構成するプラットフォームソフトウェアをコンピューティングベースのデバイスに供給することができる。
【0193】
ここで説明する様々な機能はハードウェア、ソフトウェア、またはそれらの任意の組み合わせに実装することができる。ソフトウェアに実装した場合は、機能は、1つ以上の命令またはコードとして、コンピュータで読める媒体上に保存、または転送することができる。コンピュータで読めるメディアには、例えば、コンピュータで読める保存メディアが含まれる。コンピュータで読める保存メディアには例えば、コンピュータで読める命令やデータ構造、プログラムモジュールやその他のデータ保存するための任意の方法で実装された、揮発性または不揮発性、リムーバブルまたは非リムーバブル保存メディアを含むことができる。コンピュータで読める保存メディアは、コンピュータのアクセスできる任意の利用可能なメディアでそのようなコンピュータで読める保存メディアにはRAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリデバイス、CD-ROMまたはその他の光ディスクストレージ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、またはその他の任意のメディア、或いはその他の、求めるプログラムコードを命令又はデータ構造の形で運搬または保存することができてコンピュータにアクセスできるものが可能である。上記に述べたものは例示のためでありこれらに限定されるものでは無い。ここで使われる「ディスク」にはCD、レーザーディスク、光ディスク、DVD、フロッピーディスク、及びブルーレイディスクが含まれる。更に、コンピュータで読めるストレージメディアの対象には、拡散されたシグナルは含まれない。コンピュータで読めるメディアには、コンピュータプログラムを或る場所から別の場所へ移動することを促進するための任意の通信メディアが含まれる。例えば、コネクションは通信メディアである。例えば、もしもソフトウェアがWebサイトやサーバーやその他のリモートソースから同軸ケーブル光ケーブル、ツイストペア線、DSL、または赤外、ラジオ、マイクロウェーブなどの無線技術を用いて転送されるならば、それらはコミュニケーションメディアの定義に含まれる。上記の組み合わせもまたコンピュータで読めるメディアの範疇に含まれる。
【0194】
また、ここに説明する機能は、少なくも部分的には、1つ以上のハードウェアロジックコンポーネントによって実行できる。例えば、使用可能なハードウェアロジックコンポーネントには、FPGA、ASIC、ASSP、SOc、CPLd等が含まれる。
【0195】
単一のシステムの如く記述されてはいるが、計算デバイスが分散システムともなり得ると理解される。従って、例えば、数個のデバイスをネットワーク接続で通信し、集合して計算デバイスとして上記タスクを実行できるのでも良い。
【0196】
ローカルデバイスのように書かれているが、計算デバイスはリモートにあってネットワークまたはその他の通信リンク(例えば通信インターフェースを使って)でアクセスできるものであっても良い。
【0197】
「コンピュータ」という用語はここでは、命令を実行できるだけの処理能力を持った任意のデバイスを指す。技術能力のある者は、そのような処理能力が多数の様々な機器に取り入れられており、従って「コンピュータ」にPc、サーバー、携帯電話、パーソナルデジタル機器、及びその他のデバイスが含まれていることが理解できるであろう。
【0198】
技術能力のある者は、プログラム命令を保存するのに使われるストレージデバイスはネットワーク上に配備できることに気づくであろう。例えば、リモートコンピュータは、ソフトウェアとして描写されたプロセス例を保存することができる。ローカルまたは端末コンピュータは、リモートコンピュータへアクセス可能でソフトウェアの一部または全部をダウンロードしてプログラムを実行できる。また、ローカルコンピュータはソフトウェアの部分部分を必要に応じてローカル顛末及びリモートコンピュータ(またはコンピュータネットワークの一部にダウンロードして実行することができる。技術能力のある者はまた、技術能力のある者の間で知られている従来型の技術を使うことによって、またはソフトウェア命令の全部または一部はDSPやプログラマブルロジックアレイ及びその類似のものなどの専用回路によって実行できることを知っているであろう。
【0199】
上記の利点及び長所は単一の実装に関係する場合もあり、また幾つかの実装に関係する場合もあることが判るであろう。実装は言及された問題の一部または全部、または全部を解決するか或いは上記の利点及び長所の一部を実現するに留まらない。本発明の範囲にはその別形も含まれることを考慮すべきである。
【0200】
項目に対する言及は1つ以上の項目に関係する場合がある。「構成する」という用語はここで、メソッドのステップまたは認識された要素を含めて使われるが、そのようなs轍鮒や要素は排他的なリストを構成するものでは無く、メソッドや装置には追加のステップや要素が含まれることもあり得る。
【0201】
ここで使われるもので、「コンポーネント」及び「システム」という用語は、コンピュータが読めるデータストレージで、コンピュータに実行可能な命令で設定されておりプロセッサで実行された時に何らかの機能が実行されるものを含める。コンピュータで実行可能な命令にはルーチン、関数、及び類似のものを含む。コンポーネントまたはシステムは単一のデバイスに置くことも幾つかのデバイス上に配布することもできるということに注意されたい。
【0202】
更に、ここで使われるように、「典型的な」という用語は「或るものの説明または例示となる」という意味に使われる。
【0203】
更に、詳細な描写または要求「を含む」という用語が使われる限りは、そのような用語は「構成する」という用語も含む。「構成する」とは要求において遷移的な意味に使われる場合にはそのように解釈されるからである。
【0204】
図は典型的なメソッドを説明したものである。メソッドは特定の順番で実行される行為の連続として示されているが、メソッドはその連続の順番に制限されることは無いということを理解し尊重すべきである。例えば、一部の行為はここで述べたのとは違った順番で発生する。また、行為は他の行為と同時進行で起こることもある。更に、ある場合には、ここで述べたメソッドの全てが実装を要求されるわけでは無い。
【0205】
更にまた、ここで述べた行為は、コンピュータで実行可能な命令を構成する可能性があり、それらは1つ以上のプロセッサに実装可能で、及び/またはコンピュータで読めるメディアに保存される。コンピュータで実行可能な命令にはルーチン、サブルーチン、プログラム、実行スレッド、及び/または類似のものが含まれる。更にまた、メソッドの行為の結果はコンピュータで読めるメディアに保存し、表示デバイスや類似の者で表示することができる。
【0206】
ここに述べる、メソッドのステップの順序は典型例であるが、ステップは如何なる適切な順序で行っても良いし、できるならば同時進行で行うこともできる。また、ステップには追加や置換を行うことも可能で、個々のステップはその主体の範囲から逸脱することなしに削除することができる。上記に述べた例の見地は他の例の見地と結合させて、意図した効果を失うことなしにその他の例を形成することもできる。
【0207】
好ましい実装に関する上記の説明は例示の手段によって行われたものであり、技術能力のある者は様々な変更を行うことができるであろう。上記で説明したもののには1つ以上の実装の例が含まれている。勿論、上記の考え方を説明するために上記のデバイスやメソッドについて考え得る全ての変更や改造を説明することは不可能であるが、通常レベルの技術能力のある者は多くの更なる改造や、様々な見方の並べ替えが可能であることを理解するであろう。従って、説明された見方は、要求の範囲内にある全てのそのような変更や改造を含めることを意図したものである。
【国際調査報告】