(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-21
(54)【発明の名称】宇宙アプリケーションにおける統合暗号回路
(51)【国際特許分類】
H04L 9/10 20060101AFI20231214BHJP
G06F 21/60 20130101ALI20231214BHJP
【FI】
H04L9/10 A
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560247
(86)(22)【出願日】2021-12-13
(85)【翻訳文提出日】2023-08-09
(86)【国際出願番号】 US2021063134
(87)【国際公開番号】W WO2022126022
(87)【国際公開日】2022-06-16
(32)【優先日】2020-12-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523223087
【氏名又は名称】テザーズ アンリミテッド,インコーポレイテッド
(74)【代理人】
【識別番号】100086232
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【氏名又は名称】富岡 潔
(72)【発明者】
【氏名】セシルミス,セッキン ケマル
(72)【発明者】
【氏名】マーレン,ブラッド
(72)【発明者】
【氏名】カスティーヨ,ディラン デル
(72)【発明者】
【氏名】ジュラコフスキー,ナット
(72)【発明者】
【氏名】シリロ,ジェシー
(57)【要約】
暗号集積回路が、入力データパケットのストリームを受信するように構成された入力モジュールと、入力モジュールに結合された複数の暗号モジュールであって、それぞれ、入力データパケットを受信するための入力ポートと、出力データパケットを送信するための出力ポートと、を備えるとともに、受信した入力データパケットを暗号化または復号化して出力データパケットを生成するように構成された、複数の暗号モジュールと、複数の暗号モジュールから出力データパケットを受信し、出力データパケットを含む出力データストリームを生成するように構成された出力モジュールと、を含んでおり、ここで、入力モジュール、出力モジュール、および複数の暗号モジュールが、単一の集積回路基板上に実装され、入力モジュールが、複数の暗号モジュールの間に入力データパケットを分配するように構成される。
【特許請求の範囲】
【請求項1】
暗号集積回路であって、
入力データパケットのストリームを受信するように構成された入力モジュールと、
前記入力モジュールに結合された複数の暗号モジュールであって、各暗号モジュールが、入力データパケットを受信するための入力ポートと、出力データパケットを送信するための出力ポートと、を備えるとともに、受信した入力データパケットを暗号化または復号化して出力データパケットを生成するように構成された、複数の暗号モジュールと、
前記複数の暗号モジュールから出力データパケットを受信し、前記出力データパケットを含む出力データストリームを生成するように構成された出力モジュールと、
を備え、
前記入力モジュール、前記出力モジュール、および前記複数の暗号モジュールが、単一の集積回路基板上に実装され、
前記入力モジュールが、前記複数の暗号モジュールの間に前記入力データパケットを分配するように構成された、暗号集積回路。
【請求項2】
前記複数の暗号モジュールが、2つ以上の暗号モジュールを備えた、請求項1に記載の回路。
【請求項3】
前記複数の暗号モジュールが、4つ以上の暗号モジュールを備えた、請求項1に記載の回路。
【請求項4】
前記複数の暗号モジュールの各々が、前記受信した入力データパケットを暗号化または復号化するための暗号化キーで構成される、請求項1に記載の回路。
【請求項5】
前記複数の暗号モジュールの各々が、共通の暗号化キーで構成される、請求項4に記載の回路。
【請求項6】
前記複数の暗号モジュールの第1のグループが、第1の暗号化キーで構成され、前記複数の暗号モジュールの第2のグループが、前記第1の暗号化キーとは異なる第2の暗号化キーで構成される、請求項4に記載の回路。
【請求項7】
前記複数の暗号モジュールの各々が、異なる暗号化キーで構成される、請求項4に記載の回路。
【請求項8】
前記入力モジュールが、各入力データパケットのヘッダを、前記入力モジュールによって前記入力データパケットが分配される前記複数の暗号モジュールのうちの1つの指定を含む、暗号化ヘッダで置き換えるように構成される、請求項1に記載の回路。
【請求項9】
前記出力モジュールが、各出力データパケットの暗号化ヘッダを出力ヘッダに置き換えるように構成される、請求項1に記載の回路。
【請求項10】
請求項1に記載の暗号集積回路と、
前記暗号集積回路に接続された電子プロセッサと、
を備え、
前記電子プロセッサが、前記暗号集積回路のアクティブ化された暗号モジュールを使用して、入力データパケットのストリームのデータパケットを暗号化または復号化するように、複数の暗号モジュールのサブセットを選択的にアクティブ化または非アクティブ化するように構成された、暗号化システム。
【請求項11】
前記システムが、宇宙船の電源に接続され、
前記電子プロセッサが、前記電源の残りの電力量を測定し、前記電源の残りの電力量に基づいて、入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を調整するように構成された、請求項10に記載のシステム。
【請求項12】
前記システムが、宇宙船の電源に接続され、
前記電子プロセッサが、前記宇宙船の電力消費率を測定し、前記電力消費率に基づいて、入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を調整するように構成された、請求項10に記載のシステム。
【請求項13】
前記電子プロセッサが、前記入力データパケットのストリームの帯域幅を決定し、前記暗号集積回路のデータスループットレートが前記入力データパケットのストリームの帯域幅と少なくとも同じ大きさとなるように、前記入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を調整するように構成された、請求項10に記載のシステム。
【請求項14】
前記暗号集積回路のデータスループットレートが前記入力データパケットのストリームの帯域幅を超えるように、前記電子プロセッサが、前記入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を、最小数のアクティブ化された暗号モジュールに調整するように構成された、請求項13に記載のシステム。
【請求項15】
前記電子プロセッサに結合された温度センサをさらに備え、前記電子プロセッサが、前記暗号集積回路の温度を測定し、前記測定された温度が温度閾値を超えないように、アクティブ化された暗号モジュールの数を調整するように構成された、請求項10に記載のシステム。
【請求項16】
複数の温度センサをさらに備え、前記複数の温度センサの各温度センサが、前記複数の暗号モジュールのうちの1つと接触し、前記電子プロセッサが、各暗号集積回路の温度を測定し、前記測定された温度が温度閾値を超えた暗号モジュールを非アクティブ化するように構成された、請求項10に記載のシステム。
【請求項17】
前記電子プロセッサおよび前記入力モジュールのうちの少なくとも1つが、前記複数の暗号モジュールのうち障害が発生した暗号モジュールを非アクティブ化するように構成された、請求項10に記載のシステム。
【請求項18】
前記電子プロセッサは、ある暗号モジュールが入力データパケットを受信し、出力データパケットを生成しなかった場合に、前記複数の暗号モジュールのうちのその暗号モジュールが故障したと判定するように構成される、請求項10に記載のシステム。
【請求項19】
前記電子プロセッサは、前記複数の暗号モジュールのうちの1つの暗号モジュールの電気的特性を測定し、前記測定された電気的特性の値が、測定された電気的特性の値の許容範囲から外れている場合に、その暗号モジュールが故障していると判定するように構成される、請求項10に記載のシステム。
【請求項20】
前記測定された電気的特性が、前記暗号モジュールの抵抗またはインピーダンスを備えた、請求項19に記載のシステム。
【請求項21】
前記測定された電気的特性が、前記暗号モジュールにわたる電圧降下、または前記暗号モジュールを流れる電流を備えた、請求項19に記載のシステム。
【請求項22】
前記入力モジュールが、前記複数の暗号モジュールのそれぞれの可用性に基づいて、前記複数の暗号モジュールの間に前記入力データパケットを分配するように構成される、請求項10に記載のシステム。
【請求項23】
前記複数の暗号モジュールの各暗号モジュールは、前記入力モジュールから入力データパケットを受信するための前記暗号モジュールの可用性を示すように、前記入力モジュールに信号を送信するように構成される、請求項22に記載のシステム。
【請求項24】
前記入力モジュールは、各入力データパケットのサイズに基づいて、前記複数の暗号モジュールの間に前記入力データパケットを分配するように構成される、請求項10に記載のシステム。
【請求項25】
(a)前記入力モジュールが、第1の複数のf個の入力データパケットを、それらのf個の入力データパケットのサイズに応じて、f個の異なる暗号モジュールの間に、前記モジュールの第1の順序で分配するように構成され、
(b)前記入力モジュールが、第2の複数のf個の入力データパケットを、前記f個の異なる暗号モジュールの間に、前記モジュールの第1の順序とは逆の、前記モジュールの第2の順序で分配するように構成された、請求項24に記載のシステム。
【請求項26】
前記入力モジュールが、追加の複数のf個の入力データパケットを用いてステップ(a)および(b)を繰り返すように構成された、請求項25に記載のシステム。
【請求項27】
前記入力モジュールが、前記複数の暗号モジュールのそれぞれに対する累積データ処理負荷に基づいて、前記複数の暗号モジュールの間に前記入力データパケットを分配するように構成された、請求項10に記載のシステム。
【請求項28】
前記入力モジュールが、連続する各入力データパケットを、前記複数の暗号モジュールのうち、前記累積データ処理負荷が最小である暗号モジュールに分配するように構成された、請求項27に記載のシステム。
【請求項29】
前記入力モジュールが、各入力データパケットに関連付けられた暗号化または復号化プロトコルに基づいて、前記複数の暗号モジュールの間に前記入力データパケットを分配するように構成された、請求項10に記載のシステム。
【請求項30】
前記入力モジュールが、第1の暗号化プロトコルに関連付けられた入力データパケットを、前記複数の暗号モジュールの第1のサブセットに分配し、前記第1の暗号化プロトコルとは異なる第2の暗号化プロトコルに関連付けられた入力データパケットを、前記複数の暗号モジュールのうち、前記第1のサブセットとは異なる第2のサブセットに分配するように構成された、請求項29に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年12月11日に出願された米国特許仮出願第63/124,600号に対する優先権を主張し、その全内容は参照により本明細書に組み込まれる。
【0002】
本開示は、データストリームを処理するための集積回路および方法に関する。
【背景技術】
【0003】
宇宙における乗物は、衛星などの他の乗物や地上ステーションと機密データを送受信する。送信データへの干渉や傍受を防ぐために、データは暗号化される。
【発明の概要】
【課題を解決するための手段】
【0004】
宇宙空間での乗物との間のデータ送信は、データへのアクセス許可を持たない第三者によるデータの読み取り、変更、傍受を防ぐために頻繁に暗号化される。本明細書で説明されるデータストリームを処理するための集積回路および方法により、並列暗号化または復号化処理のためにデータストリームを複数の暗号処理モジュールの間に分割(partition)することが可能になる。例えば、データストリームを暗号化するには、まずデータストリームを個々のパケットに分割する。ヘッダがパケットに適用され、暗号化のために特定の暗号処理モジュールにパケットをルーティングできるようになる。パケットが暗号化された後、送信のために暗号化されたデータストリームに再組み立てされる。同様の分割技術を受信データストリームの復号化処理に使用することができる。
【0005】
複数の暗号処理モジュールを備えた集積回路を使用すると、受信または送信するデータストリームを複数のパケットに分割できるため、単一の暗号処理モジュールで達成するよりも高いデータスループットが得られる。さらに、複数のモジュールは集積回路に冗長性を提供し、1つのモジュールに障害が発生した場合でも、集積回路は残りの暗号モジュールを使用してデータストリームの暗号化および/または復号化を続行できるようにする。さらに、統合暗号回路内の各暗号モジュールは、異なる暗号化キーを使用してデータパケットを暗号化および/または復号化できるため、個々の暗号処理モジュールの定期的なキー更新が可能になり、複数のキーを使用してデータストリームを暗号化できるようになる。これにより、単一のキーを使用して暗号化されたデータストリームに比べて強化されたセキュリティが強化される。宇宙船に設置すると、複数の暗号処理モジュールを備えた集積回路による電力消費は、特定のモジュールを選択的にアクティブ化または非アクティブ化することで制御でき、それにより宇宙船上でのアクティブな電力管理が可能となる。
【0006】
一態様では、本開示は、入力データパケットのストリームを受信するように構成された入力モジュールと、入力モジュールに結合された複数の暗号モジュールであって、各暗号モジュールは、入力データパケットを受信するための入力ポート、および出力データパケットを送信するための出力ポートを含むとともに、受信した入力データパケットを暗号化または復号化して出力データパケットを生成するように構成された、複数の暗号モジュールと、複数の暗号モジュールから出力データパケットを受信し、出力データパケットを備えた出力データストリームを生成するように構成された出力モジュールと、を備え、入力モジュール、出力モジュール、および複数の暗号モジュールが、単一の集積回路基板上に実装され、入力モジュールが、複数の暗号モジュールの間に入力データパケットを分配するように構成された、暗号集積回路を特徴とする。
【0007】
回路の実施形態は、以下の特徴のいずれか1つ以上を含むことができる。
【0008】
複数の暗号モジュールは、2つ以上(例えば、4つ以上)の暗号モジュールを含むことができる。複数の暗号モジュールの各々は、受信した入力データパケットを暗号化または復号化するための暗号化キーで構成することができる。複数の暗号モジュールのそれぞれは、共通の暗号化キーで構成することができる。
【0009】
複数の暗号モジュールの第1のグループは第1の暗号化キーで構成され、複数の暗号モジュールの第2のグループは第1の暗号化キーとは異なる第2の暗号化キーで構成される。複数の暗号モジュールの各々は、異なる暗号化キーを使用して構成することができる。
【0010】
入力モジュールは、各入力データパケットのヘッダを、入力モジュールによって入力データパケットが配信される複数の暗号モジュールのうちの1つの指定を含む、暗号化ヘッダで置き換えるように構成される。出力モジュールは、各出力データパケットの暗号化ヘッダを出力ヘッダに置き換えるように構成される。
【0011】
回路の実施形態は、特に明記しない限り、同じまたは異なる実施形態に関連して説明される個々の特徴の任意の組み合わせを含む、本明細書で説明される他の特徴のいずれかを含むこともできる。
【0012】
別の態様では、本開示は、本明細書に記載される暗号集積回路のいずれかと、暗号集積回路に連結された電子プロセッサと、を含み、電子プロセッサは、暗号集積回路のアクティブ化された暗号モジュールを使用して、複数の暗号モジュールのうちのサブセットを選択的にアクティブ化または非アクティブ化して、入力データパケットのストリームのデータパケットを暗号化または復号化するように構成された、暗号システムを特徴とする。
【0013】
システムの実施形態は、以下の特徴のいずれか1つ以上を含むことができる。
【0014】
このシステムは宇宙船の電源に接続でき、電子プロセッサは、電源に残っている電力量を測定し、電源に残っている電力量に基づいて入力データパケットのストリームのデータパケットの暗号化または復号化に使用されるアクティブ化された暗号モジュールの数を調整するように構成される。このシステムは、宇宙船の電源に接続することができ、電子プロセッサは、宇宙船の電力消費率を測定し、その電力消費量に基づいて入力データパケットのストリームのデータパケットの暗号化または復号化に使用されるアクティブ化された暗号モジュールの数を調整するように構成される。
【0015】
電子プロセッサは、入力データパケットのストリームの帯域幅を決定し、暗号集積回路のデータスループットレートが入力データパケットのストリームの帯域幅と少なくとも同じ大きさとなるように、入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を調整するように構成することができる。電子プロセッサは、暗号集積回路のデータスループットレートが入力データパケットのストリームの帯域幅を超えるように、入力データパケットのストリームのデータパケットを暗号化または復号化するために使用されるアクティブ化された暗号モジュールの数を、最小数のアクティブ化された暗号モジュールに調整するように構成することができる。
【0016】
システムは、電子プロセッサに連結された温度センサを含むことができ、電子プロセッサは、暗号集積回路の温度を測定し、測定された温度が温度閾値を超えないように、アクティブ化された暗号モジュールの数を調整するように構成される。システムは、複数の温度センサを含むことができ、複数の温度センサの各温度センサは、複数の暗号モジュールのうちの1つと接触し、電子プロセッサは、各暗号集積回路の温度を測定し、測定された温度が温度閾値を超えた暗号モジュールを非アクティブ化するように構成される。
【0017】
電子プロセッサおよび入力モジュールのうちの少なくとも1つは、複数の暗号モジュールのうち障害が発生した暗号モジュールを非アクティブ化するように構成することができる。電子プロセッサは、暗号モジュールが入力データパケットを受信し、出力データパケットを生成しない場合に、複数の暗号モジュールのうちのその暗号モジュールが故障したと判定するように構成することができる。
【0018】
電子プロセッサは、複数の暗号モジュールのうちの1つの暗号モジュールの電気的特性を測定し、測定された電気的特性の値が測定された電気的特性の値の許容範囲外である場合、暗号モジュールが故障したと判定するように構成することができる。測定された電気的特性は、暗号モジュールの抵抗またはインピーダンスを含みうる。測定された電気的特性は、暗号モジュールに亘る電圧降下、または暗号モジュールを流れる電流を含みうる。
【0019】
入力モジュールは、複数の暗号モジュールの各々の可用性に基づいて、複数の暗号モジュールの間に入力データパケットを分配するように構成することができる。複数の暗号モジュールの各暗号モジュールは、入力モジュールから入力データパケットを受信するための暗号モジュールの可用性を示すように、信号を入力モジュールに送信するように構成することができる。
【0020】
入力モジュールは、各入力データパケットのサイズに基づいて、複数の暗号モジュールの間に入力データパケットを分配するように構成することができる。
【0021】
入力モジュールは、第1の複数のf個の入力データパケットを、それらのf個の入力データパケットのサイズに応じて、モジュールの第1の順序で、f個の異なる暗号モジュールの間に分配するように構成することができ、入力モジュールは、第2の複数のf個の入力データパケットを、モジュールの第1の順序とは逆の、モジュールの第2の順序で、それらのf個の異なる暗号モジュールの間に分配するように構成することができる。入力モジュールは、追加の複数のf個の入力データパケットを使用してそれらのステップを繰り返すように構成することができる。
【0022】
入力モジュールは、複数の暗号モジュールのそれぞれについての蓄積されたデータ処理負荷に基づいて、複数の暗号モジュールの間に入力データパケットを分配するように構成することができる。入力モジュールは、連続する各入力データパケットを、複数の暗号モジュールのうち、累積データ処理負荷が最も小さい暗号モジュールに分配するように構成することができる。
【0023】
入力モジュールは、各入力データパケットに関連付けられた暗号化プロトコルまたは復号化プロトコルに基づいて、複数の暗号モジュールの間に入力データパケットを分配するように構成することができる。入力モジュールは、第1の暗号化プロトコルに関連付けられた入力データパケットを複数の暗号モジュールの第1のサブセットに分配し、第1の暗号化プロトコルとは異なる第2の暗号化プロトコルに関連付けられた入力データパケットを、第1のサブセットとは異なる、複数の暗号モジュールの第2のサブセットに分配するように構成することができる。
【0024】
システムの実施形態は、特に明記しない限り、同じまたは異なる実施形態に関連して説明される個々の特徴の任意の組み合わせを含む、本明細書で説明される他の特徴のいずれかを含むこともできる。
【0025】
本明細書に記載されるいくつかの実施形態は、様々なコンピュータ実装動作を実行するための命令またはコンピュータコードを有する非一時的なコンピュータ可読媒体(非一時的なプロセッサ可読媒体とも呼ばれる)を備えたコンピュータ記憶製品に関する。コンピュータ可読媒体(またはプロセッサ可読媒体)は、それ自体が一時的な伝播信号(例えば、空間またはケーブルなどの伝送媒体上で情報を運ぶ伝播電磁波)を含まないという意味で非一時的である。媒体およびコンピュータコード(コードとも呼ばれる)は、特定の目的のために設計および構築されたものであってもよい。非一時的なコンピュータ可読媒体の例として、ハードディスク、フロッピーディスク、磁気テープなどの磁気記憶媒体、コンパクトディスク/デジタルビデオディスク(CD/DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、ホログラフィックデバイスなどの光学式記憶媒体、光ディスクなどの光磁気記憶媒体、搬送波信号処理モジュール、および、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)デバイスなどの、プログラムコードを保存および実行するように特別に構成されたハードウェアデバイスを含むが、それらに限定されない。本明細書に記載される他の実施形態は、例えば、本明細書に記載される命令および/またはコンピュータコードを含むことができるコンピュータプログラム製品に関する。
【0026】
本明細書に記載されるいくつかの実施形態および/または方法は、(ハードウェア上で実行される)ソフトウェア、ハードウェア、またはそれらの組み合わせによって実行することができる。ハードウェアモジュールには、例えば、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、および/または特定用途向け集積回路(ASIC)が含まれ得る。(ハードウェア上で実行される)ソフトウェアモジュールは、C、C++、Java(登録商標)、Ruby、Visual Basic(登録商標)、および/または、その他のオブジェクト指向、手続き型、またはその他のプログラミング言語および開発ツールを含む、さまざまなソフトウェア言語(例えば、コンピュータコードなど)で表現することができる。コンピュータコードの例には、マイクロコードまたはマイクロ命令、コンパイラによって生成されるような機械命令、Webサービスの生成に使用されるコード、および、インタープリタを使用するコンピュータによって実行される高レベルの命令を含むファイルを含むが、それらに限定されない。例えば、実施形態は、命令型プログラミング言語(例えば、C、Fortranなど)、関数型プログラミング言語(Haskell、Erlangなど)、論理プログラミング言語(例えば、Prolog)、オブジェクト指向プログラミング言語(例えば、Java、C++など)、または、他の適切なプログラミング言語および/または開発ツールを使用することにより実装することができる。コンピュータコードの追加の例には、制御信号、暗号化コード、圧縮コードが含まれるが、それらに限定されない。
【0027】
本明細書で使用される「乗物(vehicle)」という用語は、宇宙に存在する任意の装置、システム、衛星、宇宙ステーション、またはその他の人工のペイロードを運ぶ物体を指す。乗物は、地球、月、別の惑星、または別の天体や物体の周りの静止軌道上にあってもよい。乗物は、軌道上ではなく宇宙の目的地へ、または目的地から移動していてもよい。
【0028】
本明細書で使用されるように、「帯域幅(bandwidth)」という用語は、電子信号内で符号化される1秒あたりのビット数(または1秒あたりのバイト数、より一般的には単位時間あたりのデータ量)を指す。本明細書で説明される任意の回路の電子プロセッサおよび/または入力モジュールは、データストリームに先行する情報を受信することによって、および/または、データストリームの個々のパケットの到着時間、および各パケットに含まれるビット数を測定し、データストリームの帯域幅を計算することによって、データストリームの帯域幅を決定するように構成され得る。
【0029】
本明細書で使用されるように、「データスループットレート」という用語は、システム、回路、または回路要素によって処理できる1秒あたりのビット数(または1秒あたりのバイト数、より一般的には、単位時間あたりのデータ量)を指す。つまり、データスループットレートは、システム、回路、または回路要素が入力データを受信し、入力データレートと出力データレートの間に差がない出力データを生成することができる持続レートを指す。
【0030】
本明細書で使用されるように、「ヘッダ」とは、データストリーム内のデータのパケットに付随するデータビットのセットである。通常、各パケットにはヘッダが含まれており、ヘッダはデータパケットをマークする機能を有するデータビットで構成され、データパケットに関する情報が含まれうる。このような情報には、パケットの長さ、発信元、宛先、内容、符号化スキーム、およびエラーチェック情報に関する情報が含まれるが、それらに限定されない。場合によっては、データストリーム内の各パケットにヘッダが含まれており、各ヘッダは共通の長さを有する(つまり、固定数のデータビットがヘッダに割り当てられている)。他の場合には、データストリーム内のパケットに可変長ヘッダが含まれうる。通常、ヘッダに含まれるデータはパケットデータとは別のものである。一部がデータビットで、一部がヘッダビットである一連のビットで構成されるパケットでは、ヘッダビットは、データビットのブロックの終わりまたは始まり、または1つ以上のデータビットのブロックの間にある場合がある。ヘッダは、ヘッダビットのモノリシックブロックにすることも、パケット内のヘッダビットの複数のブロックで構成することもできる。
【0031】
本明細書で使用されるように、回路のモジュール、コンポーネント、またはその他の要素を「アクティブ化する(activating)」とは、モジュール、コンポーネント、またはその他の要素に動作電力を供給し、モジュール、コンポーネント、またはその他の要素が命令を受信し、かつ/または機能を実行する準備が完了している動作状態にするために必要な他の機能を実行することを指す。同様に、回路のモジュール、コンポーネント、またはその他の要素を「非アクティブ化する(deactivating)」とは、モジュール、コンポーネント、またはその他の要素を、それらが命令を受信し、かつ/または機能を実行する準備ができていない状態にするために必要な機能を実行することを指す。いくつかの実施形態では、モジュール、コンポーネント、または他の要素を「非アクティブ化する」とは、それらの要素への電力供給を中断することを含むことができる。
【0032】
他に定義されない限り、本明細書で使用されるすべての技術用語および科学用語は、本開示が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。本明細書に記載のものと類似または同等の方法および材料を本明細書の主題の実践または試験に使用することができるが、適切な方法および材料を以下に説明する。本明細書で言及されるすべての刊行物、特許出願、特許、およびその他の参考文献は、その全体が参照により組み込まれる。矛盾が生じた場合には、定義を含む本明細書が優先される。さらに、材料、方法、および実施例は、単なる例示であり、限定することを意図したものではない。
【0033】
1つ以上の実施形態の詳細は、添付の図面および以下の説明に記載される。他の特徴および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0034】
【
図1】暗号集積回路を備えた宇宙船の一例を示す概略図である。
【
図3】データパケットの受信ストリームを処理して、暗号化または復号化されたデータパケットの送信ストリームを生成するための一連の例示的なステップを示すフローチャートである。
【
図4】宇宙船のコンピューティングシステムの概略図である。
【発明を実施するための形態】
【0035】
(概説)
衛星などの従来の宇宙船は大型であり、それに応じて大きな電源を有する。このような乗物は通常、複雑な通信および観測操作に関与し、長年にわたって大量のデータを収集する。このような宇宙船との間で地上局に送受信されるデータは、データへのアクセスを許可されていない第三者によってデータストリームが観察されたり、改ざんされたり、盗まれたりすることがないようにするために、一般に暗号化される。
【0036】
データストリームを暗号化および復号化するために、従来の宇宙船には暗号化ユニットが組み込まれている場合がある。このようなユニットは通常、スタンドアロンで互いに独立して動作し、通常は比較的大型であるため、動作中に大量の電力を消費する。複数のユニットが存在する場合、スタンドアロンルーターを使用して複数のユニット間でデータをルーティングすることができるが、スタンドアロンルーターも通常は比較的大きく、大量の電力を消費する。ルータの構成は通常、従来の宇宙船のミッションごとにカスタマイズされ、個々のユニットも個別にカスタマイズすることができる。そのため、オンボード暗号化システム全体の構成には時間がかかる場合がある。
【0037】
衛星などの大型宇宙船の場合、従来の暗号化ユニットの消費電力、重量、データ処理帯域幅の制限は、ミッションに重大な制約を与えないであろう。一方、次世代の宇宙船は、光学素子、電源システム、バッテリーなどの宇宙船コンポーネントの進歩により、従来の宇宙船よりもかなり小さくなるであろう。しかし、これらの開発により、搭載される電力源はさらに限定され、重量の制約も従来の宇宙船よりも大幅に制限されることになる。これらの要因により、特定の次世代宇宙船がサポートできるペイロードが大幅に制限される。
【0038】
同時に、次世代宇宙船は、従来の宇宙船との間で送受信される帯域幅のデータストリームよりも高帯域幅のデータストリームを生成および受信することが期待されている。その結果、通信のボトルネックによってミッションが損なわれないようにするには、従来の宇宙船ベースの暗号ユニットよりも広い帯域幅を備えた暗号処理システムが必要となる。
【0039】
本開示は、従来の搭載暗号ユニットと比較して、消費電力および重量を削減し、帯域幅を増加させるために次世代宇宙船で使用できる、統合暗号処理回路、暗号処理システム、およびデータ処理方法を特徴とする。回路およびシステムには通常、複数の組み込み統合用暗号モジュール(Cryptographic Modules for Embedded Integration, CMEI)が含まれる。複数のCMEIを使用することにより、回路またはシステムの全体的なデータ処理帯域幅が単一のCMEIの帯域幅を超えて増加し、高帯域幅のデータストリームを処理できるようになる。
【0040】
CMEIは、インバウンドデータパケットを受信するための少なくとも1つのデータ入力ポートまたはラインと、アウトバウンドデータパケットを送信するための少なくとも1つのデータ出力ポートまたはラインと、を含む集積回路モジュールである。このモジュールには、モジュールが動作電力を受け取るシステム電力バスまたは電力制御線に接続するための端子も含まれる。モジュールは、電子プロセッサからデータ入力ポートまたはライン(または別の入力ポートまたはライン)でモジュールに配信できる暗号化キーに従って、受信データパケットを暗号化または復号化する。このモジュールは、暗号化キーを保存するためのオンボードランダムアクセスメモリを含むことができる。電子プロセッサから新しい暗号化キーを配信することでモジュールのキーを再設定でき、オンデマンドで新しい暗号化キーを使用してモジュールを再構成することができる。本システムおよび回路で使用するのに適したCMEIには、PROTEUS暗号モジュール(Raytheon Technologies(マサチューセッツ州ウォルサム)から入手可能)が含まれる。
【0041】
適切なCMEIおよびそれらの機能の例は、例えば、米国特許第7,392,399号、米国特許出願公開第2004/0039928号、米国特許出願公開第2004/0230813号、米国特許出願公開第2021/0110064号、ならびに国際特許出願公開第1999/014881号および国際特許出願公開第2021/032946号に記載されており、それぞれの全内容は参照により本明細書に組み込まれる。
【0042】
(統合暗号回路および処理システム)
図1は、統合された暗号処理回路100を備えた宇宙船10を示す概略図である。宇宙船10はまた、データ受信ユニット110、データ送信ユニット120、および電子プロセッサ130を含む。一般に、データ受信ユニット110は、データソースから無線でデータを(例えば、受信(incoming)データストリームとして)受信するように構成された任意のタイプの通信デバイスであり得る。同様に、データ送信ユニット120は、データを(例えば送信(outgoing)データストリームとして)データ受信装置に無線で送信するように構成された任意のタイプの通信装置であり得る。一般に、データ受信ユニット110およびデータ送信ユニット120は両方とも無線機、すなわちそれぞれ無線受信機および無線送信機として実装される。いくつかの実施形態では、単一のトランシーバ(例えば、無線トランシーバ)が、データ受信ユニット110とデータ送信ユニット120の機能を単一のコンポーネントに結合する。
【0043】
図1は、単一の電子プロセッサ130を示す。しかしながら、より一般的には、電子プロセッサ130は、単一のプロセッサとして、または別個のおよび/または共通の制御機能を実行する複数のプロセッサとして実装することができる。以下の説明は、単一の電子プロセッサ130について言及する。しかしながら、本明細書で説明される制御機能は、2つ以上の電子プロセッサに分散することができ、宇宙船10は、説明される様々な機能を集合的に実行する複数の電子プロセッサを含みうることを理解されたい。
【0044】
図1に示されるように、電子プロセッサ130は、1つまたは複数の制御線140を介して統合暗号処理回路100に接続される。1つまたは複数の制御線140により、電子プロセッサ130は、制御命令、データ、および動作電力を暗号処理回路100に送信し、回路100からデータを受信することができる。
【0045】
電子プロセッサ130は、1つまたは複数の制御線141を介してデータ受信ユニット110に接続される。電子プロセッサ130は、データ受信ユニット110を介してデータソースから直接データを受信することができる。そのようなデータには、例えば、暗号化キー、受信データストリームに関する情報、および、データストリームの処理に関係しないその他のさまざまなミッション情報が含まれ得る。
【0046】
電子プロセッサ130は、1つまたは複数の制御線142を介してデータ送信ユニット120に接続される。電子プロセッサは、データ送信ユニット120を介してデータ受信機に直接データを送信することができる。そのようなデータには、例えば、送信データストリームに関する情報、および、データストリームの処理に関係しない、その他のさまざまな乗物および/またはミッション情報が含まれ得る。
【0047】
図1では、電子プロセッサ130は暗号処理回路100とは別個であり、すなわち、1つ以上の制御線140を介して暗号処理回路100に接続されている。以下の説明では、明確にするためにこの一般的な構造を参照する。しかしながら、いくつかの実施形態では、電子プロセッサ130(および本明細書で説明するように、プロセッサ130が接続されるコンポーネントのいずれか)は、暗号処理回路100の一部とすることができ、いくつかの実施形態では、暗号処理回路100の他のコンポーネントの一部または全てを回路基板上に統合することができることを理解されたい。さらに、電子プロセッサ130が暗号処理回路100の一部である場合、電子プロセッサ130は、適切な制御線を介して1つまたは複数の追加のプロセッサおよび/または宇宙船10のコンポーネントに接続することができ、それらの追加のプロセッサおよび/またはコンポーネントに情報、データ、および命令を送受信することができる。
【0048】
統合暗号処理回路100は、1つまたは複数のデータ線143を介してデータ受信ユニット110に接続され、1つまたは複数のデータ線144を介してデータ送信ユニット120に接続される。一般に、データ受信ユニット110によって受信される受信(incoming)データストリームは、データ線143を介して処理するために回路100に直接ルーティングすることができ、回路100によって処理される送信(outgoing)データストリームは、1つまたは複数のデータ線144を介してデータ送信ユニット120に直接ルーティングすることができる。電子プロセッサ130および1つまたは複数の制御線140によって提供される帯域幅が十分であることを条件として、回路100への直接ルーティングおよび回路100からの直接ルーティングに加えて、またはその代替として、受信および送信データストリームを、任意選択的に、1つまたは複数の制御線140を介して電子プロセッサ130を通してルーティングすることができる。
【0049】
図2は、統合暗号処理回路100の一例の概略図である。回路100は、それぞれ、(制御線140aを介して)電子プロセッサ130および(データ線143を介して)データ受信ユニット110に接続された、入力ポート208および210を含む。回路100は、それぞれ、(制御線140bを介して)電子プロセッサ130および(データ線144を介して)データ送信ユニット120に接続された、出力ポート212および214も含む。
【0050】
入力ポート208および210は、入力モジュール202に接続されており、入力モジュール202は、後でより詳細に説明する入力処理機能を実行する。入力モジュール202は、データ線220a~220nを介して、データ暗号化および/または復号化機能を実行する複数のCMEI204a~204nに接続される。CMEI204a~204nは、データ線222a~222nを介して出力モジュール206に接続され、出力モジュール206は、後でより詳細に説明する出力処理機能を実行する。
【0051】
回路100は、入力(input)データストリームに応じて、暗号化モードまたは復号化モードのいずれかで動作することができる。入力データストリームが暗号化される場合、CMEI204a~204nは、入力モジュール202を介して、またはCMEIをプロセッサ130に接続する制御線を直接介して、プロセッサ130からCMEIに提供される個々の暗号化キーに従って、データストリームのパケットを暗号化する。入力データストリームが復号化される場合、CMEI204a~204nは、入力モジュール202を介して、または制御線を介して直接、プロセッサ130からCMEIに提供される個々の暗号化キーに従って、データストリームのパケットを復号化する。
【0052】
復号化される受信(incoming)データストリームの場合、受信データストリームは複数のコンポーネントおよび/またはソースから到着する可能性がある。例えば、いくつかの実施形態では、受信データストリームは、1つまたは複数のデータ線143を介してデータ受信ユニット110から到着する。特定の実施形態では、受信データストリームは、1つまたは複数の制御線140を介してプロセッサ130から、および/または、追加の制御線または
図1に示されていないデータ線を介して1つまたは複数の他のコンポーネントから到着することができる。復号化されると、送信(outgoing)データストリームは、1つまたは複数のデータ線144を介してデータ送信ユニット120に配信される。あるいは、またはそれに加えて、送信データストリームは、(例えば、1つまたは複数の制御線140を介して)プロセッサ130に配信され、かつ/または乗物10の他のコンポーネントに配信されうる。
【0053】
暗号化される受信データストリームの場合、受信データストリームは複数のコンポーネントおよび/またはソースから到着する可能性がある。例えば、いくつかの実施形態では、受信データストリームは、1つまたは複数のデータ線143を介してデータ受信ユニット110から到着する。特定の実施形態では、受信データストリームは、1つまたは複数の制御線140を介してプロセッサ130から到着することができる。いくつかの実施形態では、受信データストリームは、追加の制御線または
図1に示されていないデータ線を介して乗物10の1つまたは複数の他のコンポーネントから到着することができる。暗号化されると、送信データストリームは1つまたは複数のデータライン144を介してデータ送信ユニット120に配信される。あるいは、またはそれに加えて、送信データストリームは(例えば、1つまたは複数の制御線140を介して)プロセッサ130に配信され、かつ/または乗物10の他のコンポーネントに配信されうる。
【0054】
図2に示すように、回路100は一般に、1つ以上の入力ポートと1つ以上の出力ポートを備えた単一の集積回路として実装される。回路100のコンポーネントは、任意の単一の集積回路基板250上に、または共通のシステム通信および/または電源バックプレーンを介して互いにリンクされた複数の回路基板の組み合わせ上に実装することができる。いくつかの実施形態では、回路100の容積は、300mm
3以下(例えば、280mm
3以下、250mm
3以下、220mm
3以下、200mm
3以下、180mm
3以下、150mm
3以下、またはさらにそれ以下)である。特定の実施形態では、回路100の面積(すなわち、回路100のコンポーネントが実装される1つまたは複数の回路基板の総面積)は、100mm
2以下(例えば、90mm
2以下、80mm
2以下、70mm
2以下、60mm
2以下、50mm
2以下、40mm
2以下、またはそれ以下)である。いくつかの実施形態では、回路100の重量は50g以下(例えば、40g以下、30g以下、20g以下、10g以下、またはさらにそれ以下)である。
【0055】
図2に示すように、回路100は一般に、任意の数のCMEIを含むことができる。例えば、CMEIの個数(
図2のn)は、2以上(例えば、3以上、4以上、5以上、6以上、8以上、10以上、12以上、15以上、20以上、あるいはそれ以上)である。一般に、データストリームの暗号化または復号化に使用されるCMEIの数が増加すると、回路100の全体のデータ処理帯域幅が増加し、回路100の電力消費も増加する。いくつかの実施形態では、回路100はn個のCMEIを含むが、CMEIの総数の一部(fraction)pのみがデータストリームの暗号化または復号化に使用される。例えば、pは、0.9以下(例えば、0.8以下、0.7以下、0.6以下、0.5以下、0.4以下、0.3以下、0.2以下、またはさらに小さい)である。
【0056】
いくつかの実施形態では、回路100によって提供されるデータ処理帯域幅(例えば、単位時間当たりの暗号化または復号化できる入力データの総バイト数)は、100MB/s以上(例えば、200MB/s以上、300MB/s以上、400MB/s以上、500MB/s以上、700MB/s以上、900MB/s以上、1GB/s以上、2GB/s以上、5GB/s以上、10GB/s以上、あるいはそれ以上)である。
【0057】
回路100では、データパケットの暗号化および復号化はCMEIによって処理され、入力モジュール202および出力モジュール206はパケット操作およびルーティング動作を実行する。
図3は、受信データストリームを処理するために回路100によって実行される一連の例示的なステップを示すフローチャートである。ステップ302において、受信データストリームは、個別のデータパケットの形式で入力モジュール202によって受信される。一般に、データパケットは、標準的なインターネットデータトランスポートプロトコルを含むがこれに限定されない任意のプロトコルに従って符号化される。入力モジュール202は、ステップ304で、データパケットのヘッダを除去し、そのヘッダを暗号モジュールプロトコル(EMP)ヘッダに置き換えることによって、各受信データパケットを処理する。
【0058】
ヘッダの除去はさまざまな方法で実行できる。例えば、いくつかの実施形態では、ヘッダは、予期される位置に配置される、および/または特定の識別子ビットシーケンスを含む定長(constant-length)シーケンスである。入力モジュール202は、パケットシーケンス内のヘッダ位置および/または識別子ビットシーケンスのいずれかまたは両方を認識し、ヘッダシーケンスを識別する。次に、入力モジュール202は、ヘッダシーケンスに対応するビットが除去された修正データパケットを生成する。
【0059】
一般に、EMPヘッダシーケンスには、パケット内のデータシーケンスの長さに関する情報、パケットに含まれるデータの符号化方法および/または暗号化方法に関する情報、パケット内のデータビットの形式に関する情報、およびパケット内のエラーチェックビットやその他の非データビットに関する情報を含む、これらに限定されないさまざまな情報が含まれる。入力モジュール202は、どのCMEIがパケットを処理するかを指定する情報をEMPヘッダに含めるように構成することもできる。以下でさらに説明するように、入力モジュール202は、さまざまな異なる基準に従ってどのCMEIが各パケットを処理するかを決定することができる。
【0060】
次に、ステップ306で、入力モジュール202は、パケットのEMPヘッダ内の情報に基づいて、暗号化または復号化のためにパケットを正しいCMEIに送る。暗号化または復号化に続いて、暗号化または復号化されたパケットが出力モジュール206によって受信される。
【0061】
ステップ308で、出力モジュール206がパケットからEMPヘッダを除去し、新しいデータパケットヘッダを追加する。新しいデータパケットヘッダには、通常、受信(incoming)データストリームからのデータパケットヘッダに含まれる情報のいずれかを含めることができる。さらに、データパケットヘッダには、(送信暗号化データストリームの)パケットの暗号化に使用される暗号化方法に関する情報と、個々のパケットのダウンストリーム復号化のためのキー関連情報(例えば、キーまたはキーセットのアイデンティティ、ビット深度)を含めることができる。この情報は、出力モジュール206によって追加され、CMEI204a~204nと通信して、各パケットの暗号化/復号化に使用される暗号化およびキー関連情報を決定することができる。
【0062】
次に、ステップ310で、出力モジュール206は、暗号化または復号化されたパケットをその宛先に送る。入力モジュール202に関連して上述したように、出力モジュール206は、回路100のCMEIから受信される暗号化または復号データパケットを処理する。データパケットを受信する、地上局または別の宇宙船の通信装置などのデータ受信機、プロセッサ130、または、乗物10の別のコンポーネントは、データトランスポートプロトコルまたはアプリケーションレイヤープロトコルに従ってデータパケットをデータストリームに再組み立てする。
【0063】
すべてのパケットルーティング、暗号化/復号化、および配信機能は単一の集積回路によって実行されるため、回路100の消費電力は通常、従来のオンボード暗号化システムよりもはるかに低い。いくつかの実施形態では、例えば、動作中の回路100の消費電力は、1mW以下(例えば、700μW以下、500μW以下、300μW以下、200μW以下、100μW以下、50μW以下、30μW以下、10μW以下、5μW以下、3μW以下、1μW以下、あるいはそれ以下)である。
【0064】
上述したように、回路100は、比較的小さいフォームファクタを有する単一の集積回路基板上に実装できる単一の集積回路内で統合ルーティング、暗号化/復号化、および後処理分散を実行する。回路100は、著しく多くの体積、重量、消費電力を必要とする従来のパケットルータおよび暗号モジュールの機能を置き換える。
【0065】
データパケットは、様々な基準に従ってCMEIへの入力モジュール202に多重化することができる。いくつかの実施形態では、入力モジュール202は、受信データパケットを単純に、順番にCMEI204a~204nに分配する。連続する各データパケットは、固定順序付けスキームで次のCMEIにルーティングされる。一般に、このパケットルーティング手順では、受信データパケットが等しい長さまたは同様の長さ(例えば、データビット数の違いが10%以下)である場合、回路100によってより高い全体のデータ処理帯域幅が達成される。
【0066】
いくつかの実施形態では、入力モジュール202は、CMEI204a~204nの可用性に従って受信データパケットを分配する。このパケットルーティング手順では、各CMEIは、処理するための新しいデータパケットを受信する準備ができていることを示す信号を入力モジュール202に送信する。入力モジュール202は、CMEIからの信号の受信に基づいて、連続する各入力データパケットを次に利用可能なCMEIに分配する。このようにして、CMEI間のデータパケット処理が完全に同期して行われない場合でも、それらのCMEI間の待ち時間が短縮される。代わりに、高いデータ処理帯域幅を維持しながら、受信データパケットを非同期的に処理できる。一般に、可変長のデータパケット、その内容に応じて異なるスループットレートで処理されるデータパケット、または断続的に受信されるデータパケットを含むデータストリームの場合、CMEI204a~204nの可用性に従って受信パケットを分配することにより、より高い全体のデータスループットレート(つまり、暗号化または復号化のスループットレート)を達成することが可能である。
【0067】
特定の実施形態では、入力モジュール202は、パケットサイズに従って受信(incoming)データパケットを分配する。例えば、受信データストリームが異なるサイズのパケットを含む場合、パケットは、入力モジュール202によってCMEI204a~204nに分散され、CMEI上の処理負荷のバランスをとることができる。回路100に3つのCMEI204a~204cが存在する次の例を考察する。入力モジュール202は、サイズS1~S3の3つの受信データパケットを受信する。ここで、「サイズ」とは各パケット内のデータビット数を指し、S1>S2>S3である。入力モジュール202は、サイズS1のパケットをCMEI204aに分配し、サイズS2のパケットをCMEI204bに分配し、サイズS3のパケットをCMEI204cに分配する。
【0068】
入力モジュール202によって受信される次の3つのパケットは、それぞれ、サイズS4、S5、およびS6を有する(S4>S5>S6)。入力モジュール202は、それらのパケットを逆の順序でCMEI204c、204b、および204aにそれぞれ分配する。このようにして、入力モジュール202は、CMEI204a~204cに割り当てられた処理負荷のバランスを少なくとも部分的に取る。
【0069】
前述のプロトコルは、回路100内のf個のCMEIのグループに適用することができる。ここで、fは2~n(すなわち、回路100内のCMEIの総数)の間である。f個のデータパケットの連続する各グループを受信すると、入力モジュール202は、連続する順方向および逆方向の順序でf個のCMEI間でパケットを分散し、それらのCMEI間の処理負荷の少なくとも部分的なバランスを取ることができる。
【0070】
あるいは、入力モジュール202は、回路100内のCMEIに分配されたパケットサイズの記録を維持し、CMEIの各々に割り当てられた合計累積データ処理負荷(すなわち、すべてのパケットの合計累積サイズ)に基づいて、連続する受信可変サイズパケットをそれらのCMEI間で分配することができる。換言すれば、連続する各パケットが入力モジュール202によって受信されると、モジュールは、累積合計パケットサイズが最も小さいCMEIにパケットを分配し、そのレコード内のそのCMEIの合計を更新する。
【0071】
いくつかの実施形態では、回路100内のCMEIは異なるデータスループットレートを有することができ、入力モジュール202は、それぞれのデータスループットレートに基づいてCMEI間で受信データパケットを分配することができる。例えば、CMEI204aがCMEI204bのデータスループットレートの2倍のデータスループットレートを有する場合、入力モジュール202は、CMEI204bの2倍の数の受信データパケットをCMEI204aに分配することができる。より一般的には、回路100内の任意の2つのCMEIについて、第2のCMEIに対する、第1のCMEIに分配されるデータパケットの数の比率は、それぞれのデータスループットレートの比率となり、それぞれのデータスループットレートの比率の値の20%以内(例えば、15%以下、10%以下、5%以下)となり得る。さらに、回路100内のf個のCMEIの場合、f個のCMEIのそれぞれに配信されるデータパケットの相対数は、f個のCMEIの相対データスループットレートに対応することができ、f個のCMEIのうちの任意の2つの間のデータスループットレートの最大比の値の20%以内(例えば、15%以下、10%以下、5%以下)である。したがって、たとえば、データスループットレートがR1、R2、R3、およびR4であり、R1=R2=3R3=2R4である、f=4CMEIの場合、4つのCMEIのそれぞれに分配されるデータパケットの相対数は、それぞれ、3N,3N,N,および1.5Nであり、ここでNは、最小のデータスループットレート、すなわち、この例ではR3を有するCMEIに分配されるデータパケットの総数である。
【0072】
いくつかの実施形態では、入力モジュール202は、パケットの内容に基づいて、受信データパケットを回路100のCMEIに分配することができる。例えば、回路100内のCMEIのうち、特定のCMEIは、異なる暗号化スキーム、より長いまたはより強力な暗号化キー、多要素暗号化または復号化プロトコル、より一般的には、異なるデータ処理方法を使用するなどにより、異なる方法でパケットを暗号化または復号化するように構成され得る。受信データパケットのヘッダは、データパケットの内容とそのようなパケットが処理されるべき方法に関する情報を提供することができる。あるいは、受信データパケットが処理されるべき方法に関する情報は、プロセッサ130によって入力モジュール202に提供され得る。
【0073】
受信データパケットは、暗号化または復号化されるべき方法に従って、入力モジュール202によって特定のCMEIにルーティングされ得る。たとえば、「より強力な」暗号化または復号化用(たとえば、異なるタイプおよび/またはより長い長さのキーの使用)に指定された受信パケットは、CMEIの1つのサブセットに分配でき、「より弱い」暗号化または復号化用(たとえば、代替タイプおよび/またはより短い長さのキーの使用)に指定された受信パケットは、CMEIの別のサブセットに分配することができる。複数の異なる暗号化/復号化タイプおよび/または強度をCMEIのグループ間で表すことができ、入力プロセッサ202はそれに応じて受信データパケットを送ることができる。
【0074】
いくつかの実施形態では、異なるタイプの受信データパケットを、入力モジュール202によって特定のCMEIにルーティングすることができる。例えば、データストリーム内の各パケットのヘッダは、複数の異なるパケットタイプのうちの1つに対応する識別子ビットシーケンスを含むことができる。次に、入力モジュール202は、パケットの識別子ビットシーケンスに基づいて、個々のパケットを特定のCMEI(またはいくつかのCMEIの1つ)に送る適切なEMPヘッダを追加することができる。次いで、入力モジュール202は、それに応じてパケットをCMEIに分配する。
【0075】
データパケットのタイプベースのルーティングは、さまざまな状況で使用することができる。例えば、特定の実施形態では、通信などの第1のセットの信号タイプに対応するパケット、またはより一般的には、優先度の高い信号に対応するパケットを特定のCMEIにルーティングすることができ(例えば、より強力な暗号化キーおよび/または第1の暗号化/復号化方法に基づいた暗号化/復号化)、一方、テレメトリなどの第2のセットの信号タイプに対応するパケット、またはより一般的には、優先度の低い信号に対応するパケットを他のCMEIにルーティングすることができる(例えば、より弱い暗号化キーおよび/または第2の暗号化/復号化方法に基づいた暗号化/復号化)。
【0076】
一般に、回路100内に複数のCMEIが存在することにより、1つ以上のCMEIが故障したとしても、回路100がデータパケットの暗号化および/または復号化を継続できることを保証する冗長性の手段が提供される。CMEIの故障は、入力データパケットが特定のCMEIに配信されるが、そのCMEIからの出力データパケットが出力モジュール206によって受信されない場合に、回路100によって検出することができる。特定のCMEIが故障したことを立証するために、様々な基準を使用することができる。例えば、いくつかの実施形態では、q個の連続する入力データパケット(ここで、qは1以上、2以上、3以上、5以上、7以上、9以上、10以上、15以上、20以上、またはそれ以上)が特定のCMEIに配信され、そのCMEIから出力データパケットが受信されない場合、その特定のCMEIが、入力モジュール202および/またはプロセッサ130によって故障したものとして指定される。
【0077】
特定の実施形態では、入力モジュール202、出力モジュール206、および/またはプロセッサ130によって測定されるCMEIの1つまたは複数の電気的特性が閾値量を超えて変化した場合、特定のCMEIは故障として指定される。特定のCMEIが故障していることを特定するために用いられる電気的特性の測定された変化には、インピーダンス、抵抗、CMEIを通る導電率、CMEIを通る電流、およびCMEIに亘る電圧降下が含まれるが、これらに限定されない。
【0078】
いくつかの実施形態では、入力モジュール202、出力モジュール206、および/またはプロセッサ130によって測定されたCMEIの物理的特性が閾値量を超えて変化した場合、特定のCMEIは故障として指定される。特定のCMEIが故障していることを特定するために用いられる物理的特性の測定された変化には、CMEIの温度が含まれるが、これに限定されない。
【0079】
入力モジュール202、出力モジュール206、および/またはプロセッサ130が、CMEIが故障したと判定した場合、入力モジュール202は、CMEIへの受信データパケットの配信を停止することができる。代わりに、データパケットは、回路100の他の障害のないCMEIに配信され続ける。回路100には複数のCMEIが含まれているため、1つのCMEI、または2つ以上のCMEIに障害が発生しても、回路100が、受信データストリームからのデータパケットの暗号化/復号化を続行することを妨げない。
【0080】
上述したように、入力モジュール202は、回路100内の故障した1つまたは複数のCMEIへの配信を停止することができる。さらに、回路100内の1つまたは複数のCMEIは、特定の基準に従って非アクティブ化することができる。CMEIの非アクティブ化は、入力モジュール202および/または電子プロセッサ130によって実行することができ、典型的には、CMEIへの動作電力が入力モジュール202またはプロセッサ130からの適切な制御信号によって中断されたときに実装される。
【0081】
回路100内のCMEIは、さまざまな理由で非アクティブ化される可能性がある。上述したように、本明細書で説明する暗号集積回路は、利用可能な電力が限られている衛星などの次世代宇宙船で使用するために設計されている。したがって、いくつかの実施形態では、回路100内のCMEIを非アクティブ化して、電力消費を低減し、利用可能なオンボード電源リソースを節約することができる。
図1を参照すると、いくつかの実施形態では、乗物10は、制御線171によってプロセッサ130に接続された電源(例えば、バッテリまたはバッテリのアレイ)170を含む。プロセッサ130は、制御線171を介して、電源170で利用可能な電力量を監視することができ、任意選択的に、乗物10の電力消費率などの他の電力関連パラメータを測定/判定することができる。利用可能な電力量が特定の閾値レベルを下回った場合、および/または電力消費率が特定の閾値レベルを超えて上昇した場合、プロセッサ130は、回路103内の1つまたは複数のCMEIを選択的に非アクティブ化することができ、または、入力モジュール202が回路103内の1つまたは複数のCMEIを非アクティブ化できるように、入力モジュール202に適切な制御信号を送信することができる。特定の実施形態では、1つまたは複数の閾値を、利用可能な電力レベル、および/または、電力消費率などの他のパラメータに対して確立でき、各閾値を超えると、1つまたは複数の追加のCMEIを非アクティブ化して、追加の電力資源を節約することができる。
【0082】
一方、電源170の利用可能な電力が増加する、および/または、乗物10の電力消費率などの他のパラメータが変化する(すなわち、電力消費率が低下する)と、前述の閾値が逆方向に交差し、先に非アクティブ化されたCMEIは、電力を再供給されることにより再アクティブ化される。それらの再アクティブ化されたCMEIは、その後、暗号化/復号化のために入力モジュール202からデータパケットを受信するために利用可能なCMEIのプールに再び加わる。
【0083】
前述の説明は、暗号化または復号化のために受信(incoming)データストリームを処理する回路100に焦点を当ててきたが、いくつかの実施形態では、特定のCMEIを受信データパケットの復号化専用にするとともに、特定のCMEIを受信データパケットの暗号化専用にすることができ、それにより両方のタスクを同時に実行する。受信データストリームは単一のソースから到着することも、複数のソースから多重化されたデータパケットを含むこともあり、そこでは暗号化用と復号化用のデータパケットが混在している。各パケットのヘッダには、上述の他のヘッダ情報に加えて、入力モジュール202が各パケットを復号化または暗号化のためにCMEIに送信するかどうかを決定できるようにする情報が含まれる。
【0084】
いくつかの実施形態では、温度の上昇によって障害が発生しないことを保証するために、1つまたは複数のCMEIを非アクティブ化することができる。例えば、乗物10および/または回路100は、制御線181によってプロセッサ130に接続された温度センサ180を含むことができる。プロセッサ130は、センサ180によって測定された温度を監視する。通常、回路100は、軌道周期により、そして対流のない環境での高帯域幅のデータストリームの処理により、重大な温度変動にさらされることになる。
【0085】
回路100の温度が特定の値を超えて上昇すると、CMEIおよび回路100の他のコンポーネントは、熱誘発故障の危険にさらされる。この可能性を軽減するために、センサ180によって測定された温度が閾値温度値を超えている場合、プロセッサ130および/または入力モジュール202は、1つまたは複数(またはすべて)のCMEIを選択的に非アクティブ化して、回路100を冷却できるようにし、CMEIの障害を防止する。温度が閾値レベルを下回ると、非アクティブ化された1つ以上のCMEIが再度アクティブ化されて、暗号化/復号化用のデータパケットの受信に利用可能なCMEIのプールに再び加わる。
【0086】
図1では、単一の温度センサ180が存在する。特定の実施形態では、複数の温度センサが存在してもよい。例えば、温度センサは、複数のCMEIまたは複数のCMEIのグループのそれぞれに取り付けたり、その近くに配置したりできる。各CMEIが専用の温度センサを有する場合、入力モジュール202および/またはコントローラ130は、各CMEIの温度を監視することができ、測定された温度が閾値を超えるCMEIを非アクティブ化することができる。同様に、測定温度が閾値を下回った個々のCMEIを再アクティブ化することができる。
【0087】
いくつかの実施形態では、コントローラ130および/または入力モジュール202は、受信データストリームのパラメータに基づいて、CMEIを選択的にアクティブ化または非アクティブ化することができる。例えば、受信(incoming)データストリームの帯域幅が大きいほど、ストリームのデータパケットを暗号化/復号化するためにアクティブ化できるCMEIの数も多くなる。逆に、受信データストリームの帯域幅が小さいほど、ストリームのデータパケットを暗号化/復号化するためにアクティブ化できるCMEIの数も少なくなる。特定の実施形態では、コントローラ130は、回路100における暗号化/復号化に使用されるCMEIの数と、回路100のデータスループットと、の間の関係を表す格納された校正情報を含むことができる。受信データストリームの帯域幅に基づいて、コントローラ130は、受信データストリームを暗号化/復号化するためにアクティブ化する適切なCMEIの数を決定できるため、データストリームを処理するために回路のCMEIのすべてがアクティブ化されるわけではない。特定の実施形態では、コントローラ130は、受信データストリームの帯域幅と一致させるために必要な数を超えて追加のCMEIがアクティブ化されないことを保証する。
【0088】
いくつかの実施形態では、乗物10は、受信データストリームが送られる任意選択的なデータ記憶ユニット190を含むことができる。データ記憶ユニット190は、受信データパケットが回路100によって暗号化/復号化されるまで、それらの受信データパケットを任意選択的に記憶することができる。上述したように、いくつかの実施形態では、回路100のデータスループットレートは、受信データストリームの帯域幅と同じか、またはそれを超える。このような状況では、受信データストリームを中間記憶することなく、受信データストリームをリアルタイムで処理して送信(outgoing)データストリームを生成することができる。一方、受信データストリーム内のデータの性質および送信データストリームが送信されるデータ受信機によっては、受信データストリームと同じ帯域幅で送信データストリームを生成する必要がない場合がある。さらに、乗物の電力貯蔵量が上述の閾値を下回っている場合、および/または電力消費率が上述の閾値を超えている場合、回路100の全体の電力消費量を低減することによって電力資源を節約することが有利である。
【0089】
このような状況では、前述のように1つ以上のCMEIを非アクティブ化することができる。そうすることにより、回路100のデータスループットレートが受信データストリームの帯域幅よりも低下しうる。しかしながら、データ記憶ユニット190は、データバッファとして動作し、低減されたデータスループットレートで動作する回路100によって暗号化/復号化できるまで受信データパケットを記憶することができる。特定の実施形態では、回路100内でアクティブ化された状態のCMEIの数は、回路100のデータスループットレートを送信データストリームの所望の帯域幅に適合させるように、プロセッサ130によって選択される。
【0090】
回路100の特別な利点は、暗号化キー管理に関する回路の柔軟性である。いくつかの実施形態では、回路100内のCMEIのそれぞれは、同じ暗号化キーまたは暗号化キーのセットを使用することができる。しかしながら、特定の実施形態では、CMEIのグループは異なる暗号化キーまたはキーセットを使用することができ、さらに各CMEIが独自の一意の暗号化キーまたはキーセットを有することができる。複数の暗号化キーを使用してデータを処理することにより、データストリームのさまざまなパケットを暗号化/復号化して、さまざまなタイプのパケットにさまざまなレベルのセキュリティを提供することができる。例えば、軌道および操縦制御信号に対応するデータパケットを、地上局へのより日常的な通信信号に対応するデータパケットよりも強力に暗号化することができる。
【0091】
さらに、データストリームの個々のパケットを複数の暗号化キーで暗号化/復号化することにより、データストリームの安全性が高められる。単一のキーで暗号化されたデータストリームの場合、データストリーム全体の安全性は単一の障害点まで低下する。権限のない第三者が暗号化キーを取得した場合、データストリーム全体が復号化される可能性がある。逆に、個々のパケットが異なるキーで暗号化されているデータストリームの場合、権限のない第三者が暗号化キーの1つを取得した場合、ストリームのデータパケットの一部のみを復号化できるに過ぎず、一般にデータストリーム全体を復号化または再構築することはできない。
【0092】
さらに、回路100は、CMEIによって使用される暗号化キーを必要に応じて頻繁に変更できるようにする。キーが回路100内で使用されなくなった場合、暗号化キーの不正な発見または捕捉が無効になるため、キーを頻繁に変更することにより、データストリームに別のセキュリティ層が提供される。上述したように、プロセッサ130は、直接、または入力モジュール202を通して、暗号化キーを回路100の複数のCMEIに配布することができる。キーは、CMEIに順次に、または並行して配布することができる。特に、複数のCMEIへの暗号化キーの並行配信は、ミッション中のキーの再作成がミッションのセキュリティにとって重要である、多くのミッションにおいて重要な利点である。
【0093】
いくつかの実施形態では、新しい暗号化キーが、回路100の複数のCMEIの一部またはすべてに定期的に配信される。新しいキーが配信されるとき、すべてのCMEIを同時にキー再生成することも可能であり、代替的に、キー再生成イベントごとに複数のCMEIの一部のみが新しい暗号化キーを受け取ることもできる。
【0094】
特定の実施形態では、特定のイベントまたは状況に応じて、新しい暗号化キーがCMEIの一部またはすべてに配信される。例えば、乗物10からの送信データストリームが部分的または完全に破損している場合、新しいキーを配信することができる。別の例として、(例えば、回路100で使用される1つまたは複数の暗号化キーが侵害される)セキュリティ侵害が検出または疑われる場合、新しいキーを配信することができる。さらなる例として、第三者が乗物への通信アクセスを許可されている場合、既存の暗号化キーを第三者に提供することを避けるために、新しいキーを配信することができる。
【0095】
回路100のコンポーネントをさらに保護するために、回路を、任意選択的に、宇宙から運ばれるデブリからの物理的保護を提供するハウジング290内に封入することができる。ハウジング290は、プラスチックや金属を含む様々なタイプの硬質材料から形成することができる。物理的保護に加えて、ハウジング290が金属で形成されている場合、ハウジング290は回路100を電磁放射線から遮蔽し、軌道環境におけるそのような放射線への曝露によって生じる可能性のある、回路100のコンポーネントへの損傷を軽減する。
【0096】
(ハードウェアとソフトウェアの実装)
図1,2に示されるコンポーネントに加えて、宇宙船および暗号システムは、回路100とは別個の(そして別のコンポーネントを介して直接的または間接的に回路100に接続される)、または回路100に統合される、追加のコンポーネントを含むことができる。
図4は、コンピューティングシステム400の一例であり、そのコンポーネントは乗物10に搭載されている(そして、その一部またはすべてが回路100に統合されていてもよい)。システム400は、1つまたは複数のプロセッサ402(例えば、電子プロセッサ130)、メモリ404、記憶装置406、および相互接続のためのインターフェース408を含む。1つまたは複数のプロセッサ402は、メモリ404または記憶装置406に格納された命令を含む、コントローラ内で実行するための命令を処理することができる。例えば、命令は、プロセッサ402に、本明細書中に記載の分析および制御ステップのいずれかを実行するように命令することができる。
【0097】
メモリ404は、プロセッサ402に対する実行可能な命令、通信プロトコルなどの乗物のパラメータに関する情報、消費電力および可用性情報、コンポーネントの可用性情報、ナビゲーション命令、ならびに他の多種多様な校正および動作設定および命令を格納することができる。ストレージデバイス406は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスなどのコンピュータ可読媒体、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークまたはその他の構成内の複数のデバイスを含むデバイスのアレイであってもよい。記憶装置406は、上記のプロセッサ402によって実行可能な命令、およびメモリ404によって記憶可能なその他の情報のいずれかを記憶することができる。
【0098】
本明細書で説明される方法ステップのいずれも、プロセッサによって実行可能および/または解釈可能な1つまたは複数のコンピュータプログラム内の命令を実行する、システム400のコンポーネント(電子プロセッサ130としてプロセッサ402を含む)によって実装され得る。これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ言語/機械語で実装することができる。例えば、コンピュータプログラムは、メモリ404、記憶ユニット406、および/または有形のコンピュータ可読媒体に記憶され、上述したようにプロセッサ402によって実行され得る命令を含むことができる。本明細書で使用される場合、用語「コンピュータ可読媒体」とは、機械命令および/またはデータを、プログラマブルプロセッサに提供するように用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD)、ASIC、および電子回路)を指し、機械命令を受け取る機械可読媒体を含む。
【0099】
回路100のモジュールも上記のように実装することができる。例えば、入力モジュール202および/または出力モジュール206、および暗号モジュール204a~204nのいずれかは、任意選択的に上記の他のコンポーネントのいずれかに接続され、本明細書中に説明される機能のいずれかを行うソフトウェア命令を実行するプロセッサとして実装することができる。モジュールのいずれも、本明細書中に説明される機能のいずれかを実行するために、プログラマブル論理デバイス、特定用途向け集積回路、電子回路、またはそれらの実装の任意の組み合わせとして実装することもできる。
【0100】
(他の実施形態)
本開示は特定の実装を説明するが、これらは本開示の範囲を限定するものとして解釈されるべきではなく、特定の実施形態における特徴の説明として解釈されるべきである。別個の実施形態の文脈で説明される特徴は、一般に、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明される様々な特徴は、複数の実施形態において個別に、または任意の適切なサブコンビネーションで実装することもできる。さらに、特徴が特定の組み合わせに存在するものとして上で説明され、最初にそのように特許請求されている場合もあるが、一般に、特許請求の範囲に記載された組み合わせから1つ以上の特徴を組み合わせから削除することができ、特許請求の範囲に記載された組み合わせが、サブコンビネーションまたはそのサブコンビネーションの変形例に向けられてもよい。
【0101】
本明細書中に明示的に開示された実施形態に加えて、開示の精神および範囲から逸脱することなく、説明された実施形態に対する様々な修正がなされ得ることが理解されるであろう。したがって、他の実施形態も以下の特許請求の範囲に含まれる。
【国際調査報告】