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

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

▶ ランパート コミュニケーションズ,エルエルシーの特許一覧

特許7565309ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換
<>
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図1
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図2
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図3
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図4
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図5
  • 特許-ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-02
(45)【発行日】2024-10-10
(54)【発明の名称】ユニタリブレイド分割多重化(UBDM)を使用した変調-不可知論的変換
(51)【国際特許分類】
   G09C 1/00 20060101AFI20241003BHJP
【FI】
G09C1/00 610Z
【請求項の数】 59
(21)【出願番号】P 2021578079
(86)(22)【出願日】2020-07-01
(65)【公表番号】
(43)【公表日】2022-09-07
(86)【国際出願番号】 US2020040393
(87)【国際公開番号】W WO2021003204
(87)【国際公開日】2021-01-07
【審査請求日】2023-06-22
(31)【優先権主張番号】16/459,254
(32)【優先日】2019-07-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/916,303
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519169742
【氏名又は名称】ランパート コミュニケーションズ,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ロビンソン,マシュー,ブランドン
【審査官】平井 誠
(56)【参考文献】
【文献】米国特許出願公開第2005/0055546(US,A1)
【文献】米国特許第06157679(US,A)
【文献】米国特許出願公開第2017/0150348(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00- 5/00
H04L 9/00-40/00
H04K 1/00- 3/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
プロセッサを介して、第1のベクトルを受信することと、
前記プロセッサを介して、前記第1のベクトルを分割して、大きさベクトルおよび符号ベクトルを生成することと、
前記プロセッサを介して、変更された大きさベクトルおよび変更された符号ベクトルを含む第2のベクトルを、
前記大きさベクトルに転置を適用して、前記変更された大きさベクトルを生成することと、
アルゴリズムに基づいて、前記符号ベクトルを中間符号ベクトルに転換することと、
複数の非線形層を前記中間符号ベクトルに適用することであって、前記複数の非線形層からの各非線形層が、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも1つを含む、適用することを行って、前記変更された符号ベクトルを生成することと、を行うことにより、生成することと、
前記プロセッサを介して、複数の線形層を前記第2のベクトルに適用して、第3のベクトルを生成することであって、前記第3のベクトルが、前記第1のベクトルの変換されたバージョンである、生成することと、
前記第3のベクトルを表す第1の信号を少なくとも1つの伝送機に、前記少なくとも1つの伝送機から少なくとも1つの受信機への、前記第1のベクトルの変換されたバージョンを表す第2の信号の伝送のために送信することと、を含む、方法。
【請求項2】
前記符号ベクトルを転換することは、初期化ベクトルに基づいている、請求項1に記載の方法。
【請求項3】
前記プロセッサの暗号化動作モードに基づいて、前記アルゴリズムを選択することをさらに含む、請求項1に記載の方法。
【請求項4】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの暗号化動作モードは、暗号ブロック連鎖(CBC)モードである、請求項1に記載の方法。
【請求項5】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの暗号化動作モードは、電子コードブック(ECB)モードである、請求項1に記載の方法。
【請求項6】
前記複数の非線形層における非線形層の数は、前記複数の線形層における線形層の数に等しい、請求項1に記載の方法。
【請求項7】
前記複数の非線形層における非線形層の数は、前記複数の線形層における線形層の数とは異なる、請求項1に記載の方法。
【請求項8】
前記複数の線形層における線形層の数(「L」)、または前記複数の非線形層における非線形層の数(「Q」)のうちの少なくとも一方は、[log(N)]に等しい、請求項1に記載の方法。
【請求項9】
前記複数の非線形層における非線形層の数、または前記複数の線形層における線形層の数のうちの少なくとも一方は、性能制約に基づいている、請求項1に記載の方法。
【請求項10】
前記複数の非線形層における非線形層の数、または前記複数の線形層における線形層の数のうちの少なくとも一方は、セキュリティ制約に基づいている、請求項1に記載の方法。
【請求項11】
前記大きさベクトルに適用される前記転置は、前記第1のベクトルの総電力を減少させない、請求項1に記載の方法。
【請求項12】
方法であって、
プロセッサを介して、複数の複素数を含む入力ベクトルを受信することと、
前記プロセッサを介して、前記入力ベクトルに基づいて、変換されたベクトルを、
前記入力ベクトルに関連付けられた大きさベクトルに転置を適用して、変更された大きさベクトルを生成することと、
アルゴリズムおよび複数の非線形層を、前記入力ベクトルに関連付けられた符号ベクトルに適用して、変更された符号ベクトルを生成することであって、前記変更された大きさベクトルおよび前記変更された符号ベクトルは中間ベクトルを定義する、生成することと、
複数の線形層を前記中間ベクトルに適用して、前記変換されたベクトルを生成することと、を行うことによって、生成することと、
前記変換されたベクトルを表す第1の信号を少なくとも1つの伝送機に、前記少なくとも1つの伝送機から少なくとも1つの受信機への、前記変換されたベクトルを表す第2の信号の伝送のために送信することと、を含む、方法。
【請求項13】
前記複数の非線形層からの各非線形層は、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも1つを含む、請求項12に記載の方法。
【請求項14】
前記プロセッサの暗号化動作モードに基づいて、前記アルゴリズムを選択することをさらに含む、請求項12に記載の方法。
【請求項15】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの暗号化動作モードは、暗号ブロック連鎖(CBC)モードまたは電子コードブック(ECB)モードのうちの一方である、請求項12に記載の方法。
【請求項16】
前記複数の非線形層における非線形層の数は、前記複数の線形層における線形層の数に等しい、請求項12に記載の方法。
【請求項17】
前記複数の非線形層における非線形層の数は、前記複数の線形層における線形層の数とは異なる、請求項12に記載の方法。
【請求項18】
前記複数の線形層における線形層の数(「L」)または前記複数の非線形層における非線形層の数(「Q」)のうちの少なくとも一方は、[log(N)]に等しい、請求項12に記載の方法。
【請求項19】
前記複数の非線形層における非線形層の数、または前記複数の線形層における線形層の数のうちの少なくとも一方は、性能制約またはセキュリティ制約のうちの少なくとも一方に基づいている、請求項12に記載の方法。
【請求項20】
前記大きさベクトルに適用される前記転置は、前記入力ベクトルの総電力を減少させない、請求項12に記載の方法。
【請求項21】
方法であって、
第1の計算装置のプロセッサを介して、データベクトルの複数の複素数セットを識別することと、
前記複数の複素数セットからの各複素数セットに、その複素数セットからの第2の複素数に関連付けられた値に基づいて、その複素数セットからの第1の複素数の位相を変更することを含む非線形変換を適用することにより、変換されたデータベクトルを生成することであって、前記複数の複素数セットからの各複素数セットが、少なくとも2つの複素数を有する、生成することと、
前記変換されたデータベクトルを表す信号を複数の伝送機に、前記複数の伝送機から複数の受信機への、前記変換されたデータベクトルを表す信号の伝送のために送信することと、
前記複数の受信機での前記データベクトルの回復のために、前記複数の受信機への前記非線形変換の伝送のために、前記非線形変換を表す信号を第2の計算装置に送信することと、を含む、方法。
【請求項22】
前記非線形変換は、第1の非線形変換であり、前記変換されたデータベクトルを生成することは、前記変換されたデータベクトルを表す前記信号を前記複数の伝送機に送信する前に、第2の非線形変換を適用することをさらに含む、請求項21に記載の方法。
【請求項23】
前記複数の複素数セットは、第1の複数の複素数セットであり、前記方法は、
前記プロセッサを介して、前記データベクトルの第2の複数の複素数セットを識別することであって、前記第2の複数の複素数セットが、前記第1の複数の複素数セットとは異なる、識別することをさらに含み、
前記変換されたデータベクトルを前記生成することが、前記第2の複数の複素数セットからの各複素数セットに第2の非線形変換を適用することをさらに含む、請求項21に記載の方法。
【請求項24】
前記第2の複数の複素数セットからの各複素数セットに前記非線形変換を適用することは、前記第2の複数の複素数セットからの複素数セットの第1のサブセットに前記非線形変換を適用すること、および前記第2の複数の複素数セットからの複素数セットの第2のサブセットに前記非線形変換を適用することを含み、前記第1のサブセットに前記非線形変換を前記適用すること、および前記第2のサブセットに前記非線形変換を前記適用することは、実質的に並行して実行される、請求項23に記載の方法。
【請求項25】
前記複数の複素数セットからの各複素数セットに前記非線形変換を適用することは、前記複数の複素数セットからの複素数セットの第1のサブセットに前記非線形変換を適用すること、および前記複数の複素数セットからの複素数セットの第2のサブセットに前記非線形変換を適用することを含み、前記第1のサブセットに前記非線形変換を前記適用すること、および前記第2のサブセットに前記非線形変換を前記適用することは、実質的に並行して実行される、請求項21に記載の方法。
【請求項26】
前記変換されたデータベクトルを生成することは、前記非線形変換を適用した後に、線形変換を実行することをさらに含む、請求項21に記載の方法。
【請求項27】
前記変換されたデータベクトルを生成することは、前記非線形変換を適用した後に、離散フーリエ変換を実行することをさらに含む、請求項21に記載の方法。
【請求項28】
前記複数の受信機は、複数のアンテナアレイを含み、前記複数の受信機および前記複数の伝送機は多入力多出力(MIMO)動作を実行するように構成されている、請求項21に記載の方法。
【請求項29】
前記非線形変換は、ノルム保存変換である、請求項21に記載の方法。
【請求項30】
前記複素数セットからの前記第1の複素数の前記位相を変更することは、所定の因子にさらに基づいており、前記方法が、前記複数の受信機での前記データベクトルの回復のために、前記所定の因子を表す信号を、前記複数の受信機に送信することをさらに含む、請求項21に記載の方法。
【請求項31】
システムであって、
複数の受信機と、
複数の伝送機と、
前記複数の伝送機に動作可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサが、
データベクトルの複数の複素数セットを識別することであって、前記複数の複素数セットからの各複素数セットが、少なくとも2つの複素数を有する、識別することと、
前記複数の複素数セットからの各複素数セットに、その複素数セットからの第2の複素数に関連付けられた値に基づいて、その複素数セットからの第1の複素数の位相を変更することを含む非線形変換を適用することにより、変換されたデータベクトルを生成し、前記変換されたデータベクトルを表す信号を複数の伝送機に、前記複数の伝送機から複数の受信機への、前記変換されたデータベクトルを表す信号の伝送のために送信することと、を行うように構成されている、少なくとも1つのプロセッサと、を含む、システム。
【請求項32】
前記非線形変換は、第1の非線形変換であり、前記少なくとも1つのプロセッサが、前記変換されたデータベクトルを表す前記信号を前記複数の伝送機に送信する前に、第2の非線形変換を適用することによって前記変換されたデータベクトルを生成するようにさらに構成されている、請求項31に記載のシステム。
【請求項33】
前記複数の複素数セットは、第1の複数の複素数セットであり、前記少なくとも1つのプロセッサが、
前記データベクトルの第2の複数の複素数セットを識別することであって、前記第2の複数の複素数セットが、前記第1の複数の複素数セットとは異なる、識別することと、
前記第2の複数の複素数セットからの各複素数セットに第2の非線形変換を適用することによって、前記変換されたデータベクトルを生成することと、を行うようにさらに構成されている、請求項31に記載のシステム。
【請求項34】
前記第1の複数の複素数セットからの各複素数セットに前記非線形変換を適用すること、および前記第2の複数の複素数セットからの各複素数セットに前記非線形変換を適用することは、実質的に並行して実行される、請求項33に記載のシステム。
【請求項35】
前記非線形変換は、第1の非線形変換であり、前記少なくとも1つのプロセッサが、前記複数の複素数セットからの各複素数セットに第2の非線形変換を適用することによって、前記変換されたデータベクトルを生成するようにさらに構成されおり、第1の非線形変換および第2の非線形変換が、実質的に並行して実行される、請求項31に記載のシステム。
【請求項36】
前記変換されたデータベクトルを生成することは、前記非線形変換を適用した後に、線形変換を実行することをさらに含む、請求項31に記載のシステム。
【請求項37】
前記変換されたデータベクトルを生成することは、前記非線形変換を適用した後に、離散フーリエ変換を実行することをさらに含む、請求項31に記載のシステム。
【請求項38】
前記複数の受信機は、複数のアンテナアレイを含み、前記複数の受信機および前記複数の伝送機は多入力多出力(MIMO)動作を実行するように構成されている、請求項31に記載のシステム。
【請求項39】
前記非線形変換は、ノルム保存変換である、請求項31に記載のシステム。
【請求項40】
プロセッサにより実行されたときに、前記プロセッサに、
第1のベクトルを受信することと、
前記第1のベクトルを分割して、大きさベクトルおよび符号ベクトルを生成することと、
前記大きさベクトルに転置を適用して、変更された大きさベクトルを生成し、アルゴリズムに基づいて、前記符号ベクトルを中間符号ベクトルに転換し、一連の複数の非線形変換のセットを前記中間符号ベクトルに適用して、変更された符号ベクトルを生成することにより、前記変更された大きさベクトルおよび前記変更された符号ベクトルを含む第2のベクトルを生成することと、
一連の複数の線形変換のセットを前記第2のベクトルに適用して第3のベクトルを生成することであって、前記第3のベクトルは、前記第1のベクトルの変換されたバージョンである、ことと、
前記第3のベクトルを表す第1の信号を少なくとも1つの伝送機に、前記少なくとも1つの伝送機から少なくとも1つの受信機への、前記変換されたデータベクトルを表す第2の信号の伝送のために送信することと、
させる命令を格納する非一時的なプロセッサ可読媒体。
【請求項41】
前記命令は、前記プロセッサに、前記プロセッサの動作の暗号化モードに基づいて、前記アルゴリズムを選択させる命令を更に含み、前記符号ベクトルを変換する命令は、初期ベクトルに基づいて前記符号ベクトルを変換する命令を含む、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項42】
前記命令は、前記プロセッサに、前記プロセッサの動作の暗号化モードに基づいて、前記アルゴリズムを選択させる命令を更に含み、前記プロセッサの動作の前記暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項43】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モードであり、前記大きさベクトルに適用される前記転置は、前記第1のベクトルの総電力を減少させない、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項44】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの動作の暗号化モードは、電子コードブック(ECB)モードであり、前記大きさベクトルに適用される前記転置は、前記第1のベクトルの総電力を減少させない、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項45】
前記複数の非線形変換のセットにおける非線形変換のセットの数は、前記複数の線形変換のセットにおける線形変換のセットの数に等しく、前記プロセッサの動作の暗号化モードに基づいて前記アルゴリズムが選択される、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項46】
前記複数の非線形変換のセットにおける非線形変換のセットの数は、前記複数の線形変換のセットにおける線形変換のセットとは異なり、前記プロセッサの動作の暗号化モードに基づいて前記アルゴリズムが選択される、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項47】
前記複数の線形変換のセットにおける線形変換のセットの数又は前記複数の非線形変換のセットにおける非線形変換のセットの数のうちの少なくとも一つは、[log(N)]に等しく、ここで、Nは整数であり、
前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項48】
前記複数の線形変換のセットにおける線形変換のセットの数又は前記複数の非線形変換のセットにおける非線形変換のセットの数のうちの少なくとも一つは、性能制約に基づいており、
前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項49】
前記複数の線形変換のセットにおける線形変換のセットの数又は前記複数の非線形変換のセットにおける非線形変換のセットの数のうちの少なくとも一つは、セキュリティ制約に基づいており、
前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項50】
前記プロセッサの動作の暗号化モードに基づいて前記アルゴリズムが選択され、前記大きさベクトルに適用される前記転置は、前記第1のベクトルの総電力を減少させない、請求項40に記載の非一時的なプロセッサ可読媒体。
【請求項51】
プロセッサと、前記プロセッサに動作可能に結合されるメモリとを備えるシステムであって、前記メモリは、前記プロセッサにより実行されるときに、前記プロセッサに、
入力ベクトルを受信することと、
前記入力ベクトルに基づいて、変換されたベクトルを、
前記入力ベクトルに関連付けられた大きさベクトルに転置を適用して、変更された大きさベクトルを生成することと、
アルゴリズムおよび一連の複数の非線形変換のセットを、前記入力ベクトルに関連付けられた符号ベクトルに適用して、変更された符号ベクトルを生成することであって、前記変更された大きさベクトルおよび前記変更された符号ベクトルは中間ベクトルを定義する、生成することと、
一連の複数の線形変換のセットを前記中間ベクトルに適用して、前記変換されたベクトルを生成することと、を行うことによって、生成することと、
前記変換されたベクトルを表す信号を少なくとも1つの伝送機に送信することと、
させる命令を格納する、システム。
【請求項52】
前記複数の非線形変換のセットは、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも2つを含む、請求項51に記載のシステム。
【請求項53】
前記メモリは、前記プロセッサに、前記プロセッサの動作の暗号化モードに基づいて前記アルゴリズムを選択させる命令を更に格納する、請求項52に記載のシステム。
【請求項54】
前記アルゴリズムは、Xor演算を含み、前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つであり、前記プロセッサの動作の前記暗号化モードに基づいて前記アルゴリズムが選択される、請求項51に記載のシステム。
【請求項55】
前記複数の非線形変換のセットにおける非線形変換のセットの数は、前記複数の線形変換のセットにおける線形変換のセットの数に等しく、前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項51に記載のシステム。
【請求項56】
前記複数の非線形変換のセットにおける非線形変換のセットの数は、前記複数の線形変換のセットにおける線形変換のセットの数とは異なり、前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項51に記載のシステム。
【請求項57】
前記複数の線形変換のセットにおける線形変換のセットの数又は前記複数の非線形変換のセットにおける非線形変換のセットの数のうちの少なくとも一つは、[log(N)]に等しく、ここで、Nは整数であり、
前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項51に記載のシステム。
【請求項58】
前記複数の線形変換のセットにおける線形変換のセットの数又は前記複数の非線形変換のセットにおける非線形変換のセットの数のうちの少なくとも一つは、性能制約又はセキュリティ制約のうちの少なくとも一つに基づいており、
前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つである、請求項51に記載のシステム。
【請求項59】
前記大きさベクトルに適用される前記転置は、前記入力ベクトルの総電力を減少させず、前記プロセッサの動作の暗号化モードは、暗号ブロック連鎖(CBC)モード又は電子コードブック(ECB)モードのうちの一つであり、前記プロセッサの動作の前記暗号化モードに基づいて前記アルゴリズムが選択される、請求項51に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年7月1日に出願され、「Communication System and Method Using Orthogonal Frequency Division Multiplexing(OFDM)with Non-Linear Transformation」と題する、米国特許出願第16/459,254号に対する優先権を主張し、かつその継続であり、本出願はまた、2020年6月30日に出願され、「Modulation-Agnostic Transformations Using Unitary Braid Divisional Multiplexing(UBDM)」と題する、米国特許出願第16/916,303号に対する優先権を主張し、かつその継続であり、これらの各々の開示は、それらの全体が、あらゆる目的のために参照により本明細書に組み込まれる。
【0002】
本出願は、2019年5月17日に出願され、「COMMUNICATION SYSTEM AND METHODS USING MULTIPLE-IN-MULTIPLE-OUT(MIMO)ANTENNAS WITHIN UNITARY BRAID DIVISIONAL MULTIPLEXING(UBDM)」と題する、米国非仮特許出願第16/416,144号、2019年7月1日に出願され、「SYSTEMS,METHODS AND APPARATUS FOR SECURE AND EFFICIENT WIRELESS COMMUNICATION OF SIGNALS USING A GENERALIZED APPROACH WITHIN UNITARY BRAID DIVISION MULTIPLEXING」と題する、米国非仮特許出願第16/459,245号、および、2019年7月1日に出願され、「COMMUNICATION SYSTEM AND METHOD USING LAYERED CONSTRUCTION OF ARBITRARY UNITARY MATRICES」と題する、米国非仮特許出願第16/459,262号に関連しており、これらの各々の開示は、それらの全体が、あらゆる目的のために参照により本明細書に組み込まれる。
【0003】
連邦政府の利益に関する声明
本米国政府は、すべての米国政府の目的のためにライセンスを付与する権限を有する、本発明における非独占的で取消不能のロイヤリティフリーのライセンスを保有している。
【0004】
本発明は、概して、データ通信、より具体的には、ユニタリブレイド分割多重化(UBDM)を使用してデータ通信のセキュリティを強化するための技術に関する。
【背景技術】
【0005】
無線通信システムは、例えば、音声、パケットデータなどの様々な種類の通信サービスを提供するために広く展開されている。これらのシステムは、例えば、システム全体の帯域幅を、一般に副搬送波、トーン、ビン、および周波数サブチャネルとも呼ばれるいくつかのサブバンド(例えば、(N個の)直交サブバンド)に分割することによって、一部の無線環境に高性能を提供することができる変調技術を利用し得る。多重アクセス通信では、複数のユーザデバイスは、単一の通信チャネルを介して受信機に信号を伝送する。これらの信号は、重畳され、そのチャネルを介して伝播する結合された信号を形成する。次いで、受信機は、結合された信号に対して分離操作を実行して、結合された信号から1つ以上の個々の信号を回復させる。例えば、各ユーザデバイスは、異なるユーザに属する携帯電話であり得、受信機は、セルタワーであり得る。異なるユーザデバイスによって伝送される信号を分離することにより、異なるユーザデバイスは、干渉を伴わずに同じ通信チャネルを共有し得る。
【0006】
伝送機は、例えば、搬送波の振幅、位相、および/または周波数を変えることなどによって、搬送波または副搬送波の状態を変えることによって、異なるシンボルを伝送し得る。各シンボルは、1つ以上のビットを表し得る。これらのシンボルは各々、複素平面の離散値にマッピングすることができるため、直交振幅変調が生成され、または、各シンボルを離散周波数に割り当てることによって、周波数偏移変調が生成される。次いで、シンボルは、シンボル伝送速度の少なくとも2倍であるナイキスト速度でサンプリングされる。得られた信号は、デジタル-アナログコンバータを介してアナログに転換され、伝送のために搬送周波数まで転移される。異なるユーザデバイスが通信チャネルを介して同時にシンボルを送信する場合、それらのシンボルによって表される正弦波が重畳されて、受信機で受信される結合された信号を形成する。
【発明の概要】
【0007】
いくつかの実施形態では、高速UBDM変換を実装するための方法は、プロセッサを介して第1のベクトル(入力ベクトル)を受信することと、第1のベクトルを分割して、大きさベクトルおよび符号ベクトルを生成することと、を含む。変更された大きさベクトルおよび変更された符号ベクトルを含む第2のベクトルは、大きさベクトルに転置を適用して、変更された大きさベクトルを生成することと、アルゴリズムに基づいて、符号ベクトルを中間符号ベクトルに転換することと、中間符号ベクトルに複数の非線形層を適用して、変更された符号ベクトルを生成することと、を行うことによって、生成される。符号ベクトルを転換することは、任意選択で初期化ベクトルに基づいている。複数の非線形層からの各非線形層は、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも1つ、またはそれらの任意の組み合わせを含む。複数の線形層は、第2のベクトルに適用されて、第3のベクトルが生成され、第3のベクトルは、第1のベクトルの変換されたバージョンである。第3のベクトルを表す第1の信号は、少なくとも1つの伝送機に、少なくとも1つの伝送機から少なくとも1つの受信機への、変換されたデータベクトルを表す第2の信号の伝送のために、送信される。いくつかの実施態様では、大きさベクトルに適用される転置は、第1のベクトルの総電力を減少させない。
【0008】
いくつかの実施形態では、高速UBDM変換を実装するための方法は、プロセッサを介して、複数の複素数を含む入力ベクトルを受信することを含む。変換されたベクトルは、入力ベクトルに関連付けられた大きさベクトルに転置を適用して、変更された大きさベクトルを生成し、アルゴリズム(例えば、Xor演算を含む)および複数の非線形層を、入力ベクトルに関連付けられた符号ベクトルに適用して、変更された符号ベクトルを生成し、変更された大きさベクトルおよび変更された符号ベクトルは中間ベクトルを定義し、複数の線形層を中間ベクトルに適用して、変換されたベクトルを生成することによって、入力ベクトルに基づいて、かつプロセッサを介して生成される。方法はまた、変換されたベクトルを表す信号を少なくとも1つの伝送機に、少なくとも1つの伝送機から少なくとも1つの受信機への、変換されたベクトルを表す第2の信号の伝送のために、送信することを含む。いくつかの実施態様では、大きさベクトルに適用される転置は、第1の入力ベクトルの総電力を減少させない。
【図面の簡単な説明】
【0009】
図1】本明細書に記載の改良された技術を実施し得る電子環境内の例示的な電子通信システムを例解するブロック図。
図2】一実施形態による、信号を符号化および復号化するためのプロセスフローを例解するブロック図。
図3】一実施形態による、信号を符号化および復号化するためのシステムを例解する図。
図4】一実施形態による、非線形変換を使用してデータを変調するための例示的な方法を例解するフローチャート。
図5】一実施形態による、高速UBDM変換を実装するための例示的な方法を例解するフローチャート。
図6】一実施形態による、高速UBDM変換を実装するための例示的な方法を例解するフローチャート。
【発明を実施するための形態】
【0010】
ネットワークを介する伝送の前に、符号化(例えば、「プリコーディング」)または変調プロセスの一部として、線形変換がデータに適用される場合、伝送されたデータは、少数の「プレーン/暗号」セット(例えば、ペア)に基づき、例えば、単一の行列反転を使用して、線形変換を決定することができ得る盗聴者によって解読されやすくなり得る。このように、線形変換を採用するシステムおよび方法は、伝送前データの非線形化によって改善することができる。一般に複素数に非線形演算を適用するための既知のメカニズムが存在し、線形変換に関連付けられたデータセキュリティリスクにもかかわらず、データ変調の状況でのそのようなメカニズムの適用は、例えば、データ変調に一般的に関連付けられた様々な制約および考慮事項のため、以前はうまく実行されていなかったと考えられる。例えば、変調中に、伝送されている信号の電力を低減させることができ、ノイズおよび歪みを増幅することができる。非ユニタリおよび非線形演算は、信号を増幅および歪ませ、それによってビット誤り率(BER)を増加させることができる。非線形変換は通常、等長ではないため、それはまた、ノイズを増幅し、BERを望ましくないレベルまで増加させる。対照的に、ユニタリ変換は、信号電力を保存し、同形/等長であるため、セキュリティ上の考慮事項を考慮せずに信号で遍在的に使用される。いくつかの既知の暗号解読法には、盗聴者による線形攻撃をブロックすることができる非線形成分が含まれている。ただし、このような暗号解読法は、シンボルではなくビット(つまり、ビットレベルのセキュリティ)で動作するため、ノイズは、問題にならない。
【0011】
直交周波数分割多重(OFDM)システムのセキュリティを強化するために、非線形方式で複素ベースバンドシンボルを変更するための技術が本明細書に提供される。いくつかの実施形態では、データを符号化する方法は、入力データベクトルの複数の複素数セット(例えば、ペア)を識別することと、複数の複素数セットからの各複素数セットに非線形変換を適用することによって、変換されたデータベクトルを生成することと、を含む。非線形変換には、各複素数セットからの第1の複素数の位相を変更することが含まれる。位相変更は、各複素数セットからの第2の複素数に関連付けられた値に基づいている。変換されたデータベクトルを表す信号は、複数の伝送機に、複数の伝送機から複数の受信機への、変換されたデータベクトルを表す信号の伝送のために送信される。非線形変換を表す信号は、複数の受信機でのデータベクトルの回復のために、複数の伝送機から複数の受信機への、変換されたデータベクトルを表す信号の伝送の前に、複数の受信機への非線形変換の伝送のために、第2の計算装置に送信される。
【0012】
本明細書で使用される場合、「伝送機」(または「信号伝送機」)は、1つ以上の、アンテナ、増幅器、ケーブル、デジタル-アナログコンバータ、フィルタ、アップコンバータ、プロセッサ(例えば、ビットの読み取りおよび/またはビットのベースバンドへのマッピング用)などの任意の組み合わせを含むがこれらに限定されない、信号の伝送に使用される構成要素の任意の集合を指す。同様に、本明細書で使用される場合、「受信機」(または「信号受信機」)は、1つ以上のアンテナ、増幅器、ケーブル、アナログ-デジタルコンバータ、フィルタ、ダウンコンバータ、プロセッサなどの任意の組み合わせを含むがこれらに限定されない、信号の伝送に使用される構成要素の任意の集合を指す。
【0013】
本開示のいくつかの実施形態は、ノイズを増幅することなく物理層でデータプライバシーを確立するために、変調プロセスの一部として伝送前データシンボルの非線形化を達成するシステムおよび方法を含む。本明細書に記載の非線形変換(または「変換」)には、ノイズを増幅しない、またはノイズに最小限の増幅を導入する非線形変換が含まれる。非線形変換は、入力データ(例えば、データベクトルまたはそこから派生したシンボル)に1回または数回適用することができ、任意選択で他の変換(線形またはその他)と何度でもインターリーブすることができる。
【0014】
図1は、無線通信を伝送する改良された技術が実行される例示的なシステム100を例解する図である。システム100は、信号伝送機120および信号受信機150を含む。ただし、環境内に描写されていない他の信号伝送機が存在し得ることを理解されたい。
【0015】
信号伝送機120は、信号受信機150への伝送のための信号を準備し、準備された信号を信号受信機150に伝送するように構成されている。信号伝送機120は、処理回路ユニット124、メモリ126、および伝送回路ユニット128を含む。処理ユニット124のセットは、1つ以上の処理チップおよび/またはアセンブリを含む。メモリ126は、揮発性メモリ(例えば、RAM)、および1つ以上のROM、ディスクドライブ、ソリッドステートドライブなどの不揮発性メモリの両方を含む。処理ユニット124のセットおよびメモリ126は、一緒に制御回路を形成し、これは、本明細書で説明されるような様々な方法および機能を実行するように構成および配置されている。伝送回路128は、無線周波数エネルギーの形態の信号を受信機に伝送するように構成されている。
【0016】
いくつかの実施形態では、信号伝送機120の構成要素のうちの1つ以上は、メモリ126に記憶された命令を処理するように構成されたプロセッサ(例えば、処理ユニット124)であり得るか、またはそれを含むことができる。図1に描写されるような命令の例には、初期ベクトル生成マネージャ130および同期信号生成マネージャ146が含まれる。さらに、図1に例解されるように、メモリ126は、初期ベクトル132、チャネルインデックス136、信号140、および同期信号148を含む様々なデータを記憶するように構成されている。
【0017】
高速ユニタリ変換
上記の方法およびシステムには、通常、ベクトルに対する行列演算が含まれる。ベクトルの長さがNであり、行列のサイズがN×Nである場合(例えば、行列がユニタリ行列の場合)、ベクトルに対する行列演算には、O(N)乗算が含まれる。したがって、Nが増加するにつれて、通信システムの計算負荷は、法外に高くなる可能性がある。
【0018】
いくつかの実施形態では、計算の複雑度を軽減するために、いくつかの高速ユニタリ変換を採用することができる。例えば、ベクトルに対する行列演算は、フーリエ行列、ウォルシュ-アダマール行列、ハール行列、スラント行列、特定の種類のテプリッツ行列、および高速な複雑性クラスのベクトルに対して演算することができる特定の種類の巡回行列を使用して達成することができる。ただし、これらの種類の行列は、限られたクラスの変換しか形成しないため、結果として得られるセキュリティのレベルは、十分ではない場合がある。
【0019】
通信のセキュリティを維持しながら複雑度の問題に対処するために、本明細書に記載のシステムおよび方法は、より小さな行列から任意のユニタリ行列を構築するためのアプローチを採用している。このアプローチでは、ユニタリ行列は、層状に構築される。各層には2つの演算が含まれる。第1の演算は、転置であり、第2の演算は、U(2)行列の直和である。転置行列は、任意の浮動小数点演算を必要としないユニタリ行列であるため、計算が不要であり、つまり、O(1)の複雑度を備える。U(2)行列は、対角線に沿った2×2ブロックを除いて、ほとんどの値が0である行列である(ブロックU(2)行列とも呼ばれる)。これらのブロックU(2)行列には、4×N/2=2×N乗算のみが含まれる。結果として、ブロックU(2)を含む層には、ブロックU(2)の2×N乗算が含まれ、転置の乗算は含まれない。言い換えると、ユニタリ行列の構築中の1つの層は、複雑度O(N)を有する。
【0020】
ユニタリ行列を構築するための総複雑度は、層の数と各層の複雑度であるO(N)の積である。いくつかの実施形態では、層の総数は、log(N)であり得、したがって、すべての層の総複雑度は、O(N×log(N))であり、これは、標準のOFDMの複雑度に等しい。さらに、ブロックU(2)のlog(N)層および転置行列は、密なユニタリを生成することができる。高速ユニタリ行列のスペースは、ユニタリ行列の全スペースほど大きくはないが、それでも盗聴者による攻撃を禁止するのに十分な大きさであり得る(図9を参照して以下の詳細を参照)。
【0021】
いくつかの実施形態では、本明細書に記載のアプローチは、ブロックU(m)行列を採用して、ユニタリ行列を構築することができ、式中、mは、正の整数(例えば、m=3、4、5など)である。いくつかの実施形態では、ユニタリ行列を構築するときに、異なるサイズを有する行列を、単一の層内で使用することもできる。いくつかの実施形態では、異なる層は、異なるサイズを有する行列を使用することができ、例えば、第1の層はブロックU(m)行列を使用し、第2の層はブロックU(l)行列を使用し、式中、mは、lとは異なる。例えば、N=8の場合、4つの2×2ブロックU(2)行列のセットを第1の層で使用し、続いて転置を使用することができる。次いで、2つのU(3)行列および単一のU(2)行列を第2の層で使用し、続いて別の転置を使用することができる。第3の層は、ブロックU(2)行列、ブロックU(4)行列、次いで別のブロックU(2)行列を含み、続いて第3の転置を含むことができる。
【0022】
いくつかの実施形態では、特定の種類の高速ユニタリ行列は、層に関しても書くことができ、その各々は、より小さな行列のブロックの転置および直和を含む。これらの種類の行列には、例えば、フーリエ行列、ウォルシュ-アダマール行列、ハール行列、スラント行列、およびテプリッツ行列が含まれる。いくつかの実施形態では、層状アプローチを使用して構築することができるユニタリ行列は、離散フーリエ行列の直和ではない任意の行列を含む。
【0023】
変調における線形変換に関するセキュリティ問題
線形変換を使用したデータ変調に関連付けられたセキュリティ脆弱性を例解するために、送信者および受信者が線形ユニタリ行列Aのみをデータシンボル
【数1】
に適用して、伝送機で
【数2】
を取得し、次いで受信機でA(つまり、行列Aの逆行列)を
【数3】
に適用して、
【数4】
を取得すると仮定する。この場合、盗聴者が、
【数5】
で表される
【数6】
のN個の線形独立値のセットを収集することが可能であると仮定する。盗聴者が、対応する変換されていないボー
【数7】
、…、
【数8】
を知っている場合、盗聴者は、変換されていないボーを、行列
【数9】
に、および変換されたボーを、対応する行列
【数10】
に配置することができる。BとSを連結する方程式は、したがって、
S=AB(18)である。
このように、ボーは、線形独立であると想定され、Aは、ユニタリであると想定されるため、Sは、フルランクであり(つまり、すべての行および列が線形独立である)、盗聴者は、それを簡単に反転することができ、
A=BS-t(19)を得る。
これにより、盗聴者は、行列A全体を取得するため、データ伝送のセキュリティが侵害される。
【0024】
変調における非線形変換
前述の例は、データ変調に線形変換を使用した場合に存在する可能性のあるセキュリティ脆弱性を例解している。以下のセクションでは、データ変調中の非線形変換の実施形態について説明し、データ伝送のセキュリティを向上させながら、通常は非線形演算に関連付けられている欠点を回避する。例えば、前述のように、非線形変換は、信号を増幅および/または歪ませることができ、それによってノイズを増幅させ、信号対ノイズ比(SNR)を低下させ、および/またはビット誤り率(BER)を増加させる。本明細書に記載のいくつかの実施形態は、システム設計者が非線形性の程度を調整することを可能にし得る方法で、ノイズを増幅させる(または最小限に増幅させる)ことなく線形性の破壊(すなわち、非線形化)を達成する。本明細書で説明される非線形変換は、信号の総電力を増加させ得ず、可逆的であり、したがって、受信機でのデータ回復を許可する。非線形変換は、入力データ(例えば、データベクトルまたはそこから派生したシンボル)に1回または数回適用することができ、変換されたものの伝送の前に、任意選択で他の変換(線形またはその他)と何度でもインターリーブすることができる。例えば、非線形変換(本明細書に記載されるような)および転置を備える「ブロックU(2)」行列の5つの層が存在し得る。
【0025】
図2は、一実施形態による、非線形変換を使用して信号を符号化および復号化するためのプロセスフローを例解するブロック図である。符号化および復号化プロセス200の間に、入力データベクトル「X」は、202で、計算装置に入力される。非線形変換(任意選択で、ノルム保存変換である)は、210で、計算装置を介して入力データベクトルXに適用され、変換されたベクトルが生成される。変換されたベクトルは、212で、無線伝送220のために、1つ以上の伝送機に送信される。変換されたベクトルを表す1つ以上の信号は、222で、もう1つの受信機に送信され、1つ以上の受信機で受信されると、変換されたベクトルは、非線形変換に基づいて、230で、復号化/復調されて、入力データベクトルが、232で、再構築される(出力「Y」)。図2の破線で示されるように、非線形変換の表現は、計算装置から1つ以上の受信機に伝送された場合がある(例えば、変換されたベクトルを表す1つ以上の信号の伝送の前に、同時に、並行して、時間的に重複して、または後に、222でもう1つの受信機に送信される。)
【0026】
いくつかの実施形態では、非線形変換は、変換されたデータベクトルを表す信号を複数の伝送機に送信する前に、第1の非線形変換および第2の非線形変換を適用することを含む。第1の非線形変換および第2の非線形変換は、複素数セットの共通のコレクションもしくはサブセットに適用することができるか、または、各々は、複素数セットの異なるコレクションまたはサブセットに適用することができる。後者の例では、入力データベクトルが4の長さを有し、成分(つまり、複素数)1、2、3、および4が含まれていると仮定する。ここで、第1の非線形変換の前に、成分1および2が、1つのセットとしてペアになり、成分3および4が、別のセットとしてペアになっていると仮定する。次いで、第1の非線形変換は、(1、2)セットおよび(3、4)セットに、例えば、時間的に並行してまたは重複して適用される。次に、別のセットのコレクションが、識別され、成分1および3が第1のセットとしてペアになり、成分2および4が第2のセットとしてペアになる。次いで、第2の非線形変換は、(1、3)セットおよび(2、4)セットに、例えば、時間的に並行してまたは重複して適用される。いくつかの実施形態では、第1の非線形変換を(1、2)セットおよび(3、4)セットに並行して適用することができ、第2の非線形変換を(1、3)セットおよび(2、4)セットに並行して適用することができるが、第2の非線形変換への入力が第1の非線形変換からの出力であるため、第1の非線形変換および第2の非線形変換は、並列して実行されないことに留意されたい。
【0027】
例示的な非線形演算
いくつかの実施形態では、非線形演算Qは、高速変換の第1の部分でq回適用される。各Qは、
【数11】
で表される、それに関連付けられた長さNのベクトルを有し、合計q個のそのようなベクトルが存在する。
【数12】
の値は、完全な非線形変換Qの「アクティベータ」と呼ぶことができる。
【数13】
の各成分は、2ビット値である。そのため、全部で、各
【数14】
に、2Nビットが存在する。
【0028】
の動作(
【数15】
に依存する)は、
【数16】
の隣接する値(つまり、成分1および2、次いで成分3および4など)でペアである。動作は、単一の2成分ブロックを参照して例解することができる。
【数17】
およびbの値に関するいくつかの条件が、それらの値が何であるかに依存した方法で、満たされている場合かつその場合に限り、Qは、ベクトルの各ダブレットの第2の成分の変更を含むことができる。以下は、単一のダブレットに対するQの動作の擬似コードの例である。入力は、2つのベクトル成分bおよびb(コンステレーションCに存在する)ならびに2つの2ビット値w(ビットw11およびw12を備える)およびw(ビットw21およびw22を備える)である。
if w11==0 then
if(-1)w12==Sign(Re(b))then
If(w21,21,w22)==(0,0)||(w21,w22)==(1,1)then
←-b
end if
If(w21,w22)==(0,1)then
←b2*
end if
If(w21,w22)==(1,0)then
←-b2*
end if
end if
end if
if w11==1 then
if(-1)w12==Sign(Im(b))then
if((w21,w22)==(0,0)||(w21,w22)==(1,1))then
←-b
end if
if(w21,w22)==(0,1)then
←b2*
end if
if(w21,w22)==(1,0)then
←-b2*
end if
end if
end if
【0029】
関数Sign(x)は、x>0の場合は+1を返し、x<0の場合は-1を返す関数である。一例として、wおよびwが、それぞれ、(1;0)および(1;1)、ならびにb=1+iおよびb=-1+iである場合を考える。w11=1であるため、bの虚数部が考えられる。b虚数部の符号は、Sign(Im(b))=Sign(Im(1+i))=Sign(+1)=+1である。値(-1)w12=(-1)=+1。そのため、それは、(-1)w12==Sign(Im(b))の場合である。w=(1,1)であるため、b←-b、およびこのダブレットのQの動作は、以下である。
【数18】
【0030】
第1の(一番上の)成分は変更されていないことに留意されたい。上記は、ベクトルの各ダブレットに対して実行され、そのような演算は集合的にQの単一のアプリケーションを構成する。異なる成分がq層の各々で他の成分の「制御ゲート」として機能するように転置が含まれる。Qの動作は、ユニタリであるが、非線形性が高いことに留意されたい。
【0031】
いくつかの実施形態では、変換されたデータベクトルを生成することはまた、非線形変換を適用した後に線形変換または離散フーリエ変換を実行することも含む。代替的に、または加えて、変換されたベクトルを表す1つ以上の信号を受信する1つ以上の受信機は、複数のアンテナアレイを含み、受信機および伝送機は、多入力多出力(MIMO)動作を実行するように構成することができる。
【0032】
図3は、一実施形態による、信号を符号化および復号化するための(例えば、図2のプロセス200を実装するための)システムを例解する図である。システム300は、各々がプロセッサ312および複数のアンテナ314a~314dを含む1つ以上の伝送機(「T」)310を含む。伝送機310は、無線通信ネットワーク320を介して、各々がプロセッサ332および複数のアンテナ324a~324cを含む1つ以上の受信機(「T」)330に通信可能に結合される。入力データベクトルXは、302で、システムで受信され、非線形変換を介して、伝送機310によって、アンテナ314a~314dネットワーク320のうちの1つ以上を介して受信機330に伝送される変換されたデータベクトルに変換される。変換されたベクトルは、アンテナ324a~324cのうちの1つ以上を介して受信機330で受信され、非線形変換に基づいて復調されて、342で、回復されたデータベクトルYを生成する。アンテナ314a~314dの各々は、アンテナ324a~324cの複数のアンテナに信号を伝送することができる。言い換えれば、受信機310のアンテナ314a~314dおよび受信機330のアンテナ324a~324dは、以下のように多入力多出力(MIMO)動作を実行するように構成することができ、伝送機310のアンテナ314aは、無線通信ネットワーク320を介して受信機330のアンテナ324a、324b、および324cのうちの1つ、サブセット、または全部に、(それぞれ、信号322a、322b、および322cとして)信号を送信することができる。同様に、伝送機310のアンテナ314bは、無線通信ネットワーク320を介して、受信機330のアンテナ324a、324b、および324cのうちの1つ、サブセット、または全部に、それぞれ信号322d、322e、および322fとして)信号を送信することができ、伝送機310のアンテナ314cは、無線通信ネットワーク320を介して、受信機330のアンテナ324a、324b、および324cのうちの1つ、サブセット、または全部に、それぞれ信号322g、322h、および322iとして)信号を送信することができる。
【0033】
図4は、一実施形態による、非線形変換を使用してデータを変調するための例示的な方法を例解するフローチャートである。図4に示されるように、方法400は、410で、第1の計算装置のプロセッサを介して、入力データベクトルの複数の複素数セットを識別することを含む。入力データベクトルには、複数の複素数が含まれている。420で、変換されたデータベクトルは、複数の複素数セットからの複素数セットの各サブセットに、非線形変換を適用することによって生成される。非線形変換には、その複素数セットからの第2の複素数に関連付けられた値に基づいて、その複素数セットからの第1の複素数の位相を変更することが含まれる。変換されたデータベクトルを表す信号は、830で、複数の伝送機に、複数の伝送機から複数の受信機への、変換されたデータベクトルを表す信号の伝送のために送信される。440で、非線形変換を表す信号は、複数の受信機でのデータベクトルの回復のために、複数の受信機への、変換されたデータベクトルを表す信号の伝送の前に、同時に、時間的に重複して、または後に、複数の受信機への非線形変換の伝送のために、第2の計算装置に送信される。
【0034】
いくつかの実施形態では、複素数セットからの第1の複素数の位相を変更することはまた、所定の因子に基づいており、方法400はまた、複数の受信機でのデータベクトルの回復のために、複数の伝送機から複数の受信機への、変換されたデータベクトルを表す信号の伝送の前に、同時に、時間的に重複して、または後に、複数の受信機に所定の因子を表す信号を送信することを含む。
【0035】
いくつかの実施形態では、入力データベクトルは、それらの「ノルム」(または「大きさ」)および位相成分に分割または分解される複数の複素数を含む。例えば、各複素数zは、次のように書くことができる。
z=r ei*x
式中、rは、正の実数であり、xは、[0、2pi)内の実数である。
【0036】
複数の複素数は、複素数セットに分割または分解され(例えば、複数の複素数セットが検出または選択され)、各複素数セットの2つのノルム間の差が計算される。r1が2つの複素数のうちの一方のノルムであり、r2が他方のノルムである場合、差は、r1-r2またはr2-r1として計算される。次いで、差をp乗して、中間値(r1-r2)*pまたは(r2-r1)*pを取得する。次いで、中間値に所定の定数Rを掛けて、値、R*(r1-r2)*pまたはR*(r2-r1)*pを取得する。次いで、この値を使用して、ノルムがより小さい元の複素数(z1またはz2)の位相を回転/調整する角度を定義する。
【0037】
一例として、次のような複素数のセットが与えられる。
z1=r1*e{ix1}
z2=r2*e{ix2}
【0038】
r2<r1と仮定すると、次のように、z1が変更されないまま、z2の位相が調整される。
z1=r1*e{ix1}
z2=r2*e{ix2}*e{iR*(r1-r2)^p}
【0039】
言い換えると、より小さい大きさを有する複素数は、セットの複素数の大きさの差の累乗に比例する角度で複素平面内で回転する(つまり、非線形変換)。シミュレーションによると、任意のN(Nは副搬送波の数である)および任意の基礎となるコンステレーションに対して、BER(現実的なSNRの場合、最大で0.5dB未満のクラスタ分散)にわずかな影響を及ぼしながら、盗聴者による任意の線形攻撃への試みを不可能にするpおよびRの値が存在する。「コンステレーション」(またはコンステレーションダイアグラム)は、デジタル変調方式によって変調される信号を表す。
【0040】
いくつかの実施形態では、Rおよびpの値は、各ボーのシンボルの各セットによって変化する。例えば、Rは、その「層」(例えば、上記の意味で、「層」が上述のブロックU(2)および転置から構成される)の関数、および/またはシンボルのセットが操作されている関数であり得る。
【0041】
いくつかの実施形態では、非線形変換は、プリコーディングまたは事前伝送操作の任意の段階で、および/または入力データベクトル内の複素数のセットの任意のコレクションに対して実行することができる。例えば、非線形変換は、プリコーディングまたは事前伝送操作の開始時に1回、プリコーディングまたは事前伝送操作の終了時に1回、各ブロックU(2)と転置との間(つまり、ブロックU(2)の後、および転置の前)などのうちの1つ以上を実行することができる。非線形変換は、線形か非線形かに関係なく、他のプリコーディング操作の任意の数および組み合わせでインターリーブすることができる。いくつかの実施形態では、非線形変換は、入力ベクトルのすべての複素数セットに適用される。言い換えると、各複素数は、他の1つの複素数と組み合わされ、合計N/2セットになる。他の実施形態では、非線形変換は、入力ベクトルの複素数セットのサブセットにのみ適用され、入力ベクトルの他の複素数セットには適用されない。
【0042】
いくつかの実施形態では、非線形変換は、以下のように実行される。合計(長さ-N)ボーの2つの成分を取る。両方の成分は、複素数であり得るため、次のように書くことができる。
【数19】
【0043】
説明のために単一の2ベクトルを上に示すが、他のベクトル長さ/サイズも使用することができる(例えば、単一の3ベクトル、単一の4ベクトル、複数のベクトルなど)。次の演算は、ベクトルの任意の2つの成分に対して実行することができ、2つの成分は、必ずしも互いに隣接している必要はない。いくつかの実施態様では、ブロックU(2)の「高速UBDM」層のいくつかの層および転置が最初に適用され、次にベクトルの各セット(例えば、ベクトルセットが層によって数回並べ替えられ、混合されたため、この時点で隣接するまたは「並んだ」セット)に非線形変換が適用され、その後に1つ以上の追加の「高速」層に適用される。高速UBDM層の追加の例を以下に記載する。
【0044】
成分の単一のセット(例えば、ペア)に非線形変換を実行するには、2つのパラメータ、累乗p(任意の実数、例えば、1、2、または3であり得る)および実数である値Rを選択し得る。2つの複素数が与えられると、2つの絶対値の差に比例する角度だけ、より小さい大きさを備える複素数に回転が適用される。最小の回転は、(r-r)=0のときに発生し、その結果、回転は0になる。最大の回転は、(r-r)が可能な最大距離であるときに発生し、これは、使用されているコンステレーションによって異なる。
【0045】
(20)のように複素数のすべてのセットについて、差(r-r)が計算され、p乗され、ついでRを掛けて、より小さい大きさを有する複素数に適用される位相回転の程度を定義する値が生成される。言い換えると、以下の位相シフトが計算される。
【数20】
【0046】
=rである場合、この式は、0である。(r-r)が増加すると、φも増加し、p乗はφが増大する率を制御する。φが計算されると、より小さい大きさを備える複素数にeiφが乗算される。例えば、(20)においてr1>r2であると仮定する。変換は、次のようである。
【数21】
【0047】
受信機は、受信機がφを計算すると、反対方向により小さい大きさを備える複素数値を回転させることを除いて、同様のプロセスを実行する。
【0048】
高速ユニタリブレイド分割多重(UBDM)変換
概要
コンステレーションCに成分を備える長さNのベクトルである、「ボー」ベクトル
【数22】
を含む基本的な入力を考える。N=4、かつCが四位相偏移変調(QPSK)コンステレーションである場合、例示的なベクトルは、
【数23】
である。
【0049】
いくつかの実施形態では、「高速」UBDM変換(または「変換」)を例示的なベクトル
【数24】
に適用することは、非線形部分(すなわち、非線形「変換」)を適用し、続いて線形部分(すなわち、線形「変換」)を適用することを含む。非線形部分および線形部分の各々は、「キー設定」されており、送信者と受信者との間の共有秘密、ビットの列の形式の共有秘密を使用して実装されている。非線形部分には、1つ以上の入力ボーベクトルの符号ビットに対して非線形演算を実行することと、大きさの転置を実行することと、が含まれる。大きさは、例えば、ボーベクトルの総電力を維持するために、非線形部分の間に、大きさに任意の他の変更を加えることなく並べ替えることができる。符号ビットの非線形演算は、ブロック暗号を模倣する効果を有することができ、そのため、UBDM変換のすべての非線形性を含めることができる。非線形部分および線形部分は、以下で論じるように「層」で動作することができる。非線形部分および線形部分の各々における層の数(Lで表される)は、アプリケーションに応じて変化する場合があり、非線形部分に関連付けられる層の数は、線形部分に関連付けられる層の数と同じであるか、または異なる場合がある。例えば、いくつかの実施形態では、線形層の数は、L=[log(N)]であり、非線形層の数(Qで表される)は、通信システム全体の性能制約およびセキュリティ制約に応じて変化し、Q=0(最も安全でない)~Q=「log(N)」(より安全)の値を有し得る。
【0050】
いくつかの実施形態では、線形層は、以下の形態であり、
【数25】
式中、Pは転置行列であり、UはU(2)行列の直和である。
【0051】
非線形演算
いくつかの実施形態では、非線形演算(すなわち、高速UBDM変換の非線形部分)は、複数のワンタイムステップおよび一連の非線形層および/または線形層を含む。複数のワンタイムステップには、例として、Sボックスアプリケーション、拡散線形変換(例えば、Maximum Difference Separable(MDS)行列)、Xor加算、転置などを含む一般的なクラスの演算からの1つ以上の演算を含めることができる。いくつかの実施形態では、非線形演算(すなわち、高速UBDM変換の非線形部分)は、Substitution Permutation Network(SPN)構造、Feistel構造、Lai-Massey構造、任意のサイズのSボックス、主要なXor加算、拡散線形変換、転置、addition-rotation-Xor(ARX)演算などを含む(ただしこれらに限定されない)、ブロック暗号(対称暗号解読法の一般的なクラス)に通常見られる演算の複数のアプリケーションを含む。これらの演算は、信号波形の様々な成分の振幅、周波数、および位相を変化させるために、複素数値自体、符号値、大きさの値、または任意の組み合わせに適用され得る。入力は、ボーベクトル
【数26】
および複数の共有秘密である。非線形層の数がQであり、N個の副搬送波が存在する場合、共有秘密には、長さ2NのQ+1転置、長さ2NのQ+1ビット文字列、および任意の数のビット(例えば、4ビットまたは8ビット)の対称鍵アルゴリズムの置換ボックス(「Sボックス」)が含まれる。任意選択で、長さ2Nビット文字列である初期化ベクトルが存在する場合もある。これらの要素の各々の生成、記憶、および伝送については、以下で論じる。
【0052】
いくつかの実施形態では、非線形演算は、以下のように適用される。まず、N個の複素数のボーベクトル
【数27】
が与えられると、ボーベクトル
【数28】
は、その2N(実数および虚数)の大きさおよびその2Nの符号ビットに分割(つまり、分解または分離)される。例えば、初期ボーベクトルが16ステート直交振幅変調(16-QAM)コンステレーションからのものであり、
【数29】
である場合、大きさおよび符号のベクトルは、次のとおりである。
【数30】
【0053】
大きさベクトル
【数31】
について、単一の転置Pが要素に適用される(任意選択で、大きさベクトル
【数32】
に任意の他の変更を加えることなく)。次に、符号ベクトル
【数33】
について、要素は、ビットとして取り扱われ/処理され、非常に小さなブロック暗号に似たアルゴリズムが適用されて、中間符号ベクトル(または「中間ベクトル」)が生成される。例えば、1つのそのような実施態様は、次のようにベクトルをビットに転換することである。
【数34】
【0054】
上記の変更された符号ベクトル
【数35】
は、中間符号ベクトル(または「中間ベクトル」)と呼ぶことができる。符号ベクトルに適用される変更のタイプは、動作モードに基づいて選択することができる。動作モードの例には、電子コードブック(ECB)、暗号ブロック連鎖(CBC)、カウンタ(CTR)、出力フィードバック(OFB)、暗号フィードバック(CFB)などが含まれるが、これらに限定されない。ECBは、メッセージがある一定の長さのブロックに分離され、各ブロックが個別に暗号化される動作モードである。CBCは、メッセージがある一定の長さのブロックに分離され、各ブロックが暗号化の前に前の暗号文とXORされる動作モードである。CTRは、ブロック暗号を使用して、ある「カウンタ」の連続する値を暗号化し、ビットの出力ストリームをデータにXORして、暗号を作成する動作モードである。OFBは、ブロック暗号を使用して、初期ランダム値を暗号化し、暗号化の出力が次のブロックの暗号化に直接供給される動作モードである。これにより、プレーンテキストにXORすることができるビットのストリームが作成されて、暗号が作成される。CFBは、ブロック暗号を使用して、初期ランダム値を暗号化し、次いで、プレーンテキストにXORして暗号を作成する、動作モードである。次いで、この暗号は、次のブロックの暗号化に直接供給され、次のデータブロックにXORされ、以下同様に行われる。
【0055】
例として、いくつかの実施形態では、動作モードがCBCモードである場合、符号ベクトルは、共有秘密の一部である長さ2Nのビットベクトル、初期化ベクトル(IV)とXORされる。ただし、動作モードがECBモードの場合、IVが適用されない場合がある。代わりに、ECBモードの第1のステップ(またはCBCモードの第2のステップ)は、長さ2Nのバイナリベクトルである「シード」ベクトルを用いて符号ベクトルをXorすることであり得る。この長さ2Nシードベクトルは、ビットベクトル
【数36】
と呼ぶことができる。
【0056】
次に、非線形「層」を、例えば、非線形層1から非線形層Qまで順番に適用することができる。各非線形層には、Sボックス演算、転置
【数37】
)の場合)、および本明細書では
【数38】
と表される固定バイナリベクトルを用いた追加のXor演算が含まれる。ビットベクトル
【数39】
は、「シード」と呼ばれ、用語
【数40】
は、「アクティベータ」と呼ばれる。各非線形層を適用することには、転置P、それに続く4ビットのブロックまたは8ビットのブロックのいずれかでのSボックス変換、それに続くその層の
【数41】
をXorすることを適用することが含まれる。
【0057】
いくつかの実施形態では、非線形層のすべてが適用され、かつシステムがCBCモードにある場合、結果として生じる符号ベクトルは、保存され、その後、変換される次のボーベクトルのUBDM変換の初期化ベクトルとして使用される。
【0058】
ECBモードでの非線形変換の例示的な擬似コードは、以下に提供される。コンステレーションポイント
【数42】
の長さNのベクトル、ならびに
【数43】
の場合、共有秘密
【数44】
の場合、Pが与えられると、アルゴリズムへの入力は、コンステレーションポイントのボー
【数45】
である。
【数46】
【0059】
アルゴリズムの出力は、変換された値
【数47】
である(本明細書では、変更された符号ベクトルとも呼ばれる)。
【0060】
CBCモードでの非線形変換の例示的な擬似コードが以下に提供される。コンステレーションポイント
【数48】
の長さNのベクトル、ならびに
【数49】
の場合、共有秘密
【数50】
の場合、Pが与えられると、アルゴリズムへの入力は、ボー
【数51】
および初期化ベクトル
【数52】
である。
【数53】
【0061】
アルゴリズムの出力は変換された値
【数54】
および新しい初期化ベクトル
【数55】
であり、これは、変換される次のボーベクトルへの入力になる。
【0062】
いくつかの実施形態では、動作モードがECBモードであり、アルゴリズムが同じボーベクトルに2回適用される場合、同じ出力が2回とも得られる。他の実施形態では、動作モードがCBCモードである場合、初期化ベクトルが各変換に使用される(したがって、組み込まれる)ため、変換は連続するボーベクトルで実行されるので、たとえ入力が同じであっても、異なる出力が取得され、それによって、潜在的な攻撃者が克服するための追加の障害が提供され、情報セキュリティが強化され得る。
【0063】
前述の非線形演算が完了すると、以下で論じるように、「高速」UBDM変換の線形/ユニタリ部分が非線形演算の出力に対して実行される。
【0064】
例示的なブロックU(2)演算
いくつかの実施形態では、Uの動作は、以前の線形演算または非線形演算から生じるベクトルのダブレットに対して実行される。Uの動作は、成分のユニタリな「混合」を達成する。単一の2×2ブロックは、次の形式であり得る。
【数56】
【0065】
(1.3.1)の2×2ブロックの合計N/2は、単一の行列Uの対角線に沿って含めることができ、2Nの複素数を含めることができる(Nは、UBDMブロックサイズであり、システムがOFDMである場合、Nは、副搬送波の数を指すことができる)。データ検索の効率および速度を向上させるために、いくつかの実施態様では、複素数の全体ではなく、角度α、φ、θ、およびφのみが記憶される。前述の角度の各々は、複素数の全体を記憶する場合と比較して、より少ないビット(例えば、各角度に対して少なくとも8ビット)を使用して記憶することができる。そのため、記憶の目的で、Uごとに4 8(N/2)=16Nビットのみが必要になる場合がある。行列で実際に使用される複素数フロートを計算するときが来ると、例えば、θの8ビット値が整数mである(ここで、mは整数
【数57】
である)場合、θは、
【数58】
ラジアンに設定することができる。4つの角度(α、φ、θ、およびφ)の各々は、この方法で、所望の小数点以下の桁数まで計算することができる。
【0066】
ボーベクトルの2つの成分に対するU2×2の動作は、次のとおりである。
【数59】
【0067】
Uの動作は、非線形演算から生じるベクトルの成分の各ダブレットについて、上記に示されるとおりである。各Uの後の転置は、予測できない方法で可能な限り多くの異なる成分を混合/結合するのに役立つ。
【0068】
各Uの後の転置の例示的な擬似コードは次のとおりである。初期ベクトル
【数60】
(上記の非線形ステップの結果としての出力)、ならびに
【数61】
の場合、転置P、およびブロックU(2)行列Uのコレクションが与えられると、以下が実行される。
【数62】
【0069】
上記の擬似コードでは、Uは、あらゆる層のすべてのブロックU(2)行列のコレクションを表す。したがって、U[I]、式中
【数63】
は、l番目の層ブロック対角U(2)行列を表す。U[l][b]、式中
【数64】
は、層lの行列の対角線に沿ったb番目の2×2 U(2)ブロックを表す。転置の表記法は、転置Pが「リスト」形式であることを前提としている。例えば、P=(3,1,4,2)は、4つの要素の転置であり、各値は、その要素の結果のインデックスを示す。
【0070】
例示的な転置演算
高速UBDM変換の非線形部分および高速UBDM変換の線形部分の両方で、様々な異なる転置を使用することができる。このような転置を生成および記憶するための例示的な効率的な方法を以下に示す。
【0071】
N個のオブジェクトの場合、N!固有の転置が存在することに留意されたい。言い換えると、マップが整数[0、N!)から定義されている場合、そのような1つの整数をランダムに生成し、例えば、レーマー符号を使用して対応する転置にマッピングすることができる。レーマー符号は、転置から整数への転換(またはマッピング)、および整数から転置への転換(またはマッピング)を高速かつ効率的な方法で容易にする。整数を転置にマッピングする例を以下で論じる。
【0072】
N=4と仮定する。4!=24が与えられると、24の転置が存在し、整数0…23を使用してラベル付けすることができる。これらの整数のうちの1つは、最初にランダムに選択することができる。選択した整数が17であると仮定する。次に、整数は、例えば、次のように、10進数から「基数階乗」に転換される。
17÷1=17余り0(1.4.1)
17÷2=8余り1(1.4.2)
8÷3=2余り2(1.4.3)
2÷4=0余り2(1.4.4)
【0073】
商が0(任意選択で余りを有する)になると転換は終了する。次いで、階乗式は、次のように余り値を使用して取得される。
2×3!+2×2!+1×1!+0×0!=2×6+2×2+1×1=12+4+1=17(1.4.5)
【0074】
(2,2,1,0)と書くことができる整数の階乗表現が取得されると、次のアルゴリズムが実行される。プロセスは、右端の成分から始まり、左に移動する。各ステップで、問題になっている成分の右側にあるあらゆる値は、問題になっている成分以上である場合、かつその場合に限り、1ずつ増加する。上記の例の場合、
【数65】
【0075】
上記のリストの最後の項(2,3,1,0)は、転置を表す。転置の各要素は、Pの列に対応し、Pの各列内の位置は、下向きの垂直方向の位置0、1、2、および3である。これは、第1の要素が位置2に移動し、第2の要素が位置3に移動し、第3の要素が位置1に移動し、最後の要素が位置0に移動することを示す。この転置の行列表現は次のとおりである。
【数66】
【0076】
整数が8である別の例を考えてみる。階乗表現は、次のとおりである。
8÷1=8余り0
8÷2=4余り0
4÷3=1余り1
1÷4=0余り1
【0077】
したがって、実際には、
1×3!+1×2!+0×1!+0×0!=8。(1.4.8)
【0078】
次に、
【数67】
【0079】
これは、転置行列に対応する。
【数68】
【0080】
いくつかの実施形態では、所与のNの転置を生成するために、0~N!-1のランダムな整数が選択され、基数階乗に転換される。結果の配列は、転置に転換される。0~N!-1の整数に対応するためのビット数は、例えば、スターリングの近似を使用して決定され得、これは、いくつかの実施態様では、わずかに過大評価される場合がある。次いで、結果のビット文字列を整数に転換した後、その整数をその基数階乗形式に転換するのではなく、各値のビット数を直接概算することができる。基数階乗の一般的な数値は、次の形式であることに留意されたい。
x=a×0!+a×1!+a×2!+a×3!+…(1.4.11)
【0081】
値aは0~nであり、各値に対して読み取られるビット数を表す。一例として、N=8と仮定する。したがって、読み取られるおおよそのビット数は次のとおりである。
【数69】
【0082】
次に、16個のランダムビットのリストを考える(例えば、MathematicaのPRNG関数などの疑似乱数生成器を使用する)。
(0,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0)
【0083】
上記の16個のランダムビットのリストの第1の項は、係数0!であり、これは0であるため、その項は無視することができる。上記の16個のランダムビットのリストの第2の項は、係数1!であり、0または1のいずれかである。上記の第1のビット(この場合は左端)が0であるとすると、a=0である。次いで、その第1のビットが16個のランダムビット文字列のリストから切り取られ(削除され)、次の15ビットのリストが残る。
(0,1,0,0,0,1,0,1,0,0,1,0,1,1,0)
【0084】
次に、値aが取得される。この値は0、1、または2であり得るため、aは、2ビットで表される。2ビットはちょうど3つ以上の可能値を記憶することができるため、値mod 2+1=3を取ることを考える。次の2ビット(上記の15ビットのリストの左端の2ビット)は、0および1であり、1の値(連結すると、つまり「01」)を有するため、aは、a=1に設定される。上記の15ビットのリストから最初の2ビットを再び切り取る(削除する)と、次の13ビットのリストが残る。
(0,0,0,1,0,1,0,0,1,0,1,1,0)
【0085】
次に、aの場合、値は、0、1、2、または3であり得、したがって、aは、2ビットで表される。最初の2ビット(上記の13ビットのリストの左端の2ビット)は、0および0であり、0の値(連結すると、つまり「00」)を有するため、aは、a=0に設定される。上記の13ビットのリストから最初の2ビットを再び切り取る(削除する)と、次の11ビットのリストが残る。
(0,1,0,1,0,0,1,0,1,1,0)
【0086】
次に、aの場合、値は、0、1、2、3、または4であり得、したがって、aは、3ビットで表される。次の3ビット(上記の11ビットのリストの左端の3ビット)は、(0,1,0)であり、2の値(連結すると、つまり「010」)を有するため、aは、a=2に設定される。上記の11ビットのリストから最初の3ビットを切り取る(削除する)と、次の8ビットのリストが残る。
(1,0,0,1,0,1,1,0)
【0087】
次に、aの場合、6つの値が存在し、したがって、aは、3ビットで表され、この例では(上記の8ビットのリストの左端の3ビットを読み取る)、(1,0,0)、つまり4である。したがって、a=4であり、上記の8ビットのリストから最初の3ビットを切り取る(削除する)と、次の5ビットのリストが残る。
(1,0,1,1,0)
次に、aは、3ビットで表され、この例では(上記の5ビットのリストの左端の3ビットを読み取る)、(1,0,1)、つまり5であるため、a=5である。上記の5ビットのリストから最初の3ビットを切り取る(削除する)と、次の2ビットが残る。
(1,0)
最後に、a については、8つの可能性があり、したがって、a は3ビットで表される。2ビットだけが残るため、追加の1ビットはランダムに生成され(この場合、1)、リストに追加されて、
(1,0,1)
を生成する。したがって、a =5となる。
余剰ビットの追加は、以下の式を用いて、予測し得る。
【数70】
【0088】
N=8の場合、式1.4.13は、17の値を生成する。追加されたビットを備えた元のランダムビット文字列(現在は長さ17)は、
(0,0,1,0,0,0,1,0,1,0,0,1,0,1,1,0,1)であり、
上記のように、これは(5,5,4,2,0,1,0,0)の基数階乗数を生成する。基数階乗数に転置を適用すると、以下を生成する。
【数71】
【0089】
最後の(下の)行は、8つのオブジェクトの有効な転置であることに留意されたい。
【0090】
いくつかの実施形態では、例えば、以下のように、転置が反転される。最初に、転置は第1の行に配置され、関連する整数は第1の行の下の第2の行に連続した順序で配置される。上記の例では、行は、次のように表示される。
【数72】
【0091】
次に、一番上の行が順番になるように列が再配置され、次のようになる。
【数73】
【0092】
1.4.16の一番下の行は、逆転置である。この結果は、対応する行列を検証することで確認することができる。(5,6,4,2,0,3,1,7)に対応する行列(上記の規則を使用)は次のとおりである。
【数74】
【0093】
逆転置(4,6,3,5,2,0,1,7)は、以下の行列に対応する。
【数75】
【0094】
1.4.17および1.4.18の検証から、行列が互いに逆行列であることが明らかである(つまり、一方が他方の転置である)。
【0095】
ピーク対平均電力比(PAPR)低減の変更
いくつかの実施形態では、PAPRが低減するように、高速UBDM変換への変更が実行される。このような変更を実装するには、アルゴリズムに1つ以上のわずかな変更を加える必要があり得るが、ジェネレータビットの総数およびその使用法はほぼ同じであり得る。アルゴリズムに対するそのような変更の例を以下に概説する。
【0096】
非線形変換におけるPAPR低減
1つ以上の実施形態では、例えば、APSKコンステレーションの非正方形形状がUBDMの下で望ましくない膨らみをもたらす可能性があるため、APSKコンステレーションが使用される場合、高速UBDM変換の非線形部分への変更が実行される。例えば、点a+bおよびb+a、式中a>bを考える。正方形コンステレーションでは、値a+aiもコンステレーションの一部である可能性がある。円形APSKコンステレーションは、特にそのような「エッジ」コンステレーションポイントを有することを回避する。ただし、本明細書に記載するように高速UBDM変換を実行する場合、変換の非線形部分における大きさ変換の転置は、点a+ibおよびb+iaをa+aiおよびb+biに交換することを含み得る。点a+aiは、一般にa+biまたはb+aiのいずれよりも大きい大きさを有し、その結果、全体的なPAPRが増加する。このような影響を回避または軽減するために、次の例に例解するように、非線形変換で大きさベクトルが変換される方法に変更を加えることができる。
【0097】
N=4の場合を考える。大きさの転置は、長さ2N=8の転置によって定義される。例えば、転置は、(2,4,1,5,3,8,6,7)であり得る。転置は、最初に長さNの2つのリスト、各要素がN以下である第1のリスト、および各要素がNより大きい第2のリストに分けられ、転置に対する要素の出現順序は変更されない。現在の例では、2つのリストは(2,4,1,3)および(5,8,6,7)である。これらのリストのうちの第1のものは、N個の要素の有効な転置であることに留意されたい。次に、「上半分」(5,8,6,7)が2を法として縮小され、以下の変更された第2のリスト、(1,0,0,1)になる。
【0098】
いくつかの実施形態では、高速UBDM変換の非線形部分を実行するとき、これらのベクトルの両方(すなわち、第1のリストおよび変更された第2のリスト)を使用して、コンステレーションベクトルを変更する。元のコンステレーションベクトルが以下であると仮定する。
【数76】
【0099】
次いで、長さ2Nの大きさベクトルは、(a,b,a,b,a,b,a,b)である。絶対値表記(例えば、
【数77】
におけるバー)は、上記では省略されて、表記が乱雑になることが回避されているが、大きさベクトルには、実数部および虚数部だけでなく、実数部および虚数部の大きさが含まれていることに留意されたい。上記の高速UBDM変換手順では、長さ2Nの転置がコンステレーションベクトルに適用される。ただし、PAPR低減変換では、次のことが実行される。
【0100】
まず、大きさベクトルが2つのブロックに分割され、各数値の実数部および虚数部がペアになる。したがって、大きさベクトルは分割された大きさベクトル((a,b)、(a,b)、(a,b)、(a,b))になる。次いで、分割された大きさベクトルは、元の長さ2Nの転置から生成された長さNの転置を使用して作用される。この場合、長さNの転置は、(2,4,1,3)であるため、分割された大きさベクトルは、並べ替えられた分割された大きさベクトル((a,b)、(a,b)、(a,b)、(a,b))になる。次に、上記のベクトルから生成されたバイナリベクトルを使用して、以下、((b,a)、(a,b)、(a,b)、(b,a))が取得される。
【0101】
次いで、前述のものがベクトルに再配置される。
【数78】
【0102】
ベクトル1.5.2の数値の各々の符号は、前述の高速UBDM変換中の符号ビットの例示的な非線形演算と同様の手順を使用して決定することができる。いくつかの実施形態では、高速UBDM変換の非線形部分に対する前述の変更は、PAPRの低減が望まれる場合、および/またはAPSKコンステレーションが使用されている場合に使用される。
【0103】
線形変換におけるPAPRの低減
1つ以上の実施形態では、例えば、ボーベクトル(1.3.2)の0の値を制限するために、高速UBDM変換の線形/ユニタリ部分への変更が実行される。上記のブロックU(2)演算のセクションでは、角度ビットを使用して、[0,2π]の一様分布から角度を選択した。PAPRを低減するために、この角度の値は、例えば、値
【数79】
を選択することにより、0に近くなるようにスケーリングされ得る。値rが1に近いほど、PAPRは大きくなる。r=0の場合、特にコンステレーションがQAMである場合、PAPRは、元のPAPRと同じになる。コンステレーションがAPSKである場合、前のセクションで説明した高速UBDM変換の非線形部分への変更も実行され得る。いくつかの実施形態では、r=0.01の値が望ましい。区間[0,1]以外の値も許容され得る。
【0104】
rの値が選択されると、ジェネレータビットによって選択された値θは、次のように変更される。
【数80】
【0105】
【数81】
は、次いで、ブロックU(2)変換で使用することができる。前述の変更は、生成されるジェネレータビットを変更せずに実装することができる。言い換えると、同じジェネレータビットを使用することができるが、θ値は、U(2)ブロックの各々でスケーリングされる。
【0106】
MEM拡散
いくつかの実施形態では、「MEM」演算は、高速UBDM変換の非線形部分の間に実行される。MEM演算には、符号ベクトル
【数82】
を取ることと、それをバイナリベクトル(例えば、
【数83】
であり、(-1,-1,1,-1,-1,-1,1,1)ではない)として扱うことと、ベクトルのハミング重みが偶数である場合、かつその場合のみ、各ビットをフリッピングすることと、が含まれる。ハミング重みまたは文字列は、使用されているアルファベットのゼロシンボルとは異なるシンボルの数である。いくつかの例は次の通りである。
(1,1,0,1,1,1,0,0)→(1,1,0,1,1,1,0,0)
(1,1,0,1,1,1,0,1)→(0,0,1,0,0,0,1,0)
(0,1,0,1,1,1,1,1)→(1,0,1,0,0,0,0,0)
(0,1,0,1,0,1,0,0)→(0,1,0,1,0,1,0,0)
【0107】
代替的に、符号ベクトルが{±1}を単位として表される場合、演算は次のようになり得る。
【数84】
式中
【数85】
は、
【数86】
におけるbの出現回数を返す。MEM演算は、例えば、拡散を迅速かつ効率的に最大化するために使用することができる。
【0108】
非線形変換の例
以下は、1つ以上の実施形態による、高速UBDM変換の非線形部分の例示的な実施態様である。16-QAMブロックについて考える。
(3-i,-1+i,-3-3i,1+3i)(0.-1.1)
【0109】
(0.-1.1)で観察できるように、この例では、ブロックサイズは、N=4である。
【0110】
最初に、ブロックは2つの別々の長さの2Nベクトルに分割または分解され、第1のベクトルは実数部および虚数部の大きさをキャプチャし、第2のベクトルは実数部および虚数部の符号をキャプチャする。この例では、これらの第1のベクトルおよび第2のベクトルは次のとおりである。
【数87】
【0111】
大きさベクトルの場合、転置が適用され、転置は、ジェネレータビット/キー値に依存する。例えば、転置「π」は、以下であり得る。
【数88】
【0112】
転置(0.-1.3)を大きさベクトルに適用すると、次の新しい大きさベクトルが生成される。
【数89】
【0113】
なお、
【数90】
の元々6番目の場所の値が、1番目の場所に移動し、元々2番目の場所の値が、2番目の場所に留まり、4番目の場所の値が、3番目の場所に移動し、以下同様である。
【0114】
次に、ブロック暗号が符号ビットに適用される。例えば、符号値は、次のようにビットに転換することができる。
(1,-1,-1,1,-1,-1,1,1)→(0,1,1,0,1,1,0,0)(0.-1.5)
【0115】
この例では、「Substitution-Permutation-Network」(SPN)暗号が使用されるが、他のタイプのブロック暗号も機能する(例えば、Feistel暗号、Lai-Massey暗号など)。
【0116】
(0.-1.5)の符号ビットは、ジェネレータ/シード値とXorされる。例えば、シード値は、(1,0,0,1,1,1,1,0)であり得る。Xor演算の出力は、以下である。
【数91】
【0117】
次に、「置換ボックス」または「sボックス」が適用される。Sボックスを適用することは、事前定義されたブロックサイズのビットのコレクションを同じブロックサイズの他のビットに置き換えることを含む。現在の例では、次のルックアップテーブルで定義された4ビットのSボックスについて考える。
(0,0,0,0)→(0,0,0,0)(1,0,0,0)→(1,0,0,0)
(0,0,0,1)→(0,0,0,1)(1,0,0,1)→(1,0,1,1)
(0,0,1,0)→(0,0,1,0)(1,0,1,0)→(1,1,0,0)
(0,0,1,1)→(1,1,0,1)(1,0,1,1)→(1,0,0,1)
(0,1,0,0)→(0,1,0,0)(1,1,0,0)→(0,0,1,1)
(0,1,0,1)→(0,1,1,1)(1,1,0,1)→(1,1,1,0)
(0,1,1,0)→(1,1,1,1)(1,1,1,0)→(1,0,1,0)
(0,1,1,1)→(0,1,1,0)(1,1,1,1)→(0,1,0,1)(0.-1.7)
【0118】
このsボックスを適用するために、(0.-1.6)のビット文字列(1,1,1,1,0,0,1,0)は、各々4ビットのブロックに分解される。これらのブロックは、(1,1,1,1)および(0,0,1,0)である。Sボックスを使用すると、(1,1,1,1)→(0,1,0,1)および(0,0,1,0)→(0,0,1,0)であることが観察され得る。
【0119】
したがって、ビット文字列はまさに以下である。
(0,1,0,1,0,0,1,0)(0.-1.8)
【0120】
次に、転置がビット文字列に適用される。現在の例では、転置π=(1,3,5,7,2,4,6,8)が使用され、ビット文字列は次のようになる。
π(0,1,0,1,0,0,1,0)=(0,0,0,1,1,1,0,0)(0.-1.9)
【0121】
次いで、別の8ビット文字列をXorし、sボックスを適用し、次に転置を適用するなどして、前述のプロセスが繰り返される。最後に、最終的な8ビット文字列が取得され、これは、例えば、次のように符号に転換されて戻される(以下は変換の任意の繰り返しを反映していないことに留意されたい)。
(0,0,0,1,1,1,0,0)→(1,1,1,-1,-1,-1,1,1)(0.-1.10)
【0122】
次いで、ベクトル(0.-1.10)は、並べ替えられた大きさベクトル
【数92】
と結合され、長さNの複素数ベクトルが再構成される。
(3+i,i-3i,-3i-i,1+3i)(0.-1.11)
【0123】
ベクトル(0.-1.11)は、コンステレーションポイントのベクトルであり、その後、高速UBDM変換の線形/ユニタリ部分(層/ラウンド)に渡される。
【0124】
上記の繰り返し(Xor→sボックス→転置)は、「ラウンド」または「層」と呼ばれ得る。Xor値は、「ラウンドキー」、「シード」、または「アクティベータ」と呼ばれ得る。いくつかの実施形態では、同じSボックスが、複数の層からの各層において適用される。他の実施形態では、異なるSボックスが、複数の層からの各層において適用される。さらに他の実施形態では、2つ以上の異なるSボックスを、複数の層内で使用することができる。転置は、ラウンド/層ごとに同じであり得るか、または毎回異なり得る。同様に、いくつかの実施形態では、同じ転置が、複数の層からの各層において使用される。他の実施形態では、異なる転置が、複数の層からの各層において使用される。さらに他の実施形態では、2つ以上の異なる転置が、複数の層内で使用される。
【0125】
層/ラウンドの数、Xor値(シード/ジェネレータ)の実際の値、およびsボックスの値の各々は、可変であり得、および/または事前定義することができる。層/ラウンドの数、Xor値(シード/ジェネレータ)の実際の値、およびsボックスの値の各々が、キー設定または固定されているかどうかは、可変であり得、および/または事前定義することができる。上記の例では、ブロックサイズはN=4であったため、
【数93】
の長さは、8であったが、ブロックのサイズは、可変であり得、および/または事前定義することができる。上記の例では、sボックスのサイズは4であったが、sボックスのサイズは、可変であり得、および/または事前定義することができ、様々なサイズ(例えば、8)の任意のサイズにすることができる。上記の例にかかわらず、転置、Sボックス、追加などがスタック/実装される順序および方法は、可変であり得、および/または事前定義することができる。
【0126】
図5は、一実施形態による、高速UBDM変換を実装するための例示的な方法500を例解するフローチャートである。図5に示されるように、方法500は、510で、プロセッサを介して第1のベクトルを受信し、512で、第1のベクトルを分割して、大きさベクトルおよび符号ベクトルを生成することを含む。変更された大きさベクトルおよび変更された符号ベクトルを含む第2のベクトルは、514Aで、大きさベクトルに転置を適用して、変更された大きさベクトルを生成することと、514Bで、アルゴリズムに基づいて、符号ベクトルを中間符号ベクトルに転換することと、514Cで、中間符号ベクトルに複数の非線形層を適用して変更された符号ベクトルを生成することと、を行うことによって、514で、生成される。514Bで符号ベクトルを転換することは、任意選択で初期化ベクトルに基づいている。複数の非線形層からの各非線形層は、本明細書で論じられるように、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも1つ、またはそれらの任意の組み合わせを、含む。複数の線形層は、516で、第2のベクトルに適用されて、第3のベクトルが生成され、第3のベクトルは、第1のベクトルの変換されたバージョンである。第3のベクトルを表す第1の信号は、518で、例えば、少なくとも1つの伝送機に、少なくとも1つの伝送機から少なくとも1つの受信機への、変換されたデータベクトルを表す第2の信号の伝送のために送信される。いくつかの実施態様では、大きさベクトルに適用される転置は、第1のベクトルの総電力を減少させない。
【0127】
いくつかの実施形態では、方法500はまた、プロセッサの動作の暗号化モードに基づいてアルゴリズムを選択することを含む。アルゴリズムは、Xor演算を含むことができ、プロセッサの暗号化動作モードは、暗号ブロック連鎖(CBC)モードまたは電子コードブック(ECB)モードであり得る。複数の非線形層における非線形層の数は、複数の線形層における線形層の数と同じであり得るか、またはそれとは異なり得る。
【0128】
いくつかの実施形態では、複数の線形層における線形層の数(「L」)または複数の非線形層における非線形層の数(「Q」)のうちの少なくとも一方は、[log(N)]に等しい。
【0129】
いくつかの実施形態では、複数の非線形層における非線形層の数、または複数の線形層における線形層の数のうちの少なくとも一方は、性能制約および/またはセキュリティ制約(例えば、所与の通信システムまたはその構成要素)に基づいている。
【0130】
図6は、一実施形態による、高速UBDM変換を実装するための例示的な方法600を例解するフローチャートである。図6に示すように、方法600は、620で、プロセッサを介して、入力ベクトルを受信することを含み、入力ベクトルは、複数の複素数を含む。変換されたベクトルは、622Aで、入力ベクトルに関連付けられた大きさベクトルに転置を適用して、変更された大きさベクトルを生成し、622Bで、アルゴリズム(例えば、Xor演算を含む)および複数の非線形層を、入力ベクトルに関連付けられた符号ベクトルに適用して、変更された符号ベクトルを生成し、変更された大きさベクトルおよび変更された符号ベクトルは中間ベクトルを定義し、622Cで、複数の線形層を中間ベクトルに適用して、変換されたベクトルを生成することによって、622で、入力ベクトルに基づいて、かつプロセッサを介して生成される。方法600はまた、624で、例えば、変換されたベクトルを表す信号を少なくとも1つの伝送機に、少なくとも1つの伝送機から少なくとも1つの受信機への、変換されたベクトルを表す第2の信号の伝送のために送信することを含む。いくつかの実施態様では、大きさベクトルに適用される転置は、入力ベクトルの総電力を減少させない。
【0131】
いくつかの実施形態では、複数の非線形層からの各非線形層は、転置、Sボックス変換、拡散線形演算、またはXor演算のうちの少なくとも1つを含む。方法600はまた、プロセッサの暗号化動作モード(例えば、暗号ブロック連鎖(CBC)モードまたは電子コードブック(ECB)モード)に基づいてアルゴリズムを選択することも含むことができる。
【0132】
複数の非線形層における非線形層の数は、複数の線形層における線形層の数と同じであり得るか、またはそれとは異なり得る。複数の非線形層における非線形層の数、または複数の線形層における線形層の数のうちの少なくとも一方は、性能制約またはセキュリティ制約のうちの少なくとも一方に基づき得る。
【0133】
いくつかの実施形態では、複数の線形層における線形層の数(「L」)または複数の非線形層における非線形層の数(「Q」)のうちの少なくとも一方は、[log(N)]に等しい。
【0134】
様々な実施形態を上述したが、それらは、限定的なものではなく、例としてのみ提示されていることを理解されたい。上記の方法および/または概略図が特定の順序で発生する特定のイベントおよび/またはフローパターンを示す場合、特定のイベントおよび/またはフローパターンの順序は変更され得る。実施形態が特に示されて記載されてきたが、形態および詳細の様々な変更が行われ得ることが理解されるであろう。加えて、ステップのいくつかは、可能な場合は並行プロセスで同時に実行することもでき、上述したように順次実行することもできる。様々な実施形態が、特定の特徴および/または構成要素の組み合わせを有するものとして説明されてきたが、他の実施形態は、本明細書に記載の実施形態のいずれかからの、任意の特徴および/または構成要素の任意の組み合わせまたは部分的組み合わせを有することが可能である。さらに、様々な実施形態は、特定の計算装置に関連付けられた特定のエンティティを有するものとして説明されているが、他の実施形態では、異なるエンティティを他のおよび/または異なる計算装置に関連付けることができる。
【0135】
本明細書に記載のシステムおよび方法は、ソフトウェア(メモリに記憶され、および/またはハードウェア上で実行される)、ハードウェア、またはそれらの組み合わせによって実行され得ることが意図されている。ハードウェアモジュールは、例えば、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/または特定用途向け集積回路(ASIC)を含み得る。ソフトウェアモジュール(ハードウェア上で実行)は、Unixユーティリティ、C、C++、Java(商標)、JavaScript、Ruby、SQL、SAS(登録商標)、Python、Fortran、Rプログラミング言語/ソフトウェア環境、VisualBasic(商標)、ならびに他のオブジェクト指向、手続き型、またはその他のプログラミング言語および開発ツールを含む、様々なソフトウェア言語(例えば、コンピュータコード)で表現することができる。コンピュータコードの例は、これらに限定されるものではないが、マイクロコードまたはマイクロ命令、コンパイラによって生成されるような機械命令、ウェブサービスを生成するために使用されるコード、およびインタープリタを使用するコンピュータによって実行される高レベル命令を含むファイルを含む。コンピュータコードの追加の例は、これらに限定されるものではないが、制御信号、暗号化コード、および圧縮コードを含む。本明細書に記載のデバイスの各々は、上記のように1つ以上のプロセッサを含むことができる。
【0136】
本明細書に記載のいくつかの実施形態は、様々なコンピュータ実装動作を実行するための命令またはコンピュータコードを有する非一時的コンピュータ可読媒体(非一時的なプロセッサ可読媒体またはメモリとも呼ばれ得る)を備えるデバイスに関する。コンピュータ可読媒体(またはプロセッサ可読媒体)は、それ自体が一時的な伝播信号(例えば、空間またはケーブルなどの伝送媒体上で情報を搬送する伝播電磁波)を含まないという意味で非一時的である。媒体およびコンピュータコード(コードとも呼ばれ得る)は、特定の1つ以上の目的のために設計および構築されたものとすることができる。非一時的コンピュータ可読媒体の例は、ハードディスクおよびソリッドステート記憶デバイスなどの磁気記憶媒体、コンパクトディスク/デジタルビデオディスク(CD/DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、およびホログラフィックデバイスなどの光学記憶媒体、光ディスクなどの光磁気記憶媒体、搬送波信号処理モジュール、ならびに特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、読み取り専用メモリ(ROM)、およびランダムアクセスメモリ(RAM)デバイスなど、プログラムコードを記憶して実行するように特別に構成されているハードウェアデバイスを含むが、これらに限定されない。本明細書で説明される他の実施形態は、例えば、本明細書で論じられる命令および/またはコンピュータコードを含むことができるコンピュータプログラム製品に関する。
【0137】
プロセッサ実行可能命令は、1つ以上の計算装置によって実行されるプログラムモジュールなどの多くの形式であり得、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、およびプロセッサに、特定のタスクを実行させるか、または特定のデータタイプを実装させる他の適切なコードを含むことができ、様々な実施形態に必要に応じて機能を組み合わせることができ、および/または機能を分散することができる。
【0138】
本明細書および特許請求の範囲で使用される「および/または」という語句は、そのように結合された要素の「いずれかまたは両方」、すなわち、結合的に存在する場合もあれば、分離的に存在する場合もある要素を意味すると理解されるべきである。「および/または」でリストされた複数の要素は、同じように、すなわち、そのように結合された要素の「1つ以上」で解釈されるべきである。他の要素が、「および/または」節によって具体的に識別される要素以外に、具体的に識別されるこれらの要素に関連しようが関連しまいが、任意で存在し得る。したがって、非限定的な例として、「備える」などの制限のない言語と組み合わせて使用されるとき、「Aおよび/またはB」への言及は、一実施形態で(任意でB以外の要素を含む)Aのみ、別の実施形態で(任意でA以外の要素を含む)Bのみ、さらに別の実施形態で(任意で他の要素を含む)AおよびBの両方などを指し得る。
図1
図2
図3
図4
図5
図6