(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-12
(54)【発明の名称】安全なデータ伝送のための方法、装置およびデバイス
(51)【国際特許分類】
H04L 9/08 20060101AFI20241205BHJP
【FI】
H04L9/08 C
H04L9/08 E
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024540781
(86)(22)【出願日】2022-12-20
(85)【翻訳文提出日】2024-07-23
(86)【国際出願番号】 CN2022140439
(87)【国際公開番号】W WO2023130952
(87)【国際公開日】2023-07-13
(31)【優先権主張番号】202210005672.6
(32)【優先日】2022-01-05
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】505164405
【氏名又は名称】西安西▲電▼捷通▲無▼綫▲網▼絡通信股▲分▼有限公司
【氏名又は名称原語表記】CHINA IWNCOMM CO., LTD.
(74)【代理人】
【識別番号】100206335
【氏名又は名称】太田 和宏
(72)【発明者】
【氏名】グオ ジンファ
(72)【発明者】
【氏名】リー チン
(72)【発明者】
【氏名】ファン ルーリン
(57)【要約】
本発明は、安全なデータ伝送のための方法、装置およびデバイスを提供する。当該方法は、ノード1が、ノード1自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するステップと、前記ノード1が、計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するステップと、前記ノード2が、受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算し、計算されたIV
1と前記鍵を使用して暗号化された第1のデータパケットを復号化するステップと、前記ノード2が、前記ノード2自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するステップと、前記ノード2が、計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化して前記ノード1に送信するステップと、前記ノード1が、受信した第2のデータパケット内のSN
2値を取得し、取得したSN
2値に対して前記第2の数学的変換を実行し、前記IV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するステップと、を含み、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなる。本発明は、双方向SAを通じて2つのノード間の安全なデータ伝送を実現し、必要なリソースを削減する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
安全なデータ伝送のための方法であって、
ノード1が、ノード1自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するステップと、
前記ノード1が、計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するステップと、
前記ノード2が、受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算し、計算されたIV
1と前記鍵を使用して暗号化された第1のデータパケットを復号化するステップと、
前記ノード2が、前記ノード2自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するステップと、
前記ノード2が、計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化して前記ノード1に送信するステップと、
前記ノード1が、受信した第2のデータパケット内のSN
2値を取得し、取得したSN
2値に対して前記第2の数学的変換を実行し、前記IV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するステップと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための方法。
【請求項2】
前記ノード1/前記ノード2は、第1の初期化ベクトルIV
1を計算する前に、
SN
1とIV
1のオーバーフロー順序を判断するステップをさらに含み、
SN
1が最初にオーバーフローすると判断された場合、更新された/取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算するステップは、
IV
1を計算するためのSN
1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ
1を合計してIV
1を計算するステップを含み、
IV
1が最初にオーバーフローすると判断された場合、更新された/取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算するステップは、
IV
1を計算するためのSN
1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q
1を合計してIV
1を計算するステップを含み、
前記Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV
1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV
1が最初にオーバーフローしたときのIV
1の低位n-kビットの最大値2
n-kであることを特徴とする、請求項1に記載の安全なデータ伝送のための方法。
【請求項3】
前記SN
1とIV
1のオーバーフロー順序を判断するステップは、
IV
1の長さnと前記高位ビットの長さkの差を計算するステップと、
SN
1の長さmが前記差より大きくない場合、SN
1が最初にオーバーフローしたと判断するステップと、
SN
1の長さmが前記差よりも大きい場合、IV
1が最初にオーバーフローしたと判断するステップと、を含むことを特徴とする、請求項2に記載の安全なデータ伝送のための方法。
【請求項4】
前記ノード2/前記ノード1が第2の初期化ベクトルIV
2を計算する前に、
SN
2とIV
2のオーバーフロー順序を判断するステップをさらに含み、
SN
2が最初にオーバーフローしたと判断された場合、更新された/取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算するステップは、
IV
2を計算するためのSN
2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ
2を合計してIV
2を計算するステップを含み、
IV
2が最初にオーバーフローしたと判断された場合、更新された/取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算するステップは、
IV
2を計算するためのSN
2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q
2を合計してIV
2を計算するステップを含み、
前記Q
2は0であるか、またはPの整数倍ではなく、前記Q
2は前記Q
1と異なり、前記Cの長さはIV
2の長さnに等しく、前記Mは、IV
2が最初にオーバーフローしたときのIV
2の低位n-kビットの最大値2
n-kであることを特徴とする、請求項2に記載の安全なデータ伝送のための方法。
【請求項5】
前記SN
2とIV
2のオーバーフロー順序を判断するステップは、
IV
2の長さnと前記高位ビットの長さkの差を計算するステップと、
SN
2の長さmが前記差より大きくない場合、SN
2が最初にオーバーフローしたと判断するステップと、
SN
2の長さmが前記差よりも大きい場合、IV
2が最初にオーバーフローしたと判断するステップと、を含むことを特徴とする、請求項4に記載の安全なデータ伝送のための方法。
【請求項6】
前記ノード1/前記ノード2は、第1の初期化ベクトルIV
1を計算する前に、
SN
1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
1の最大値以下であり、
IV
1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
1の低位n-kビットの最大値より大きくないことを特徴とする、請求項2に記載の安全なデータ伝送のための方法。
【請求項7】
前記ノード2/前記ノード1が第2の初期化ベクトルIV
2を計算する前に、
SN
2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
2の最大値より大きくなく、
IV
2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
2の低位n-kビットの最大値より大きくないことを特徴とする、請求項4に記載の安全なデータ伝送のための方法。
【請求項8】
前記鍵の更新動作が開始される場合、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することを特徴とする、請求項6または請求項7に記載の安全なデータ伝送のための方法。
【請求項9】
更新された新しい鍵をデータ送信時に使用する鍵として使用する場合、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算することを特徴とする、請求項8に記載の安全なデータ伝送のための方法。
【請求項10】
前記P値は2、前記Q
1値は0、前記Q
2値は-1、前記C値は乱数であることを特徴とする、請求項4に記載の安全なデータ伝送のための方法。
【請求項11】
安全なデータ伝送のためのデバイスであって、
メモリとプロセッサとを含み、
前記メモリは、コンピュータプログラムを格納するように構成され、
前記プロセッサは、前記メモリ内のプログラムを読み取り、請求項1から請求項10のいずれか一項のノード1側の安全なデータ伝送のための方法またはノード2側の安全なデータ伝送のための方法のステップを実行するように構成されることを特徴とする、安全なデータ伝送のためのデバイス。
【請求項12】
安全なデータ伝送のための装置であって、
自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するように構成される第1の計算ユニットと、
計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するように構成される第1の暗号化ユニットと、
受信した第2のデータパケット内のSN
2値を計算し、取得したSN
2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するように構成される第1の復号化ユニットと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための装置。
【請求項13】
前記第1の計算ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1とIV
1のオーバーフロー順序を判断し、
SN
1が最初にオーバーフローすると判断された場合、更新されたSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ
1を合計してIV
1を計算することを含み、
IV
1が最初にオーバーフローすると判断された場合、更新されたSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q
1を合計してIV
1を計算することを含み、
前記Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV
1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV
1が最初にオーバーフローしたときのIV
1の低位n-kビットの最大値2
n-kであることを特徴とする、請求項12に記載の安全なデータ伝送のための装置。
【請求項14】
前記第1の計算ユニットがSN
1とIV
1のオーバーフロー順序を判断することは、
IV
1の長さnと前記高位ビットの長さkの差を計算し、
SN
1の長さmが前記差より大きくない場合、SN
1が最初にオーバーフローしたと判断し、
SN
1の長さmが前記差よりも大きい場合、IV
1が最初にオーバーフローしたと判断することを含むことを特徴とする、請求項13に記載の安全なデータ伝送のための装置。
【請求項15】
前記第1の復号化ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2とIV
2のオーバーフロー順序を判断し、
SN
2が最初にオーバーフローしたと判断された場合、取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ
2を合計してIV
2を計算することを含み、
IV
2が最初にオーバーフローしたと判断された場合、取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q
2を合計してIV
2を計算することを含み、
前記Q
2は0であるか、またはPの整数倍ではなく、前記Q
2は前記Q
1と異なり、前記Cの長さはIV
2の長さnに等しく、前記Mは、IV
2が最初にオーバーフローしたときのIV
2の低位n-kビットの最大値2
n-kであることを特徴とする、請求項13に記載の安全なデータ伝送のための装置。
【請求項16】
前記第1の復号化ユニットがSN
2とIV
2のオーバーフロー順序を判断することは、
IV
2の長さnと前記高位ビットの長さkの差を計算し、
SN
2の長さmが前記差より大きくない場合、SN
2が最初にオーバーフローしたと判断し、
SN
2の長さmが前記差よりも大きい場合、IV
2が最初にオーバーフローしたと判断することを含むことを特徴とする、請求項15に記載の安全なデータ伝送のための装置。
【請求項17】
前記第1の計算ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
1の最大値以下であり、
IV
1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
1の低位n-kビットの最大値より大きくないことを特徴とする、請求項13に記載の安全なデータ伝送のための装置。
【請求項18】
前記第1の復号化ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
2の最大値より大きくなく、
IV
2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
2の低位n-kビットの最大値より大きくないことを特徴とする、請求項15に記載の安全なデータ伝送のための装置。
【請求項19】
前記第1の計算ユニット/第1の復号化ユニットが鍵の更新動作を開始するとき、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することを特徴とする、請求項17または請求項18に記載の安全なデータ伝送のための装置。
【請求項20】
前記第1の計算ユニット/第1の復号化ユニットが更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算することを特徴とする、請求項19に記載の安全なデータ伝送のための装置。
【請求項21】
前記P値は2、前記Q
1値は0、前記Q
2値は-1、前記C値は乱数であることを特徴とする、請求項15に記載の安全なデータ伝送のための装置。
【請求項22】
安全なデータ伝送のための装置であって、
受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算し、計算されたIV
1と鍵を使用して暗号化された第1のデータパケットを復号化するように構成される第2の復号化ユニットと、
自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するように構成される第2の計算ユニットと
計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信するように構成される第2の暗号化ユニットと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための装置。
【請求項23】
前記第2の復号化ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1とIV
1のオーバーフロー順序を判断し、
SN
1が最初にオーバーフローすると判断された場合、取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ
1を合計してIV
1を計算することを含み、
IV
1が最初にオーバーフローすると判断された場合、取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q
1を合計してIV
1を計算することを含み、
前記Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV
1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV
1が最初にオーバーフローしたときのIV
1の低位n-kビットの最大値2
n-kであることを特徴とする、請求項22に記載の安全なデータ伝送のための装置。
【請求項24】
前記第2の復号化ユニットがSN
1とIV
1のオーバーフロー順序を判断することは、
IV
1の長さnと前記高位ビットの長さkの差を計算し、
SN
1の長さmが前記差より大きくない場合、SN
1が最初にオーバーフローしたと判断し、
SN
1の長さmが前記差よりも大きい場合、IV
1が最初にオーバーフローしたと判断することを含むことを特徴とする、請求項23に記載の安全なデータ伝送のための装置。
【請求項25】
前記第2の計算ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2とIV
2のオーバーフロー順序を判断し、
SN
2が最初にオーバーフローしたと判断された場合、更新されたSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ
2を合計してIV
2を計算することを含み、
IV
2が最初にオーバーフローしたと判断された場合、更新されたSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q
2を合計してIV
2を計算することを含み、
前記Q
2は0であるか、またはPの整数倍ではなく、前記Q
2は前記Q
1と異なり、前記Cの長さはIV
2の長さnに等しく、前記Mは、IV
2が最初にオーバーフローしたときのIV
2の低位n-kビットの最大値2
n-kであることを特徴とする、請求項23に記載の安全なデータ伝送のための装置。
【請求項26】
前記第2の計算ユニットがSN
2とIV
2のオーバーフロー順序を判断することは、
IV
2の長さnと前記高位ビットの長さkの差を計算し、
SN
2の長さmが前記差より大きくない場合、SN
2が最初にオーバーフローしたと判断し、
SN
2の長さmが前記差よりも大きい場合、IV
2が最初にオーバーフローしたと判断することを含むことを特徴とする、請求項25に記載の安全なデータ伝送のための装置。
【請求項27】
前記第2の復号化ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
1の最大値以下であり、
IV
1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
1の低位n-kビットの最大値より大きくないことを特徴とする、請求項23に記載の安全なデータ伝送のための装置。
【請求項28】
前記第2の計算ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
2の最大値より大きくなく、
IV
2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
2の低位n-kビットの最大値より大きくない。ことを特徴とする、請求項25に記載の安全なデータ伝送のための装置。
【請求項29】
前記第2の復号化ユニット/第2の計算ユニットが鍵の更新動作を開始するとき、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することを特徴とする、請求項27または請求項28に記載の安全なデータ伝送のための装置。
【請求項30】
前記第2の復号化ユニット/第2の計算ユニットが更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算することを特徴とする、請求項29に記載の安全なデータ伝送のための装置。
【請求項31】
前記P値は2、前記Q
1値は0、前記Q
2値は-1、前記C値は乱数であることを特徴とする、請求項25に記載の安全なデータ伝送のための装置。
【請求項32】
コンピュータプログラム媒体であって、
前記コンピュータプログラムを格納し、
前記プログラムがプロセッサによって実行されると、請求項1から請求項10のいずれか一項のノード1側の安全なデータ伝送のための方法またはノード2側の安全なデータ伝送のための方法のステップを実現することを特徴とする、コンピュータプログラム媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年01月05日に中国特許局に提出し、出願番号が202210005672.6であり、発明名称が「安全なデータ伝送のための方法、装置およびデバイス」との中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。
【0002】
技術分野
本発明は、通信技術の分野に関し、特に、安全なデータ伝送のための方法、装置およびデバイスに関する。
【背景技術】
【0003】
インターネットプロトコルセキュリティ(Internet Protocol Security,IPSec)は、2つのノード間の安全な通信を提供する。セキュリティ・アソシエーション(Security Association,SA)はIPsecの基礎であり、通信情報を保護するために使用される一連のポリシーと鍵を指す。初期化ベクトル(Initialization Vector,IV)は初期化変数(Starting Variable,SV)とも呼ばれ、固定長の入力値であり、通常は乱数または擬似乱数(pseudorandom)である。
【0004】
既存の技術では、IPSecの2つのノードが双方向通信を行う場合、データパケットに含まれるシリアル番号(Serial Number,SN)を通じてIVが計算され、パケットの暗号化/復号化は、SA内の鍵とIV値によって共同で行われる。上記SAは単方向の論理接続であり、上記2つのノードが双方向通信を行う場合、インバウンド通信用とアウトバウンド通信用の一対のSAを確立する必要があるため、単方向SAを用いる方式はシステムリソースを消費するという欠点がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、単方向SAを用いる方式はシステムリソースを消費するという従来技術の問題を解決する、安全なデータ伝送のための方法、装置およびデバイスを提供する。
【課題を解決するための手段】
【0006】
第1の態様では、本発明は安全なデータ伝送のための方法を提供し、前記方法は、
ノード1が、ノード1自体の初期化されたシリアル番号SN1値を増分的に更新し、更新されたSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算するステップと、
前記ノード1が、計算されたIV1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するステップと、
前記ノード2が、受信した第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算し、計算されたIV1と前記鍵を使用して暗号化された第1のデータパケットを復号化するステップと、
前記ノード2が、前記ノード2自体の初期化されたシリアル番号SN2値を増分的に更新し、更新されたSN2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV2を計算するステップと、
前記ノード2は、前記IV2と前記鍵に基づき第2のデータパケットを暗号化した後、前記ノード1に送信するステップと、
前記ノード1が、受信した第2のデータパケット内のSN2値を取得し、取得したSN2値に対して前記第2の数学的変換を実行し、前記IV2を計算し、計算されたIV2と前記鍵を使用して暗号化された第2のデータパケットを復号化するステップと、を含み、
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0007】
任意選択で、前記ノード1/前記ノード2は、第1の初期化ベクトルIV1を計算する前に、
SN1とIV1のオーバーフロー順序を判断するステップをさらに含み、
SN1が最初にオーバーフローすると判断された場合、更新された/取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算するステップは、
IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ1を合計してIV1を計算するステップと、
IV1が最初にオーバーフローすると判断された場合、更新された/取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算するステップは、
IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q1を合計してIV1を計算するステップと、
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値2n-kである。
【0008】
任意選択で、前記SN1とIV1のオーバーフロー順序を判断するステップは、
IV1の長さnと前記高位ビットの長さkの差を計算するステップと、
SN1の長さmが前記差より大きくない場合、SN1が最初にオーバーフローしたと判断するステップと、
SN1の長さmが前記差よりも大きい場合、IV1が最初にオーバーフローしたと判断するステップとを含む。
【0009】
任意選択で、前記ノード2/前記ノード1が第2の初期化ベクトルIV2を計算する前に、
SN2とIV2のオーバーフロー順序を判断するステップをさらに含み、
SN2が最初にオーバーフローしたと判断された場合、更新された/取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算するステップは、
IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ2を合計してIV2を計算するステップを含み、
IV2が最初にオーバーフローしたと判断された場合、更新された/取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算するステップは、
IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q2を合計してIV2を計算するステップを含み、
ここで、Q2は0であるか、またはPの整数倍ではなく、前記Q2は前記Q1と異なり、前記Cの長さはIV2の長さnに等しく、前記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値2n-kである。
【0010】
任意選択で、前記SN2とIV2のオーバーフロー順序を判断するステップは、
IV2の長さnと前記高位ビットの長さkの差を計算するステップと、
SN2の長さmが前記差より大きくない場合、SN2が最初にオーバーフローしたと判断するステップと、
SN2の長さmが前記差よりも大きい場合、IV2が最初にオーバーフローしたと判断する。
【0011】
任意選択で、前記ノード1/前記ノード2は、第1の初期化ベクトルIV1を計算する前に、さらに、
SN1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN1の最大値以下であり、
IV1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV1の低位n-kビットの最大値より大きくない。
【0012】
任意選択で、前記ノード2/前記ノード1が第2の初期化ベクトルIV2を計算する前に、さらに、
SN2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN2の最大値より大きくなく、
IV2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV2の低位n-kビットの最大値より大きくない。
【0013】
任意選択で、前記鍵の更新動作が開始される場合、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始する。
【0014】
任意選択で、更新された新しい鍵をデータ送信時に使用する鍵として使用する場合、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算するステップをさらに含む。
【0015】
任意選択で、前記P値は2、前記Q1値は0、前記Q2値は-1、前記C値は乱数である。
【0016】
第2の態様では、本発明は、安全なデータ伝送のための装置を提供し、前記装置は、
自体の初期化されたシリアル番号SN1値を増分的に更新し、更新されたSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算するように構成される第1の計算ユニットと、
計算されたIV1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するように構成される第1の暗号化ユニットと、
受信した第2のデータパケット内のSN2値を計算し、取得したSN2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV2を計算し、計算されたIV2と前記鍵を使用して暗号化された第2のデータパケットを復号化するように構成される第1の復号化ユニットと、を含み、
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0017】
第3の態様では、本発明は安全なデータ伝送のための装置を提供し、前記装置は、
受信した第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算し、計算されたIV1と鍵を使用して暗号化された第1のデータパケットを復号化するように構成される第2の復号化ユニットと、
自体の初期化されたシリアル番号SN2値を増分的に更新し、更新されたSN2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV2を計算するように構成される第2の計算ユニットと、
計算されたIV2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信するように構成される第2の暗号化ユニットと、を含み、
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0018】
第4の態様,本発明は、安全なデータ伝送のためのデバイスを提供し、当該デバイスは、メモリとプロセッサとを含み、
前記メモリは、コンピュータプログラムを格納するように構成され、
前記プロセッサは、前記メモリ内のプログラムを読み取り、第1の態様で提供されるノード1側の安全なデータ伝送のための方法のステップ、またはノード2側の安全なデータ伝送のための方法のステップを実行するように構成される。
【0019】
第5の態様では、本発明はコンピュータプログラムが格納されるコンピュータプログラム媒体を提供し、前記プログラムがプロセッサによって実行されると、第1の態様で提供されるノード1側の安全なデータ伝送のための方法のステップ、またはノード2側の安全なデータ伝送のための方法のステップを実現する。
【発明の効果】
【0020】
本発明によって提供される安全なデータ伝送のための方法、装置およびデバイスは、次の有益な効果がある。
【0021】
本発明の実施形態により、通信ノード間のすべてのデータインタラクションは、異なる初期化ベクトルIVと同じ鍵を使用して秘密通信を行うことを可能にし、通信の安全性を確保することに基づいて、インバウンド通信とアウトバウンド通信が同じ鍵を使用でき、すなわち、通信ノード間で1つのSAのみを確立し維持する必要がある。一方、従来技術では、通信の安全性を確保するために、通信ノード間でインバウンド通信用とアウトバウンド通信用の一対のSAを確立し維持する必要があり、すなわち、インバウンド通信には1つの鍵を使用し、アウトバウンド通信には別の鍵を使用する。1つのノードが多数のノードと通信する場合、本発明の実施形態は、ノードが確立・維持する必要のあるSAの数を大幅に削減し、システムリソースの消費を大幅に削減する。
【図面の簡単な説明】
【0022】
【
図1】本発明の実施例によって提供される安全なデータ伝送のためのアプリケーションシナリオの概略図である。
【
図2】本発明の実施例によって提供される安全なデータ伝送のための方法のフローチャートである。
【
図3】本発明の実施例によって提供される微分パラメータCの概略図である。
【
図4】本発明の実施例によって提供されるノード1/ノード2第1の初期化ベクトルIV
1を計算するためのフローチャートである。
【
図5】本発明の実施例によって提供されるノード2/ノードが1第2の初期化ベクトルIV
2を計算するためのフローチャートである。
【
図6】本発明の実施例によって提供されるカプセル化フォーマットを有する安全なデータ伝送の概略図である。
【
図7】本発明の実施例によって提供されるカプセル化フォーマットを有しない安全なデータ伝送の概略図である。
【
図8】本発明の実施例によって提供されるカプセル化フォーマットを有する安全なデータ伝送のためのフローチャートである。
【
図9】本発明の実施例によって提供されるカプセル化フォーマットを有する安全なデータ伝送のための別のフローチャートである。
【
図10】本発明の実施例によって提供される安全なデータ伝送のための装置の概略構造図である。
【
図11】本発明の実施例によって提供される安全なデータ伝送のための装置の別の概略構造図である。
【
図12】本発明の実施例によって提供される安全なデータ伝送のためのデバイスの概略構造図である。
【発明を実施するための形態】
【0023】
本発明の目的、技術的解決策および利点をより明確にするために、添付の図面を参照して本発明をさらに詳細に以下に説明する。説明した実施形態は、本発明の実施形態の一部に過ぎず、そのすべてではない。本発明の実施形態に基づいて、当業者が創造的な努力なしに得た他のすべての実施形態は、本発明の保護の範囲内に入る。
【0024】
以下において、「第1」、「第2」という用語は、説明を区別する目的でのみ使用され、相対的な重要性を暗示または示唆するもの、または示された技術的特徴の数を暗黙的に指定するものとして理解されるものではない。その結果、「第1」、「第2」で定義される特徴は、明示的または暗黙的に1つまたは複数のそのような特徴を含み得、本発明の実施形態の説明において、特に明記しない限り、「少なくとも1つ」は、1つ以上を意味する。
【0025】
以下の例示的な実施形態で説明される実施は、本発明と一致するすべての実施を表すものではない。むしろ、それらは、添付の特許請求の範囲に詳述されている本願の態様と一致する装置および方法の単なる例にすぎない。本発明の実施形態に基づいて、当業者が創造的な努力なしに得た他のすべての実施形態は、本願の保護の範囲内に入る。
【0026】
また、本発明の実施形態の説明において、特に断らない限り、「/」は「または」を意味し、例えば、A/BはAまたはBを意味する場合がある。また、本発明の実施形態の説明において、「複数」は2つまたは2つ以上を意味し、他の量化詞も同様に使用されるべきである。本明細書に記載された好ましい実施形態は、本願発明を例示し説明することのみを意図したものであり、本願発明を限定することを意図したものではなく、実施形態および実施形態の特徴は、矛盾することなく互いに組み合わせることができることを理解されたい。
【0027】
単方向SAを用いる方式はシステムリソースを消費するという従来技術の問題を考慮して、本発明は、安全なデータ伝送のための方法、装置およびデバイスを提供する。
【0028】
以下、添付図面を参照して、本発明の実施例内の安全なデータ伝送のための方法、装置およびデバイスについて説明する。
【0029】
図1に示すように、本発明の実施例は、安全なデータ伝送のためのアプリケーションシナリオの概略図を提供する。
【0030】
ノード1は、ノード1の初期化されたシリアル番号SN1値を増分的に更新し、更新されたSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算し、計算されたIV1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信し、受信した第2のデータパケット内のSN2値を計算し、取得したSN2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV2を計算し、計算されたIV2と前記鍵で暗号化された第2のデータパケットを復号化するように構成される。
【0031】
ノード2は、受信した第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、IV1を計算する。計算されたIV1と前記鍵を使用して暗号化された第1のデータパケットを復号化し、自体の初期化されたシリアル番号SN2値を増分的に更新し、更新されたSN2値に対して前記第2の数学的変換を実行し、IV2を計算し、計算されたIV2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信するように構成される。
【0032】
ここで、暗号化された第1のデータパケットは、少なくともSN1値フィールドおよび暗号化データフィールドを含む。暗号化された第2のデータパケットは、少なくともSN2値フィールドと暗号化データフィールドを含む。前記第1の数学的変換および前記第2の数学的変換により、計算された前記IV1は前記IV2と等しくなくなる。
【0033】
なお、2つの通信相手は上記のようにノード1とノード2によって代表され、2つのノード間で安全な通信を提供する際には、ノード1は、ローカ請求者Requesterであり、ローカREQとして略称され、または、対向エンド応答者Responderであってもよく、ペアエンドREPとして略称される。ノード1がローカREQである場合、ノード2はペアエンドREPである。ノード1がペアエンドREPである場合、ノード2はローカREQである。
【0034】
上記ノード1およびノード2は、例えば、ルータ、ゲートウェイ、スイッチ、ブリッジ、無線アクセスポイント、基地局、ファイアウォール、モデム、ハブ、ネットワークインターフェースコントローラ(Network Interface Controller,NIC)、リバースプロキシ、サーバ(例えば、プロキシサーバ)、マルチプレクサ、セキュリティデバイス、侵入検知デバイス、ロードバランサ、ロードバランサなど、どのような形態のネットワークデバイスであってもよい。あるいは、セルラーネットワーク、ローカルエリアネットワーク(Local Area Network,LAN)、コアネットワーク、アクセスネットワーク、インターネット等のワイドエリアネットワーク(Wide Area Network,WAN)、クラウドネットワーク等であり、本願発明の実施形態が限定しない。
【0035】
また、上記したノード1とノード2との間の通信は、カプセル化フォーマットを有する安全なデータ伝送を含んでいてもよいし、カプセル化フォーマットを有しない安全なデータ伝送を含んでいてもよい。
【0036】
図2に示すように、本発明の実施例は、以下Dステップを含む安全なデータ伝送のための方法のフローチャート図を提供する。
【0037】
S201、ノード1は、ノード1自体の初期化されたシリアル番号SN1値を増分的に更新し、更新されたSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算する。
【0038】
ノード1がノード1自体の初期化されたシリアル番号SN1値を増分的に更新することの意味は、ノード1がSN1値を初期化した後、初期化されたSN1値を増分的に更新する。次回IV1を計算するときに、前回に使用したSN1値を増分的に更新する。
【0039】
本発明の実施例は、上記SN1値が特定の値から開始することを限定するものではなく、また、増分的に更新される上記SN1値の具体的な形式を限定するものでもない。オプションの実施形態として、上記SN1値は1から始まり、毎回1を加算して増分的に更新される。
【0040】
本発明の実施例は上記SN1の初期値を限定するものではなく、上記SN1の初期値は、極端な場合には非常に大きくなる可能性がある。上記極端な場合は、上記SN1の初期値は設定された鍵更新閾値であり、上記極端な場合も本発明の実施例の保護範囲内である。
【0041】
S202、ノード1は、計算されたIV1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信する。
【0042】
計算されたIV1および鍵を採用される暗号化アルゴリズムの2つの入力パラメータとし、採用される暗号化アルゴリズムを使用して第1のデータパケットを暗号化すてノード2に送信する。ここで、第1のデータパケットを暗号化することは、第1のデータパケット内の有効なペイロードを暗号化することである。暗号化された第1のデータパケットは、少なくともSN1値フィールドおよび暗号化データフィールドを含む。
【0043】
S203、ノード2は、受信した第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算し、計算されたIV1と前記鍵を使用して暗号化された第1のデータパケットを復号化する。
【0044】
ノード2は、ノード1から送信された暗号化された第1のデータパケットを受信し、第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、IV1を計算する。本発明内のノード1とノード2との間の通信に双方向SAが使用されるため、2つの通信相手は、1つのSAを確立するだけでよい(当該SAには本発明の実施例に係る鍵が含まれる)。したがって、ノード2は、計算されたIV1和前記鍵を採用される暗号化アルゴリズムの2つの入力パラメータとし、採用される暗号化アルゴリズムを使用して暗号化された第1のデータパケットを復号化する。
【0045】
S204、ノード2は、ノード2の初期化されたシリアル番号SN2値を増分的に更新し、更新されたSN2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV2を計算する。
【0046】
ノード2がノード2の初期化されたシリアル番号SN2値を増分的に更新することの意味は、ノード2は、SN2値を初期化した後、初期化されたSN2値を増分的に更新する。次回IV2を計算するときに、前回に使用したSN2値を増分的に更新する。
【0047】
本発明の実施例は、上記SN2値が特定の値から開始することを限定するものではなく、また、上記SN2値を増分的に更新する具体的な形式を限定するものでもない。オプションの実施形態として、上記SN2値は1から始まり、毎回1を加算して増分的に更新される。
【0048】
本発明の実施例は、上記SN2の初期値を限定するものではない。上記SN2の初期値は非常に大きくなる可能性があり、極端な場合に、上記SN2の初期値は設定された鍵更新閾値であり、上記極端な場合も本発明の実施例の保護範囲内である。
【0049】
上記SN2の初期値および上記SN1の初期値は同じであっても異なっていてもよく、上記SN2値を増分的に更新する具体的な形式を限定するものでもない。また、上記SN1値を増分的に更新する具体的な形式を限定するものでもない。
【0050】
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0051】
S205、ノード2は、計算されたIV2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信する。
【0052】
計算されたIV2和前記鍵を採用される暗号化アルゴリズムの2つの入力パラメータとし、上記採用される暗号化アルゴリズムを使用して第2のデータパケットを暗号化して上記ノード1に送信する。ここで、第2のデータパケットを暗号化することは、第2のデータパケット内の有効なペイロードを暗号化することである、暗号化された第2のデータパケットは、少なくともSN2値フィールドと暗号化データフィールドを含む。
【0053】
S206、ノード1は、受信した第2のデータパケット内のSN2値を取得し、取得したSN2値に対して前記第2の数学的変換を実行し、前記IV2を計算し、計算されたIV2と前記鍵を使用して暗号化された第2のデータパケットを復号化する。
【0054】
ノード1は、ノード2から送信された暗号化された第2のデータパケットを受信し、第2のデータパケット内のSN2値を取得し、取得したSN2値に対して前記第2の数学的変換を実行し、IV2を計算する。計算されたIV2和前記鍵を採用される暗号化アルゴリズムの2つの入力パラメータとし、採用される暗号化アルゴリズムを使用して暗号化された第2のデータパケットを復号化する。
【0055】
本発明の様々な実施形態では、前記第1の数学的変換と前記第2の数学的変換はノード1とノード2の間で事前に共有されることに留意されたい。さらに、セキュリティ・アソシエーションSAは、複数のセキュリティ・アソシエーションパラメータSAPから構成され、ここで、鍵パラメータは含まれる。当該鍵パラメータは、SAを確立するときにノード1とノード2によってネゴシエートされる。すなわち、本発明の様々な実施例において、ノード1とノード2の間に、前記鍵は事前に共有される。
【0056】
本発明の実施例では、ノード1自体の初期化されたシリアル番号SN1の長さは、ノード2自体の初期化されたシリアル番号SN2の長さに等しい。ノード1によって計算される第1の初期化ベクトルIV1の長さは、ノード2によって計算される第2の初期化ベクトルIV2の長さに等しい。
【0057】
コンピュータの高性能化に伴い、コンピュータの計算能力も急速に増大しており、IPsecの電子シリアル番号(Electronic Serial Number,ESN)のような64ビットのカウンタも超高速デバイスではすぐにオーバーフローし、その時点でシステムはカウンタを常に循環させることになるため、システムのパフォーマンスに影響を与える。モノのインターネット(Internet of Things,IOT)のような一部の環境では、カウンタの要件は高くなく、16ビットのカウンタで需要を満たすことができるが、IPsecは各送信メッセージで少なくとも32ビットのSNを送信する必要があり、このような設計は、上記送受信パケットが非常に少ない上記環境では帯域幅を浪費することになる。したがって、異なるアプリケーションシナリオに適応するためには、調整可能なカウンタが必要である。
【0058】
したがって、本発明の実施例は、特定の実施シナリオに従ってSN1およびSN2の長さを設定するための方式を提供する。ここで、前記SN1および前記SN2の両方の長さは、アプリケーションシナリオに従って、ノード1とノード2との間でmビットとなるように決定することができる。カウンタに対する要求が高い場合には、超高速環境においてカウンタが非常に迅速にオーバーフローする問題を解決するために、シーケンス番号の長さが大きく設定され、カウンタに対する要求が低い場合には、帯域幅トラフィックを低減し、帯域幅利用率を向上させるために、シーケンス番号の長さが小さく設定され、トラフィックが少ない環境での作業対応できるようになる。
【0059】
例えば、トラフィックが少ない環境では、上記SN1と上記SN2の両方の長さを8bitに設定することで、32bit長のSN1とSN2を使用するよりも24bit分の帯域量トラフィックを削減することができる。
【0060】
データ安全な通信を行う場合、2つの通信相手は互いのSN値取得することができる。
【0061】
前記IV1と前記IV2の両方の長さは、採用された暗号化アルゴリズムに基づいて、前記ノード1と前記ノード2の間でnビットに決定される。前記IV1及び前記IV2の長さは、2つの通信相手がデータの安全な通信を行う際に採用される暗号化アルゴリズムに基づいて決定される。例えば、前記ノード1及び前記ノード2が採用する暗号化アルゴリズムがSM4-GCM-128である場合、IVの長さは128ビットである。前記ノード1及び前記ノード2が採用する暗号化アルゴリズムがAES-GCM-256である場合、IVの長さは256ビットであり、前記ノード1及び前記ノード2が採用する暗号化アルゴリズムがAES-CBC-128である場合、IVの長さは128ビットである。
【0062】
なお、上記暗号化アルゴリズムの選択は、具体的な実施シナリオに応じて実施することができ、本願発明の実施形態はこれに限定されない。
【0063】
オプションの実施形態として、上記暗号化アルゴリズムは対称暗号化アルゴリズムである。
【0064】
なお、上記SN1及びSN2の長さm、並びに上記IV1及びIV2の長さnは、ノード1及びノード2のいずれか一方によって決定してもよく、ノード1及びノード2が共同で決定してもよい。
【0065】
図3に示すように、本願発明の一実施例は、微分パラメータCの概略図を提供する。任意選択で、前記微分パラメータCは、IV値を計算するためのパラメータとして使用されてもよい。
【0066】
ここで、前記Cの長さは前記IV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、高位ビットはゼロでないNの値をとり、kは1以上n以下の正の整数である。
【0067】
オプションの実施形態として、上記Cの高位ビットがとる値Nは、以下の方法で決定される:
設定情報に基づいて前記Cの高位ビットの値Nを決定する、または
設定情報に基づいて前記Cの高位ビットの値Nを決定する、または
暗号鍵に基づいて前記Cの高位ビットの値Nを決定する、または
鍵のネゴシエートにより前記Cの高位ビットの値Nを決定する。
【0068】
上記値Nは、(1)設定情報に従って決定される固定値、例えば0x5C365C36であって、ビット上で0と1がバランスし、0と1の分布が十分に乱れるようにしようとする値、(2)ランダムな方法を用いて決定される乱数、(3)暗号鍵に従って決定される暗号鍵の一部の値、(4)鍵ネゴシエーションによって決定される暗号鍵の一部のある値、であってよい。
【0069】
上記値Nが上記(2)、(3)、(4)の場合、上記値Nがすべて0xFFFFFFFFまたは0xFFFFFFFFに近い値、すなわち上記値Nのビット値がすべて1または完全な1に近い値であることはできず、そうでないと鍵の更新頻度が速くなる。
【0070】
上記値Nの長さkは可変であるが、上記フの値Nの長さkは上記Cの長さよりも小さい。
【0071】
図4に示すように、本願発明の一実施例は、ノード1/ノード2が第1の初期化ベクトルIV
1を計算するフローチャートを提供する。ここで、IV
1を計算する際に使用される第1の数学変換は、係数P、第1のパラメータQ
1、および微分パラメータCを含み、ノード1/ノード2がIV
1を計算することは、以下のステップからなる:
S401、ノード1とノード2との間で、SN
1およびSN
2の両方の長さがmであることを判断し、採用された暗号化アルゴリズムに基づいて、IV
1およびIV
2の両方の長さがnであることを判断する。
【0072】
なお、上記長さmおよび長さnの具体的な決定処理については上述した通りであり、ここでは繰り返さない。
【0073】
S402、SN1とIV1のオーバーフロー順序を判断する。
【0074】
オプションの実施形態として、SN1とIV1のオーバーフロー順序を判断することは、具体的に、
前記IV1の長さnと前記高位ビットの長さkの差を計算し、
前記SN1の長さmが前記差より大きくない場合、前記SN1値が最初にオーバーフローしたと判定し、
前記SN1の長さmが前記差よりも大きい場合、前記IV1値が最初にオーバーフローしたと判定する。
【0075】
前記SN1の長さはmビット、前記IV1の長さはnビット、前記Nの長さはkビットであり、前記m、n、kは8の整数倍である。
【0076】
S403、SN1が最初にオーバーフローすると判断された場合、IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに前記係数Pを乗じた後、第1の動的パラメータと係数Pの積、微分パラメータCおよび前記Q1を合計してIV1を計算する。
【0077】
m<=n-kのとき、例えば、m=32bit、n=128bit、k=32bitのとき、第1の初期化ベクトルIV1は次のように計算される:
IV1=C+SN1×P+Q1
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではない。
【0078】
S404、IV1が最初にオーバーフローすると判断された場合、IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pの積、微分パラメータCおよび前記Q1を合計してIV1を計算する。
【0079】
m>n-kのとき、例えば、m=128bit、n=64bit、k=32bitのとき、第1の初期化ベクトルIV1は次のように計算される:
IV1=C+SN1%2n-k×P+Q1
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではない。
【0080】
上記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットで表現できる最大値2n-kであり、上記第3の動的パラメータはSN1%2n-kであり、上記SN1値と2n-kの剰余演算を表す。
【0081】
上記SN1%2n-kは、上記第3の動的パラメータの値が0から2n-k-1まで周期的であることを示す。
【0082】
上記IV1値が最初にオーバーフローする場合、上記SN1=1及びSN1=2n-k+1のいずれの場合においても、上記第3の動的パラメータ値は1であるが、SN1=2n-k+1の前に、IV1は既にオーバーフローしているため、鍵を更新する必要があることに留意すべきである。異なる鍵を更新する場合、計算されるIV1の値を異ならせるためにCの値も異なる値に更新することで、十分なランダム性を確保し、各ラウンドで異なる値のIVを生成することができ、より安全な設計となる。
【0083】
また、上記SN1=1とSN1=2n-k+1の場合では、計算されるIV1の値は同じでも、使用される鍵が異なる。
【0084】
オプションの実施形態として、前記ノード1/ノード2が第1の初期化ベクトルIV1を計算する前に、さらに、
上記SN1値が最初にオーバーフローし、前記第1の動的パラメータ、すなわちIV1を計算するためのSN1値が第1の事前設定閾値に達したと判断した場合、鍵の更新動作を開始する。上記SN1値が最初にオーバーフローし、前記第1の動的パラメータ、すなわちIV1を計算するためのSN1値が第2の事前設定閾値に達したと判断した場合、更新された新しい鍵をデータ送信時に使用される鍵として使用する。ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値は、前記SN1の最大値よりも大きくない。
【0085】
上記IV1値が最初にオーバーフローし、前記第3の動的パラメータ、すなわちSN1%2n-kが第3の事前設定閾値に達したと判断した場合、鍵の更新動作を開始する。上記IV1値が最初にオーバーフローし、前記第3の動的パラメータ、すなわちSN1%2n-kが第4の事前設定閾値に達したと判断した場合、更新された新しい鍵をデータ送信時に使用される鍵として使用する。ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値は、前記IV1の低位n-kビットの最大値よりも大きくない。
【0086】
なお、上記第1の事前設定閾値、第2の事前設定閾値、第3の事前設定閾値および第4の事前設定閾値は、上記大きさ範囲要件を満たすことを前提として、特定の実施態様に従って特定の値に設定され得る。例えば、上記第1の事前設定閾値を2mの90%に設定し、上記第2の事前設定閾値を2m-1に設定する。上記第3の事前設定閾値を2n-kの90%に設定し、上記第4の事前設定閾値を2n-k-1に設定する。ここで、2mは、SN1で表現され得る最大値を示し、2n-kは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットで表現できる最大値を示す。
【0087】
安全性を考慮し、上記C値は、新しい鍵の置き換えと同時に置き換えられてもよい。
【0088】
オプションの実施形態として、前記鍵の更新動作を開始することは、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することをさらに含む。
【0089】
鍵の更新動作を開始すると同時に、新たな微分パラメータCを生成する。上記新たな微分パラメータCを生成する具体的な方式は、(1)高位ビットのビット数kの新たな値k’を計算しk’個の高位ビットの新たな値Nを計算する。または、(2)高位ビット数kを不変にして,k個の高位ビットの新たな値Nを計算する、ということができる。
【0090】
オプションの実施形態として、前記更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、さらに、
前記新たな微分パラメータCを使用してデータ送信時に使用されるIV1を計算する。
【0091】
(1)上記SN1値が最初にオーバーフローし、IV1を計算するためのSN1値が第2の事前設定閾値に達したと判断する場合、新しい鍵をデータ送信時に使用される鍵とする同時に、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIV1を計算する。
【0092】
(2)データ送信時に使用される鍵として新しい鍵を使用しながら、前記IV1値が最初にオーバーフローし、SN1%2n-kが第4の事前設定閾値に達したと判断された場合、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIV1を計算する。
【0093】
上述の
図3の実施例で提供された微分パラメータCの高位ビットはゼロでないNの値をとり、別の任意の実施例として、微分パラメータCの高位ビットの値Nがゼロであることを取ることができ、その場合、Cの値はゼロであり、すなわち、
図4の実施例では、第1の初期化ベクトルIV
1を計算するための計算は次のようになる:m<=n-kのとき、
IV
1=SN
1×P+Q
1
ここで、Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではない。
【0094】
m>n-kのとき、
IV1=SN1%2n-k×P+Q1
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではない。微分パラメータCの高位ビットの値Nが0の場合と比較して、微分パラメータCの高位ビットの値Nが0以外の場合は、計算されるIV1の値がより高度なランダム性を持つことになり、データ暗号化の安全性が大幅に向上する。
【0095】
図5に示すように、本発明の実施例は、ノード2/ノード1が第2の初期化ベクトルIV
2を計算するフローチャートを提供する。ここで、IV
2を計算する際に使用される第2の数学的変換は、係数P、第2のパラメータQ
2、微分パラメータCを含む。前記第2の数学的変換内の第2のパラメータQ
2は、前記第1の数学的変換内の第1のパラメータQ
1とは異なる値をとる。ノード2/ノード1は、以下のステップでIV
2を計算する。
【0096】
S501、ノード1とノード2との間で、SN1およびSN2の両方の長さがmであることを判断し、採用された暗号化アルゴリズムに基づいて、IV1およびIV2の両方の長さがnであることを判断する。
【0097】
なお、上記長さmおよび長さnの具体的な決定処理は、上述した通りであり、ここでは繰り返さない。
【0098】
S502、SN2とIV2のオーバーフロー順序を判断する。
【0099】
オプションの実施形態として、SN2とIV2のオーバーフロー順序を判断することは、
前記IV2の長さnと前記高位ビットの長さkの差を計算し、
前記SN2の長さmが前記差より大きくない場合、前記SN2値が最初にオーバーフローしたと判断し、
前記SN2の長さmが前記差よりも大きい場合、前記IV2値が最初にオーバーフローしたと判断する。
【0100】
上記SN2の長さはmビットであり、上記IV2の長さはnビットであり、上記Nの長さはkビットであり、ここで、上記m、n、kは8の整数倍である。
【0101】
S503、SN2が最初にオーバーフローしたと判断された場合、IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、第2の動的パラメータと係数Pの積、微分パラメータCおよび前記Q2を合計してIV2を計算する。
【0102】
m<=n-kの場合、例えば、m=32bit、n=128bit、k=32bitのとき、第2の初期化ベクトルIV2を計算する計算方法は、次のようになる。
【0103】
IV2=C+SN2×P+Q2,Pは1に等しくなく、0にも等しくなく、Q2は0であるか、またはPの整数倍ではなく、上記Q1とQ2は異なる。
【0104】
S504、IV2が最初にオーバーフローしたと判断された場合、IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、第4の動的パラメータと係数Pの積、微分パラメータCおよび前記Q2を合計してIV2を計算する。
【0105】
m>n-kのとき、例えば、m=128bit、n=64bit、k=32bitのとき、第2の初期化ベクトルIV2を計算する計算方法は、次のようになる。
【0106】
IV2=C+SN2%2n-k×P+Q2
ここで、Pは1に等しくなく、0にも等しくなく、Q2は0であるか、またはPの整数倍ではなく、上記Q1とQ2は異なる。
【0107】
上記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットで表現できる最大値2n-kである。上記第4の動的パラメータはSN2%2n-kであり、上記SN2値と2n-kの剰余演算を示す。
【0108】
上記SN2%2n-kは、上記第4の動的パラメータの値が0から2n-k-1まで周期的であることを示す。
【0109】
なお、上記IV2値が最初にオーバーフローする場合、上記SN2=1およびSN2=2n-k+1の2つの場合では、上記第4の動的パラメータの値は1であるが、SN2=2n-k+1となる前に、IV2がオーバーフローしたため、鍵を更新する必要がある。異なる鍵を更新する場合、異なるC値を更新して、計算されるIV2の値が異なるようになる。十分なランダム性を確保し、各ラウンドで異なる値のIVを生成することができ、より安全な設計となる。
【0110】
さらに、上記SN2=1とSN2=2n-k+1の上記2つのケースで計算されるIV2の値は同じであっても、使用される暗号鍵は異なる。
【0111】
オプションの実施形態として、前記ノード2/ノード1が第2の初期化ベクトルIV2を計算する前に、以下のことをさらに含む:
上記SN2値が最初にオーバーフローし、前記第2の動的パラメータ、すなわちIV2を計算するためのSN2値が第1の事前設定閾値に達したと判断する場合に、鍵の更新動作を開始する。上記SN2値が最初にオーバーフローし、前記第2の動的パラメータ、すなわち、IV2を計算するためのSN2値が第2の事前設定閾値に達したと判断する場合に、更新された新しい鍵をデータ送信時に使用される鍵として使用する。ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値は前記SN2の最大値より大きくない。
【0112】
上記IV2値が最初にオーバーフローし、前記第4の動的パラメータ、すなわちSN2%2n-kが第3の事前設定閾値に達したと判断する場合に、鍵の更新動作を開始する。上記IV2値が最初にオーバーフローし、前記第4の動的パラメータ、すなわちSN2%2n-kが第4の事前設定閾値に達したと判断する場合に、更新された新しい鍵をデータ送信時に使用される鍵として使用する。ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値は、前記IV2の低位n-kビットの最大値より大きくない。
【0113】
なお、上記第1の事前設定閾値、第2の事前設定閾値、第3の事前設定閾値、第4の事前設定閾値は、上記大きさ範囲要件を満たすことを前提として、特定の実施態様に従って特定の値に設定され得る。例えば、一般に、上記第1の事前設定閾値を2mの90%に設定し、上記第2の事前設定閾値を2m-1に設定する。上記第3の事前設定閾値を2n-kの90%に設定し、上記第4の事前設定閾値を2n-k-1に設定する。ここで、2mは、SN2で表現され得る最大値を示し、2n-kは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットで表現できる最大値を示す。
【0114】
安全性を考慮し、上記C値は、新しい鍵の置き換えと同時に置き換えられてもよい。
図4の実施例で提供されたのと同じ方法で新たな微分パラメータCを生成することも可能であるが、ここでは繰り返さない。
【0115】
オプションの実施形態として、前記更新された新しい鍵をデータ送信時に使用される鍵として使用することは、以下をさらに含む:
前記新たな微分パラメータCを使用してデータ送信時に使用されるIV2を計算する。
【0116】
(1)上記SN2値が最初にオーバーフローし、IV2を計算するためのSN2値が第2の事前設定閾値に達したと判断する場合に、新しい鍵をデータ送信時に使用される鍵とする同時に、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIV2を計算する。
【0117】
(2)上記IV2値が最初にオーバーフローし、SN2%2n-kが第4の事前設定閾値に達したと判断する場合に、新しい鍵をデータ送信時に使用される鍵とする同時に、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIV2を計算する。
【0118】
また、任意の実施形態として、上述した
図4の実施形態及び
図5の実施形態において、ノード1及びノード2は、予め新しいC値及び新しい鍵を用意しておき、鍵の更新が必要な場合及びC値の更新が必要な場合に、ノード1及びノード2は、共に、予め用意された新しい鍵の中から、データ送信時に使用される鍵としていずれか1つを選択し、予め用意された新しいC値の中から、データ送信時に使用される初期化ベクトルIVを算出するために使用する新たなC値を選択するようにしてもよい。
【0119】
なお、上記
図3実施例によって提供される微分パラメータCの高位ビットはゼロでないNの値をとり、別の任意の実施形態として、微分パラメータCの高位ビットの値Nがゼロであることを取ることができ、その場合、Cの値はゼロであり、すなわち、
図5の実施形態では、第2の初期化ベクトルIV
2を計算するための計算が次のようになる。m<=n-kのとき、
IV
2=SN
2×P+Q
2
ここで、Pは1に等しくなく、0にも等しくなく、Q
2は0であるか、またはPの整数倍ではなく、Q
2はQ
1と異なる。
【0120】
m>n-kのとき、IV2=SN2%2n-k×P+Q2
ここで、Pは1に等しくなく、0にも等しくなく、Q2は0であるか、またはPの整数倍ではなく、Q2はQ1と異なる。微分パラメータCの高位ビットの値Nが0の場合と比較して、微分パラメータCの高位ビットの値Nが0以外の場合は、計算されたIV2値がより高度なランダム性を有することが保証され、データ暗号化の安全性が大幅に向上する。
【0121】
上記ノード1とノード2は、カプセル化フォーマットを有する安全なデータ伝送によって互いに通信してもよいし、カプセル化フォーマットを有しない安全なデータ伝送によって互いに通信してもよい。
【0122】
図6に示すように、本発明の実施例は、カプセル化フォーマットを有する安全なデータ伝送の概略図を提供する。ここで、ノード1からノード2への通信トラフィックはDATA
1to2であると仮定し、ノード2からノード1への通信トラフィックはDATA
2to1であると仮定し、ノード1とノード2が共有する鍵はKeyであると仮定する。
【0123】
上記ノード1とノード2間のデータトラフィックのやり取りは、以下のステップで行われる:
S1、2つの通信相手はシーケンス番号SN1とSN2の長さを設定し、SN1値とSN2値を初期化する。
【0124】
S2、ノード1はSN1の長さとSN1値に基づいてIV1値を計算し、ノード2はSN2の長さとSN2値に基づいてIV2値を計算する。
【0125】
例えば、SN1とSN2の長さはともにmビット、IV1とIV2の長さはともにnビット、微分パラメータCの高位ビットの長さはkビットであり、ここで、m、n、kは8の整数倍である。m=32bit、n=128bit、k=32bitとすると、このときm<=n-kとなり、ノード1とノード2のSN値が最初にオーバーフローするノード1のIV1=C+SN1×P+Q1、ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではない。ノード2のIV2=C+SN2×P+Q2、ここで、Pは1に等しくなく、0にも等しくなく、Q2は0であるか、またはPの整数倍ではなく、Q2はQ1に等しくない。
【0126】
ノード1がノード2にデータパケットを送信するたびに、SN1値を増分的に更新し、例えば、SN1値は1を加算して更新される。SN1値が第1の事前設定閾値に達すると、鍵の更新動作を開始する。SN1値が第2の事前設定閾値に達すると、更新された新しい鍵をデータ送信時に使用される鍵として使用する。
【0127】
ノード2がノード1にデータパケットを送信するたびに、SN2値を増分的に更新し、例えば、SN2値は1を加算して更新される。SN2値が第1の事前設定閾値に達すると、鍵の更新動作を開始する。SN2値が第2の事前設定閾値に達すると、更新された新しい鍵をデータ送信時に使用される鍵として使用する。
【0128】
別の例として、m=128bit、n=64bit、k=32bitとし、このときm>n-kとなり、ノード1とノード2のIV値が最初にオーバーフローする。ノード1のIV1=C+SN1%2n-k×P+Q1、ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではない。ノード2のIV2=C+SN2%2n-k×P+Q2、ここで、Pは1に等しくなく、0にも等しくなく、Q2は0であるか、またはPの整数倍ではなく、Q2はQ1に等しくない。
【0129】
ノード1がノード2にデータパケットを送信するたびに、SN1値を増分的に更新し、IV1値はSN1値より先にオーバーフローするため、SN1%2n-kが第3の事前設定閾値に達すると、鍵の更新動作を開始する。SN1%2n-kが第4の事前設定閾値に達すると、更新された新しい鍵をデータ送信時に使用される鍵として使用する。
【0130】
ノード2がノード1は、データパケットを送信するたびに、SN2値を増分的に更新し、IV2値はSN2値より先にオーバーフローするため、SN2%2n-kが第3の事前設定閾値に達すると、鍵の更新動作を開始する。SN2%2n-kが第4の事前設定閾値に達すると、更新された新しい鍵をデータ送信時に使用される鍵として使用する。
【0131】
上記P,Q1,Q2は、Pを2、Q1を0、Q2を-1とすることが好ましい。IV1、IV2の値が小さいほど、オーバーフローしにくくなり、鍵更新の頻度が少なくなるため、結果的に性能が向上する。
【0132】
もちろん、上記のP、Q1、Q2は、具体的な実装に応じて設定することも可能であり、例えば、P=3、Q1=2、Q2=1とすることもできる。
【0133】
S3、暗号化アルゴリズムと組み合わせて、上記で計算されたIV1値/IV2値に基づき、2つの通信相手的トラフィックを暗号化および復号化する。
【0134】
なお、ノード1とノード2はカプセル化フォーマットを有する安全なデータ伝送によって通信し、ノード1がノード2にDATA1to2を送信する前に、ノード1は暗号化アルゴリズムと組み合わせて、前記Keyと計算されたIV1値を使用して、DATA1to2を暗号化し、カプセル化プロトコルに従って暗号化後のトラフィックをカプセル化し、完了後にノード2に送信する。ノード2は、ノード1から送信された暗号化トラフィックを受信した後、カプセル化メッセージ内のSN1値を取得し、自体の計算したIV1値と前記Keyに従って暗号化アルゴリズムと組み合わせて暗号化トラフィックを復号化してDATA1to2を取得する。
【0135】
同様に、ノード2がノード1にDATA2to1を送信する前に、ノード2は、前記Keyと計算されたIV2値を使用し、暗号化アルゴリズムを組み合わせてDATA2to1を暗号化し、カプセル化プロトコルに従って暗号化後のトラフィックをカプセル化し、完了後にノード1に送信する。ノード1は、ノード2から送信された暗号化トラフィックを受信した後、カプセル化メッセージ内のSN2値を取得し、自体の計算したIV2値と前記Keyに従って暗号化アルゴリズムと組み合わせて暗号化トラフィックを復号化してDATA2to1を取得する。
【0136】
図7に示すように、本発明の実施例は、カプセル化フォーマットを有しない安全なデータ伝送の概略図を提供する。ここで、からノード2への通信トラフィックはDATA
1to2であると仮定し、ノード2からノード1への通信トラフィックはDATA
2to1であると仮定し、ノード1とノード2が共有する鍵はKeyであると仮定する。
【0137】
上記ノード1とノード2間のデータトラフィックの取りやりは、以下のステップを実行する:
S1、2つの通信相手はシーケンス番号SN1とSN2の長さを設定し、SN1値とSN2値を初期化する。
【0138】
S2、ノード1はSN1の長さとSN1値に基づいてIV1値を計算し、ノードド2はSN2の長さとSN2値に基づいてIV2値を計算する。
【0139】
ここでの計算プロセスは
図6実施例内の計算プロセスと同じであるため、再度の説明は省略する。
【0140】
S3、暗号化アルゴリズムと組み合わせて、上記で計算されたIV1値/IV2値に基づき、2つの通信相手的トラフィックを暗号化および復号化する。
【0141】
なお、ノード1とノード2はカプセル化フォーマットを有しない安全なデータ伝送によって通信し、ノード1がノード2にDATA1to2を送信する前に、ノード1は前記鍵と計算されたIV1値を用い、暗号化アルゴリズムと組み合わせてDATA1to2を暗号化し、カプセル化プロトコルに従って暗号化後のトラフィックをカプセル化する必要がなく、暗号化トラフィックを直接ノード2に送信する。ノード2は、ノード1から送信された暗号化トラフィックを受信した後、暗号化トラフィックからSN1値を取得し、自体の計算されたIV1値と前記Keyに従って、暗号化アルゴリズムと組み合わせて暗号化トラフィックを復号化し、DATA1to2を取得する。
【0142】
同様に、ノード2がノード1にDATA2to1を送信する前に、ノード2は前記Keyと計算されたIV2値を使用し、暗号化アルゴリズムと組み合わせてDATA2to1を暗号化し、カプセル化プロトコルに従って暗号化後のトラフィックをカプセル化する必要がなく、暗号化されたトラフィックを直接ノード1に送信する。ノード1は、ノード2から送信された暗号化トラフィックを受信した後、暗号化トラフィックからSN2値を取得し、自体の計算したIV2値と前記Keyに従って、暗号化アルゴリズムと組み合わせて暗号化トラフィックを復号化し、DATA2to1を取得する。
【0143】
以下、本発明の実施例を、カプセル化フォーマットを有する安全なデータ伝送の例によって説明するが、カプセル化フォーマットを有しない安全なデータ伝送は、カプセル化フォーマットを有する安全なデータ伝送と比較して、カプセル化が不要であることを除いて、基本的に同じであり、以後繰り返さない。
【0144】
図8に示すように、本発明の実施例は、カプセル化フォーマットを有する安全なデータ伝送のためのフローチャートを提供する。ここで、SN
2がIV
2の前にオーバーフローし、SN
2がIV
2の前にオーバーフローする例を挙げて説明する。なお、本実施例では、ノード1およびノード2が安全なデータ伝送を実行する前に、ノード1およびノード2は、ノード1とノード2との間での長さは、両方ともにmであり、SN
1値およびSN
2値を初期化していることに留意されたい。採用される暗号化アルゴリズムに従い、IV
1およびIV
2の両方の長さがnであることを決定する。オプションの実施形態として、上記採用される暗号化アルゴリズムは対称暗号化アルゴリズムである。
【0145】
図8実施例で提供されるカプセル化フォーマットを有する安全なデータ伝送のためのプロセスは、以下のステップを含む:
S801、ノード1は、ノード1自体のシリアル番号SN
1値を増分的に更新し、更新されたSN
1値を第1の動的パラメータとする。
【0146】
S802、ノード1は、第1の動的パラメータが第1の事前設定閾値に達したか否かを判断し、達している場合、鍵更新動作が開始され、達していない場合、鍵の更新動作を開始しない。また、第1の動的パラメータが第2の事前設定閾値に達したか否かを判断し、達している場合、更新された新しい鍵をS804で使用される鍵として使用し、達していない場合、現在の鍵をS804で使用される鍵として依然として使用する。
【0147】
例えば、第1の事前設定閾値は0.9×2mであり、SN1値が2mの90%に達したか否かを判断し、達している場合、鍵の更新動作を開始する。選択的に、鍵の更新動作を開始するとき、微分パラメータCの更新動作も開始してもよい。例えば、第2の事前設定閾値は2m-1であり、SN1が2m-1に達したか否かを判断し、ここで、第1の事前設定閾値は、第2の事前設定閾値より小さく、第2の事前設定閾値はSN1の最大値以下である。選択的に、更新された新しい鍵がS804で使用される鍵として使用される場合、新たな微分パラメータCは、S803においてIV1を計算するためにも使用され得る。
【0148】
S803、ノード1は、第1の動的パラメータに係数Pを乗算し、第1の動的パラメータと係数Pの積、微分パラメータCおよびQ1を合計してIV1を計算する。
【0149】
例えば、増分値が1の場合、ノード1は、現在のSN1の値に1を加算し、P=2、Q1=0とし、IV1=C+SN1×2によりIV1を算出する。
【0150】
S804、ノード1は、計算されたIV1と鍵Keyに基づいて第1のデータパケットを暗号化し、暗号化された第1のパケットをカプセル化プロトコルに従ってカプセル化した後、ノード2に送信する。
【0151】
ノード1は、IV1とKeyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いてDATA1to2を暗号化し、すなわち、(DATA1to2)ciphertext=FUNencrypt(IV1,Key,DATA1to2)。そして、カプセル化プロトコルに従って(DATA1to2)ciphertextをカプセル化し、完了後にノード2に送信する。
【0152】
なお、ノード1は、暗号化された第1のデータパケットをノード2に送信した後、S801から開始する関連するステップを再度実行して、新しいIV1を計算し、計算されたIV1と鍵を使用して、ノード2に送信される後続のデータパケットを暗号化することができることに留意すべきである。ノード1が複数の暗号化データパケットをノード2に送信した後、ノード1のSN1値がオーバーフローした場合、ノード1はSN1値を初期化し、S801から再び関連するステップを実行する。
【0153】
S805、ノード2は、受信したカプセル化された第1のデータパケット内のSN1値を取得し、SN1値を第1の動的パラメータとし、前記第1の動的パラメータに前記係数Pを乗じた後、第1の動的パラメータと係数Pの積、微分パラメータCおよび前記Q1を合計してIV1を計算する。計算されたIV1及び前記鍵Keyを利用して暗号化された第1のデータパケットを復号化する。
【0154】
ノード2は、ノード1から通信トラフィックを受信すると、カプセル化メッセージ内のSN1値を取得し、IV1=C+SN1×2によりIV1を計算する。上記IV1および上記Keyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いて(DATA1to2)ciphertextを復号化し、すなわち、(DATA1to2)plaintext=FUNdecipher(IV1,Key,(DATA1to2)ciphertext)。
【0155】
S806、ノード2は、ノード2自体のシリアル番号SN2値を増分的に更新し、更新されたSN2値を第2の動的パラメータとする。
【0156】
S807、ノード2は、第2の動的パラメータが第1の事前設定閾値に達したか否かを判断し、達している場合、鍵更新動作が開始され、達していない場合、鍵の更新動作を開始しない。また、第2の動的パラメータが第2の事前設定閾値に達したか否かを判断し、達している場合、更新された新しい鍵をS809で使用する鍵として使用し、達していない場合、現在の鍵をS809で使用する鍵として使用する。
【0157】
例えば、第1の事前設定閾値は0.9×2mであり、SN2値が2mの90%に達したか否かを判断し、達している場合、鍵の更新動作を開始する。選択的に、鍵の更新動作を開始するとき、微分パラメータCの更新動作も開始してもよい。例えば、第2の事前設定閾値は2m-1であり、SN2値が2m-1に達したか否かを判断し、ここで、第1の事前設定閾値は、第2の事前設定閾値より小さく、第2の事前設定閾値はSN2の最大値より大きくない。選択的に、更新された新しい鍵をS809で使用する鍵として使用し、新たな微分パラメータCを使用してS808においてIV2を計算することができる。
【0158】
S808、ノード2は、第2の動的パラメータに係数Pを乗算し、第2の動的パラメータと係数Pの積、微分パラメータCおよびQ2を合計してIV2を計算する。
【0159】
例えば、増分値が1の場合、ノード2はSN2の値に1を加算し、P=2、Q2=-1とし、IV2=C+SN2×2-1でIV2を計算する。
【0160】
S809、ノード2は、計算されたIV2と鍵Keyに基づいて第2のデータパケットを暗号化し、カプセル化プロトコルに従って暗号化された第2のデータパケットをカプセル化した後、ノード1に送信する。
【0161】
ノード2は、IV2とKeyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いてDATA2to1を暗号化し、すなわち、(DATA2to1)ciphertext=FUNencrypt(IV2,Key,DATA2to1)。そして、カプセル化プロトコルに従って(DATA2to1)ciphertextをカプセル化し、完了後にノード1に送信する。
【0162】
なお、ノード2は、暗号化された第2のデータパケットをノード1に送信した後、806から始って関連するステップを再度実行して新たなIV2を計算し、計算されたIV2と鍵を使用して、ノード1に送信される後続のデータパケットを暗号化することができることに留意すべきである。ノード2が複数の暗号化パケットをノード1に送信した後、ノード2のSN2値がオーバーフローすると、ノード2は、SN2値を初期化した後、S806から再び関連するステップを実行する。
【0163】
S810、ノード1は、受信したカプセル化された第2のデータパケット内のSN2値を取得し、当該SN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、第2の動的パラメータと前記係数Pの積、微分パラメータCおよび前記Q2を合計してIV2を計算する。また、上記IV2および上記鍵Key暗号化された第2のデータパケットを復号化する。
【0164】
ノード1がノード2の通信トラフィックを受信するとき、カプセル化メッセージ内のSN2値を取得し、IV2=C+SN2×2-1でIV2値を計算する。IV2とKeyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いて(DATA2to1)ciphertextを復号化し、すなわち、(DATA2to1)plaintext=FUNdecipher(IV2,Key,(DATA2to1)ciphertext)。
【0165】
【表1】
上記表1は、本願実施形態の方式と従来の方式におけるSN値の変化の比較を推論したものである。表1に示すSN
1とSN
2の長さは、4ビットであり、すなわち、SN
1とSN
2の最大値は16である。ここで、本発明の実施形態の方式におけるSN
1及びSN
2の初期値は1から始まり、P=2、Q
1=0、Q
2=-1と仮定し、P、Q
1、Q
2の値をノード1及びノード2の方式に代入することにより、後続の各ラウンドで処理されるだけであることが分かる。また、本発明の実施例によって提供されるIV計算によれば、SN
1の値に基づいてノード1によって計算されるIV
1と、SN
2の値に基づいてノード2によって計算されるIV
2とは異なる。
【0166】
既存の技術的解決策では、2つのノードが異なるIV値を使用することを保証するために、SN1値及びSN2値の一方が奇数(例えば、SN1の初期値が1)であり、他方が偶数(例えば、SN2の初期値が2)であることを必要とし、ノード1によって計算されるIV1とノード2によって計算されるIV2とが異なることを保証するように、後続の処理の各ラウンドにおいてSN1値及びSN2値に2を加算することが必要である。
【0167】
本発明では独自のIV計算方式を採用しているため、ノード1とノード2のそれぞれのSN値を同じにすることができ、各ラウンドの処理ではそれぞれのSN値に1を加算する処理のみを行えばよいため、本発明のSN1とSN2に使用される空間は先行技術のSN1とSN2に使用される空間の2倍となり、オーバーフローが遅くなり、対応する鍵更新の頻度も1倍減少され、システム性能を効果的に向上させることができる。
【0168】
図9に示すように、本発明の実施例は、カプセル化フォーマットを有する安全なデータ伝送のための別のフローチャートを提供する。ここで、IV
1はSN
1の前にオーバーフローし、IV
2はSN
2の前にオーバーフローすることを例示する。なお、本実施例では、ノード1とノード2が安全なデータ伝送を実行する前に、ノード1とノード2の間でSN
1とSN
2の両方の長さがmになるように決定され、SN
1値とSN
2値が初期化され、採用される暗号化アルゴリズムに従ってIV
1およびIV
2の両方の長さがnであることを決定する。オプションの実施形態として、上記採用される暗号化アルゴリズムは対称暗号化アルゴリズムである。
【0169】
図9の実施例で説明した前記カプセル化フォーマットを有する安全なデータ伝送のためのフローチャートは、以下のステップを含む。
【0170】
S901、ノード1は、ノード1自体のシリアル番号SN1値を増分的に更新し、更新されたSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得する。
【0171】
S902、ノード1は、第3の動的パラメータが第3の事前設定閾値に達したか否かを判断し、達している場合、鍵更新動作を開始し、達していない場合、鍵の更新動作を開始しない。また、第3の動的パラメータが第4の事前設定閾値に達したか否かを判断し、達している場合、更新された新しい鍵をS904S904で使用される鍵として使用し、達していない場合、現在の鍵をS904で使用される鍵として引き続き使用する。
【0172】
例えば、第3の事前設定閾値は0.9×2n-kであり、SN1%2n-kが2n-kの90%に達したか否かを判断し、達している場合、鍵の更新動作を開始する。選択的に、鍵の更新動作を開始するとき、微分パラメータCの更新動作も開始してもよい。例えば、第4の事前設定閾値は2n-k-1であり、SN1%2n-kが2n-k-1に達したか否かを判断し、ここで、第3の事前設定閾値は、第4の事前設定閾値より小さく、第4の事前設定閾値は、上記IV1の低位n-kビットの最大値より大きくない。選択的に、更新された新しい鍵がS904で使用される鍵として使用される場合、新たな微分パラメータCを使用してS903においてIV1を計算する。
【0173】
S903、ノード1は、第3の動的パラメータに係数Pを乗算し、第3の動的パラメータと係数Pの積、微分パラメータCおよびQ1を合計してIV1を計算する。
【0174】
上記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値である2n-k。例えば、増分値が1の場合、ノード1は、現在のSN1の値に1を加算し、P=2、Q1=0とし、IV1=C+SN1%2n-k×2を使用してIV1を計算する。
【0175】
S904、ノード1は、計算されたIV1と鍵Keyに基づいて第1のデータパケットを暗号化し、暗号化された第1のパケットをカプセル化プロトコルに従ってカプセル化した後、ノード2に送信する。
【0176】
ノード1は、IV1とKeyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いてDATA1to2を暗号化し、すなわち、(DATA1to2)ciphertext=FUNencrypt(IV1,Key,DATA1to2)。そして、カプセル化プロトコルに従って(DATA1to2)ciphertextをカプセル化し、完了後にノード2に送信する。
【0177】
なお、ノード1は、暗号化された第1のデータパケットをノード2に送信した後、S901から開始する関連するステップを再度実行して、新しいIV1を計算し、計算されたIV1および鍵を使用して、ノード2に送信される後続のデータパケットを暗号化することができることに留意すべきである。ノード1が複数の暗号化パケットをノード2に送信した後、ノード1のSN1値がオーバーフローした場合、ノード1はSN1値を初期化し、S901から再び関連するステップを実行する。
【0178】
S905、ノード2は、受信したカプセル化された第1のデータパケット内のSN1値を取得し、SN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pの積、微分パラメータCおよび前記Q1を合計してIV1を計算する。前記IV1及び前記鍵Keyを用いて、暗号化された第1のデータパケットを復号化する。
【0179】
ノード2は、ノード1から通信トラフィックを受信すると、カプセル化メッセージ内のSN1値を取得し、IV1=C+SN1%2n-k×2を使用してIV1を計算する。前記IV1と前記Keyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いて(DATA1to2)ciphertextを復号化し、すなわち、(DATA1to2)plaintext=FUNdecipher(IV1,Key,(DATA1to2)ciphertext)。
【0180】
S906、ノード2は、ノード2自体のシリアル番号SN2値を増分的に更新し、更新されたSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得する。
【0181】
S907、ノード2は、第4の動的パラメータが第3の事前設定閾値に達したか否かを判断し、達している場合、鍵更新動作を開始し、達していない場合、鍵の更新動作を開始しない。また、第4の動的パラメータが第4の事前設定閾値に達したか否かを判断し、達している場合、更新された新しい鍵をS909で使用する鍵とし、達していない場合、現在の鍵をS909で使用する鍵とする。
【0182】
例えば、第3の事前設定閾値は0.9×2n-kであり、SN2%2n-kが2n-kの90%に達したか否かを判断し、達している場合、鍵の更新動作を開始する。選択的に、鍵の更新動作を開始するとき、微分パラメータCの更新動作も開始してもよい。例えば、第4の事前設定閾値は2n-k-1であり、SN2%2n-kは2n-k-1であり、ここで、第3の事前設定閾値は、第4の事前設定閾値より小さく、第4の事前設定閾値は上記IV2の低位n-kビットの最大値より大きくない。選択的に、更新された新しい鍵がS909で使用される鍵として使用される場合、新たな微分パラメータCも、S908においてIV2を計算するために使用されてもよい。
【0183】
S908、ノード2は、第4の動的パラメータに係数Pを乗算し、第4の動的パラメータ係数Pの積、微分パラメータCおよびQ2を合計してIV2を計算する。
【0184】
上記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値である2n-k。例えば、増分値が1の場合、ノード2はSN2の値に1を加算し、P=2、Q2=-1とし、IV2=C+SN2%2n-k×2-1を使用してIV2を計算する。
【0185】
S909、ノード2は、計算されたIV2と鍵Keyに基づいて第2のデータパケットを暗号化し、カプセル化プロトコルに従って暗号化された第2のデータパケットをカプセル化した後、ノード1に送信する。
【0186】
ノード2は、IV2とKeyを暗号化アルゴリズムの2つの入力パラメータとし、上述の対称暗号化アルゴリズムを用いてDATA2to1を暗号化し、すなわち、(DATA2to1)ciphertext=FUNencrypt(IV2,Key,DATA2to1)。そして、カプセル化プロトコルに従って(DATA2to1)ciphertextをカプセル化し、完了後にノード1に送信する。
【0187】
ノード2は、暗号化された第2のデータパケットをノード1に送信した後、S906から開始する関連するステップを再度実行して、新しいIV2を計算し、計算されたIV2と鍵を使用して、ノード1に送信される後続のデータパケットを暗号化することができることに留意すべきである。ノード2が複数の暗号化パケットをノード1に送信した後、ノード2のSN2値がオーバーフローすると、ノード2は、SN2値を初期化した後、S906から再び関連するステップを実行する。
【0188】
S910、ノード1は、受信したカプセル化された第2のデータパケット内のSN2値を取得し、SN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、第4の動的パラメータと係数Pの積、微分パラメータCおよび前記Q2を合計してIV2を計算し、上記IV2と上記鍵Keyを使用して、暗号化された第2のデータパケットを復号化する。
【0189】
ノード1は、ノード2から通信トラフィックを受信すると、カプセル化メッセージ内のSN2値を取得し、IV2=C+SN2%2n-k×2-1を使用してIV2値を計算し、IV2とKeyを暗号化アルゴリズムの2つの入力パラメータとする。上述の対称暗号化アルゴリズムを用いて(DATA2to1)ciphertextを復号化し、すなわち、(DATA2to1)plaintext=FUNdecipher(IV2,Key,(DATA2to1)ciphertext)。
【0190】
図10に示すように、本発明の実施例は、安全なデータ伝送のための装置の概略図を提供し、当該装置は、
自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するように構成される第1の計算ユニット1001と、
計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するように構成される第1の暗号化ユニット1002と、
受信した第2のデータパケット内のSN
2値を計算し、取得したSN
2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するように構成される第1の復号化ユニット1003と、を含む。
【0191】
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0192】
任意選択で、第1の計算ユニット1001は、第1の初期化ベクトルIV1を計算する前に、さらに、
SN1とIV1のオーバーフロー順序を判断する。
【0193】
SN1が最初にオーバーフローすると判断された場合、更新されたSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ1を合計してIV1を計算することを含む。
【0194】
IV1が最初にオーバーフローすると判断された場合、更新されたSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q1を合計してIV1を計算することを含む。
【0195】
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値2n-kである。
【0196】
任意選択で、第1の計算ユニット1001SN1とIV1のオーバーフロー順序を判断することは、
IV1の長さnと前記高位ビットの長さkの差を計算し、
SN1の長さmが前記差より大きくない場合、SN1が最初にオーバーフローしたと判断し、
SN1の長さmが前記差よりも大きい場合、IV1が最初にオーバーフローしたと判断することを含む。
【0197】
任意選択で、第1の復号化ユニット1003が第2の初期化ベクトルIV2を計算する前に、さらに、
SN2とIV2のオーバーフロー順序を判断する。
【0198】
SN2が最初にオーバーフローしたと判断された場合、取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ2を合計してIV2を計算することを含む。
【0199】
IV2が最初にオーバーフローしたと判断された場合、取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q2を合計してIV2を計算することを含む。
【0200】
ここで、Q2は0であるか、またはPの整数倍ではなく、前記Q1は前記Q2と異なる。前記Cの長さはIV2の長さnに等しく、前記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値2n-kである。
【0201】
任意選択で、第1の復号化ユニット1003がSN2とIV2のオーバーフロー順序を判断することは、
IV2の長さnと前記高位ビットの長さkの差を計算し、
SN2の長さmが前記差より大きくない場合、SN2が最初にオーバーフローしたと判断し、
SN2の長さmが前記差よりも大きい場合、IV2が最初にオーバーフローしたと判断することを含む。
【0202】
任意選択で、第1の計算ユニット1001が第1の初期化ベクトルIV1を計算する前に、さらに、
SN1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN1の最大値以下であり、
IV1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV1の低位n-kビットの最大値より大きくない。
【0203】
任意選択で、第1の復号化ユニット1003が第2の初期化ベクトルIV2を計算する前に、さらに、
SN2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN2の最大値より大きくなく、
IV2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV2の低位n-kビットの最大値より大きくない。
【0204】
任意選択で、第1の計算ユニット1001/第1の復号化ユニット1003が鍵の更新動作を開始するとき、さらに、新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始する。
【0205】
任意選択で、第1の計算ユニット1001/第1の復号化ユニット1003が更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、さらに、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算する。
【0206】
任意選択で、前記P値は2、前記Q1値は0、前記Q2値は-1、前記C値は乱数である。
【0207】
図11に示すように、本発明の実施例は、安全なデータ伝送のための装置の別の概略図を提供する。前記装置は、
受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算し、計算されたIV
1と鍵を使用して暗号化された第1のデータパケットを復号化するように構成される第2の復号化ユニット1101と、
自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するように構成される第2の計算ユニット1102と、
計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信するように構成される第2の暗号化ユニット1103とを含む。
【0208】
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0209】
任意選択で、第2の復号化ユニット1101が第1の初期化ベクトルIV1を計算する前に、さらに、
SN1とIV1のオーバーフロー順序を判断する。
【0210】
SN1が最初にオーバーフローすると判断された場合、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ1を合計してIV1を計算することを含む。
【0211】
IV1が最初にオーバーフローすると判断された場合、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q1を合計してIV1を計算することを含む。
【0212】
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値2n-kである。
【0213】
任意選択で、第2の復号化ユニット1101がSN1とIV1のオーバーフロー順序を判断することは、
IV1の長さnと前記高位ビットの長さkの差を計算し、
SN1の長さmが前記差より大きくない場合、SN1が最初にオーバーフローしたと判断し、
SN1の長さmが前記差よりも大きい場合、IV1が最初にオーバーフローしたと判断することを含む。
【0214】
任意選択で、第2の計算ユニット1102が第2の初期化ベクトルIV2を計算する前に、さらに、
SN2とIV2のオーバーフロー順序を判断する。
【0215】
SN2が最初にオーバーフローしたと判断された場合、更新されたSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ2を合計してIV2を計算することを含む。
【0216】
IV2が最初にオーバーフローしたと判断された場合、更新されたSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q2を合計してIV2を計算することを含む。
【0217】
ここで、Q2は0であるか、またはPの整数倍ではなく、前記Q1は前記Q2と異なる。前記Cの長さはIV2の長さnに等しく、前記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値2n-kである。
【0218】
任意選択で、第2の計算ユニット1102がSN2とIV2のオーバーフロー順序を判断することは、
IV2の長さnと前記高位ビットの長さkの差を計算し、
SN2の長さmが前記差より大きくない場合、SN2が最初にオーバーフローしたと判断し、
SN2の長さmが前記差よりも大きい場合、IV2が最初にオーバーフローしたと判断することを含む。
【0219】
任意選択で、第2の復号化ユニット1101が第1の初期化ベクトルIV1を計算する前に、さらに、
SN1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN1の最大値以下であり、
IV1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV1の低位n-kビットの最大値より大きくない。
【0220】
任意選択で、第2の計算ユニット1102が第2の初期化ベクトルIV2を計算する前に、さらに、
SN2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN2の最大値より大きくなく、
IV2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV2の低位n-kビットの最大値より大きくない。
【0221】
任意選択で、第2の復号化ユニット1101/第2の計算ユニット1102鍵の更新動作を開始するとき、さらに、新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始する。
【0222】
任意選択で、第2の復号化ユニット1101/第2の計算ユニット1102が更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、さらに、前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算する。
【0223】
任意選択で、前記P値は2、前記Q1値は0、前記Q2値は-1、前記C値は乱数である。
【0224】
図12に示すように、本発明の実施例は、メモリ1201およびプロセッサ1202を含む、安全なデータ伝送のためのデバイス1200の概略図を提供する。
【0225】
前記メモリ1201は、コンピュータプログラムを格納するように構成され、前記プロセッサ1202は、メモリ1201内のプログラムを読み取り、上記実施例のノード1側の安全なデータ伝送のための方法のステップ、またはノード2側の安全なデータ伝送のための方法のステップを実行するように構成される。
【0226】
前記プロセッサがメモリ内のプログラムを読み取って、上記の実施形態におけるノード1側の安全なデータ伝送のための方法のステップを実行するとき、前記プロセッサは、具体的に、自体の初期化されたシリアル番号SN1値を増分的に更新し、更新されたSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算し、計算されたIV1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信する;受信した第2のデータパケット内のSN2値を計算し、取得したSN2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV2を計算し、計算されたIV2と前記鍵を使用して暗号化された第2のデータパケットを復号化する。
【0227】
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0228】
任意選択で、前記プロセッサが第1の初期化ベクトルIV1を計算する前に、さらに、
SN1とIV1のオーバーフロー順序を判断する。
【0229】
SN1が最初にオーバーフローすると判断された場合、更新されたSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ1を合計してIV1を計算することを含む。
【0230】
IV1が最初にオーバーフローすると判断された場合、更新されたSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q1を合計してIV1を計算することを含む。
【0231】
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値2n-kである。
【0232】
任意選択で、前記プロセッサがSN1とIV1のオーバーフロー順序を判断することは、
IV1の長さnと前記高位ビットの長さkの差を計算し、
SN1の長さmが前記差より大きくない場合、SN1が最初にオーバーフローしたと判断し、
SN1の長さmが前記差よりも大きい場合、IV1が最初にオーバーフローしたと判断することを含む。
【0233】
任意選択で、前記プロセッサが第2の初期化ベクトルIV2を計算する前に、さらに、
SN2とIV2のオーバーフロー順序を判断することを含む。
【0234】
SN2が最初にオーバーフローしたと判断された場合、取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ2を合計してIV2を計算することを含む。
【0235】
IV2が最初にオーバーフローしたと判断された場合、取得したSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q2を合計してIV2を計算することを含む。
【0236】
ここで、Q2は0であるか、またはPの整数倍ではなく、前記Q2は前記Q1と異なり、前記Cの長さはIV2の長さnに等しく、前記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値2n-kである。
【0237】
任意選択で、前記プロセッサがSN2とIV2のオーバーフロー順序を判断することは、
IV2の長さnと前記高位ビットの長さkの差を計算し、
SN2の長さmが前記差より大きくない場合、SN2が最初にオーバーフローしたと判断し、
SN2の長さmが前記差よりも大きい場合、IV2が最初にオーバーフローしたと判断することを含む。
【0238】
前記プロセッサは、第1の初期化ベクトルIV1を計算する前に、さらに、
SN1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN1の最大値以下であり、
IV1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV1の低位n-kビットの最大値より大きくない。
【0239】
任意選択で、前記プロセッサが第2の初期化ベクトルIV2を計算する前に、さらに、
SN2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN2の最大値より大きくなく、
IV2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV2の低位n-kビットの最大値より大きくない。
【0240】
任意選択で、前記プロセッサは、鍵の更新動作を開始する前に、さらに、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始する。
【0241】
任意選択で、前記プロセッサは、更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、さらに、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算する。
【0242】
任意選択で、前記P値は2、前記Q1値は0、前記Q2値は-1、前記C値は乱数である。
【0243】
プロセッサがメモリ内のプログラムを読み取り、上記実施例におけるノード2側の安全なデータ伝送のための方法のステップを実行する際に、前記プロセッサは、具体的に、受信した第1のデータパケット内のSN1値を取得し、取得したSN1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV1を計算し、計算されたIV1と鍵を使用して暗号化された第1のデータパケットを復号化し、自体の初期化されたシリアル番号SN2値を増分的に更新し、更新されたSN2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV2を計算し、計算されたIV2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信する。
【0244】
ここで、前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV1と前記IV2は等しくなくなる。
【0245】
任意選択で、前記プロセッサは、第1の初期化ベクトルIV1を計算する前に、さらに、
SN1とIV1のオーバーフロー順序を判断する。
【0246】
SN1が最初にオーバーフローすると判断された場合、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ1を合計してIV1を計算することを含む。
【0247】
IV1が最初にオーバーフローすると判断された場合、取得したSN1値に対して第1の数学的変換を実行し、前記IV1を計算することは、
IV1を計算するためのSN1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q1を合計してIV1を計算することを含む。
【0248】
ここで、Pは1に等しくなく、0にも等しくなく、Q1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV1が最初にオーバーフローしたときのIV1の低位n-kビットの最大値2n-kである。
【0249】
任意選択で、前記プロセッサがSN1とIV1のオーバーフロー順序を判断することは、
IV1の長さnと前記高位ビットの長さkの差を計算し、
SN1の長さmが前記差より大きくない場合、SN1が最初にオーバーフローしたと判断し、
SN1の長さmが前記差よりも大きい場合、IV1が最初にオーバーフローしたと判断することを含む。
【0250】
任意選択で、前記プロセッサが第2の初期化ベクトルIV2を計算する前に、さらに、
SN2とIV2のオーバーフロー順序を判断する。
【0251】
SN2が最初にオーバーフローしたと判断された場合、更新されたSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ2を合計してIV2を計算することを含む。
【0252】
IV2が最初にオーバーフローしたと判断された場合、更新されたSN2値に対して第2の数学的変換を実行し、前記IV2を計算することは、
IV2を計算するためのSN2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q2を合計してIV2を計算することを含む。
【0253】
ここで、Q2は0であるか、またはPの整数倍ではなく、前記Q2は前記Q1と異なり、前記Cの長さはIV2の長さnに等しく、前記Mは、IV2が最初にオーバーフローしたときのIV2の低位n-kビットの最大値2n-kである。
【0254】
任意選択で、前記プロセッサがSN2とIV2のオーバーフロー順序を判断することは、
IV2の長さnと前記高位ビットの長さkの差を計算し、
SN2の長さmが前記差より大きくない場合、SN2が最初にオーバーフローしたと判断し、
SN2の長さmが前記差よりも大きい場合、IV2が最初にオーバーフローしたと判断することを含む。
【0255】
任意選択で、前記プロセッサが第1の初期化ベクトルIV1を計算する前に、さらに、
SN1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN1の最大値以下であり、
IV1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV1の低位n-kビットの最大値より大きくない。
【0256】
任意選択で、前記プロセッサが第2の初期化ベクトルIV2を計算する前に、さらに、
SN2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN2の最大値より大きくなく、
IV2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV2の低位n-kビットの最大値より大きくない。
【0257】
任意選択で、前記プロセッサが鍵の更新動作を開始するとき、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始する。
【0258】
任意選択で、前記プロセッサが更新された新しい鍵をデータ送信時に使用される鍵として使用する前に、さらに、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算する。
【0259】
任意選択で、前記P値は2、前記Q1値は0、前記Q2値は-1、前記C値は乱数である。
【0260】
本発明は、コンピュータプログラムが格納されるコンピュータプログラム媒体をさらに提供する。前記プログラムがプロセッサによって実行されると、上記実施例におけるノード1側の安全なデータ伝送のための方法のステップ、またはノード2側の安全なデータ伝送のための方法のステップを実現する。
【0261】
本出願で提供されるいくつかの実施例において、開示されたシステム、装置、および方法は他の方式で実施できることを理解されたい。例えば、上述した装置の実施例は例示に過ぎず、例えば、前記ユニットの分割は論理的な機能分割に過ぎず、実際の実施においては、他の分割方法があり得る。たとえば、これらのユニットの区分は、単に論理的な機能区分であり、実際に実装する場合は、複数のモジュールまたはコンポーネントを結合したり、別のシステムに統合したり、一部の機能を無視したり、不実行したりすることができる。別の点では、図示または説明された相互間の結合または直接結合または通信接続は、いくつかのインターフェース、装置またはモジュールを介した間接結合または通信接続とすることができ、電気的、機械的、または他の形態とすることができる。
【0262】
別個のコンポーネントとして説明されているモジュールは、物理的に分離されている場合もあれば分離されていない場合もあり、モジュールとして示されているコンポーネントは物理モジュールである場合もそうでない場合もある。つまり、それらは1か所に配置されている場合もあれば、複数のネットワーク モジュールに分散されている場合もある。この実施例の解決策の目的を達成するために、実際のニーズに応じてモジュールの一部またはすべてを選択することができる。
【0263】
さらに、本発明の各実施形態における各機能モジュールは、1つの処理モジュールに統合することも、各モジュールは物理的に単独で存在することも、2つ以上のモジュールを1つのモジュールに統合することもできる。上記の統合モジュールは、ハードウェアまたはソフトウェア機能モジュールの形式で実施できる。統合モジュールがソフトウェア機能モジュールの形式で実施され、独立した製品として販売または使用される場合、それはコンピュータ可読記憶媒体に記憶され得る。
【0264】
上記の実施形態では、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせによって全体または一部を実施することができる。ソフトウェアを使用して実施される場合、全体または一部がコンピュータプログラム製品の形式で実施される場合がある。
【0265】
前記コンピュータプログラム製品には、1つまたは複数のコンピュータ命令が含まれている。コンピュータプログラム命令が前記コンピュータ上にロードされて実行されると、本発明の実施例で説明されるプロセスまたは機能の全部または一部が生成される。前記コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラム可能なデバイスであってもよい。前記コンピュータ命令は、あるコンピュータ可読記憶媒体に記憶され、またはあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信され得る。例えば、前記コンピュータ命令は、有線(たとえば、同軸ケーブル、光ファイバー、デジタル加入者線(DSL)など)または無線(たとえば、赤外線、無線、マイクロ波など)手段により、ウェブサイト、コンピュータ、サーバー、またはデータセンターから別のウェブサイト、コンピュータ、サーバー、またはデータセンターに送信され得る。前記コンピュータ可読記憶媒体は、コンピュータが記憶できる任意の利用可能な媒体、または1つ以上の利用可能な媒体と統合されたサーバまたはデータセンターなどのデータ記憶装置であってもよい。前記利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、磁気テープ)、光学媒体(例えば、DVD)、または半導体媒体(例えば、ソリッドステートディスク(Solid State Disk,SSD))などであってもよい。
【0266】
以上は本発明の実施形態の方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図によって、本発明を記述した。理解すべきことは、コンピュータプログラム指令によって、フロー図および/またはブロック図における各フローおよび/またはブロックと、フロー図および/またはブロック図におけるフローおよび/またはブロックの結合を実現できる。プロセッサはこれらのコンピュータプログラム指令を、汎用コンピュータ、専用コンピュータ、組込み式処理装置、或いは他のプログラム可能なデータ処理装置設備の処理装置器に提供でき、コンピュータ或いは他のプログラム可能なデータ処理装置のプロセッサは、これらのコンピュータプログラム指令を実行し、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
これらのコンピュータプログラム指令は、又、コンピュータ或いは他のプログラム可能なデータ処理装置を特定方式で動作させるコンピュータ読取記憶装置に記憶できる。これによって、指令を含む装置は当該コンピュータ読取記憶装置内の指令を実行でき、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【0267】
これらコンピュータプログラム指令はさらに、コンピュータ或いは他のプログラム可能なデータ処理装置設備に実装もできる。コンピュータプログラム指令が実装されたコンピュータ或いは他のプログラム可能設備は、一連の操作ステップを実行することによって、関連の処理を実現し、コンピュータ或いは他のプログラム可能な設備において実行される指令によって、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
本発明によって提供される技術的解決策は、上で詳細に紹介されている。本発明では、本出願の原理および実施方法を説明するために特定の例が使用されている。上記の実施形態の説明は、方法およびその中心となる概念を理解するためにのみ使用される。同時に、当業者にとっては、本出願の考え方に基づいて特定の実施および適用範囲に変更が生じるであろう。これは、本発明の制限として理解される。
【手続補正書】
【提出日】2024-07-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
安全なデータ伝送のための方法であって、
ノード1が、ノード1自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するステップと、
前記ノード1が、計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するステップと、
前記ノード2が、受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算し、計算されたIV
1と前記鍵を使用して暗号化された第1のデータパケットを復号化するステップと、
前記ノード2が、前記ノード2自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するステップと、
前記ノード2が、計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化して前記ノード1に送信するステップと、
前記ノード1が、受信した第2のデータパケット内のSN
2値を取得し、取得したSN
2値に対して前記第2の数学的変換を実行し、前記IV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するステップと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための方法。
【請求項2】
前記ノード1/前記ノード2は、第1の初期化ベクトルIV
1を計算する前に、
SN
1とIV
1のオーバーフロー順序を判断するステップをさらに含み、
SN
1が最初にオーバーフローすると判断された場合、更新された/取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算するステップは、
IV
1を計算するためのSN
1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ
1を合計してIV
1を計算するステップを含み、
IV
1が最初にオーバーフローすると判断された場合、更新された/取得したSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算するステップは、
IV
1を計算するためのSN
1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q
1を合計してIV
1を計算するステップを含み、
前記Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV
1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV
1が最初にオーバーフローしたときのIV
1の低位n-kビットの最大値2
n-kであ
り、
前記ノード2/前記ノード1が第2の初期化ベクトルIV
2
を計算する前に、
SN
2
とIV
2
のオーバーフロー順序を判断するステップをさらに含み、
SN
2
が最初にオーバーフローしたと判断された場合、更新された/取得したSN
2
値に対して第2の数学的変換を実行し、前記IV
2
を計算するステップは、
IV
2
を計算するためのSN
2
値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ
2
を合計してIV
2
を計算するステップを含み、
IV
2
が最初にオーバーフローしたと判断された場合、更新された/取得したSN
2
値に対して第2の数学的変換を実行し、前記IV
2
を計算するステップは、
IV
2
を計算するためのSN
2
をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q
2
を合計してIV
2
を計算するステップを含み、
前記Q
2
は0であるか、またはPの整数倍ではなく、前記Q
2
は前記Q
1
と異なり、前記Cの長さはIV
2
の長さnに等しく、前記Mは、IV
2
が最初にオーバーフローしたときのIV
2
の低位n-kビットの最大値2
n-k
であることを特徴とする、請求項1に記載の安全なデータ伝送のための方法。
【請求項3】
前記ノード1/前記ノード2は、第1の初期化ベクトルIV
1を計算する前に、
SN
1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
1の最大値以下であり、
IV
1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
1の低位n-kビットの最大値より大きくな
く、
前記ノード2/前記ノード1が第2の初期化ベクトルIV
2
を計算する前に、
SN
2
が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
2
の最大値より大きくなく、
IV
2
が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
2
の低位n-kビットの最大値より大きくないことを特徴とする、請求項2に記載の安全なデータ伝送のための方法。
【請求項4】
前記鍵の更新動作が開始される場合、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することを特徴とする、請求項
3に記載の安全なデータ伝送のための方法。
【請求項5】
更新された新しい鍵をデータ送信時に使用する鍵として使用する場合、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算することを特徴とする、請求項
4に記載の安全なデータ伝送のための方法。
【請求項6】
前記P値は2、前記Q
1値は0、前記Q
2値は-1、前記C値は乱数であることを特徴とする、請求項
2に記載の安全なデータ伝送のための方法。
【請求項7】
安全なデータ伝送のための装置であって、
自体の初期化されたシリアル番号SN
1値を増分的に更新し、更新されたSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算するように構成される第1の計算ユニットと、
計算されたIV
1と鍵に基づき、第1のデータパケットを暗号化した後、ノード2に送信するように構成される第1の暗号化ユニットと、
受信した第2のデータパケット内のSN
2値を計算し、取得したSN
2値に対して第2の数学的変換を実行して第2の初期化ベクトルIV
2を計算し、計算されたIV
2と前記鍵を使用して暗号化された第2のデータパケットを復号化するように構成される第1の復号化ユニットと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための装置。
【請求項8】
前記第1の計算ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1とIV
1のオーバーフロー順序を判断し、
SN
1が最初にオーバーフローすると判断された場合、更新されたSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1値を第1の動的パラメータとし、前記第1の動的パラメータに係数Pを乗じた後、第1の動的パラメータと係数Pとの積、微分パラメータCおよび第1のパラメータQ
1を合計してIV
1を計算することを含み、
IV
1が最初にオーバーフローすると判断された場合、更新されたSN
1値に対して第1の数学的変換を実行し、前記IV
1を計算することは、
IV
1を計算するためのSN
1をMで除算し、その剰余を求めて第3の動的パラメータを取得し、前記第3の動的パラメータに前記係数Pを乗じた後、第3の動的パラメータと係数Pとの積、前記微分パラメータCおよび前記Q
1を合計してIV
1を計算することを含み、
前記Pは1に等しくなく、0にも等しくなく、Q
1は0であるか、またはPの整数倍ではなく、前記Cの長さはIV
1の長さnに等しく、前記Cは、kビットの高位ビットとn-kビットの低位ビットを含み、低位ビットの値はゼロであり、前記Mは、IV
1が最初にオーバーフローしたときのIV
1の低位n-kビットの最大値2
n-kであることを特徴とする、請求項
7に記載の安全なデータ伝送のための装置。
【請求項9】
前記第1の復号化ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2とIV
2のオーバーフロー順序を判断し、
SN
2が最初にオーバーフローしたと判断された場合、取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2値を第2の動的パラメータとし、前記第2の動的パラメータに前記係数Pを乗じた後、前記第2の動的パラメータと前記係数Pの積、前記微分パラメータCおよび第2のパラメータQ
2を合計してIV
2を計算することを含み、
IV
2が最初にオーバーフローしたと判断された場合、取得したSN
2値に対して第2の数学的変換を実行し、前記IV
2を計算することは、
IV
2を計算するためのSN
2をMで除算し、その剰余を求めて第4の動的パラメータを取得し、前記第4の動的パラメータに前記係数Pを乗じた後、前記第4の動的パラメータと前記係数Pの積、前記微分パラメータCおよび前記Q
2を合計してIV
2を計算することを含み、
前記Q
2は0であるか、またはPの整数倍ではなく、前記Q
2は前記Q
1と異なり、前記Cの長さはIV
2の長さnに等しく、前記Mは、IV
2が最初にオーバーフローしたときのIV
2の低位n-kビットの最大値2
n-kであることを特徴とする、請求項
8に記載の安全なデータ伝送のための装置。
【請求項10】
前記第1の計算ユニットが第1の初期化ベクトルIV
1を計算する前に、
SN
1が最初にオーバーフローしたと判断し、前記第1の動的パラメータが第1の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第1の動的パラメータが第2の事前設定閾値に達した場合、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
1の最大値以下であり、
IV
1が最初にオーバーフローし、前記第3の動的パラメータが第3の事前設定閾値に達したと判断した場合、鍵更新動作が開始され、前記第3の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
1の低位n-kビットの最大値より大きくないことを特徴とする、請求項
8に記載の安全なデータ伝送のための装置。
【請求項11】
前記第1の復号化ユニットが第2の初期化ベクトルIV
2を計算する前に、
SN
2が最初にオーバーフローし、前記第2の動的パラメータが第1の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第2の動的パラメータが第2の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第1の事前設定閾値は前記第2の事前設定閾値より小さく、前記第2の事前設定閾値はSN
2の最大値より大きくなく、
IV
2が最初にオーバーフローし、前記第4の動的パラメータが第3の事前設定閾値に達したと判断する場合、鍵更新動作が開始され、前記第4の動的パラメータが第4の事前設定閾値に達すると、更新された新しい鍵がデータ送信時に使用される鍵として使用され、ここで、前記第3の事前設定閾値は前記第4の事前設定閾値より小さく、前記第4の事前設定閾値はIV
2の低位n-kビットの最大値より大きくないことを特徴とする、請求項
9に記載の安全なデータ伝送のための装置。
【請求項12】
前記第1の計算ユニット/第1の復号化ユニットが鍵の更新動作を開始するとき、
新たな微分パラメータCを生成するために、高位ビットのビット数kの新たな値Nの計算動作を開始するか、または、新たな微分パラメータCを生成するために、前記kビットの高位ビット的新たな値Nの計算動作を開始することを特徴とする、請求項
8または請求項
9に記載の安全なデータ伝送のための装置。
【請求項13】
前記第1の計算ユニット/第1の復号化ユニットが更新された新しい鍵をデータ送信時に使用される鍵として使用するとき、
前記新たな微分パラメータCを使用してデータ送信時に使用される初期化ベクトルIVを計算することを特徴とする、請求項
12に記載の安全なデータ伝送のための装置。
【請求項14】
前記P値は2、前記Q
1値は0、前記Q
2値は-1、前記C値は乱数であることを特徴とする、請求項
9に記載の安全なデータ伝送のための装置。
【請求項15】
安全なデータ伝送のための装置であって、
受信した第1のデータパケット内のSN
1値を取得し、取得したSN
1値に対して第1の数学的変換を実行し、第1の初期化ベクトルIV
1を計算し、計算されたIV
1と鍵を使用して暗号化された第1のデータパケットを復号化するように構成される第2の復号化ユニットと、
自体の初期化されたシリアル番号SN
2値を増分的に更新し、更新されたSN
2値に対して第2の数学的変換を実行し、第2の初期化ベクトルIV
2を計算するように構成される第2の計算ユニットと
計算されたIV
2と前記鍵に基づき、第2のデータパケットを暗号化してノード1に送信するように構成される第2の暗号化ユニットと、を含み、
前記第1の数学的変換と前記第2の数学的変換により、計算された前記IV
1と前記IV
2は等しくなくなることを特徴とする、安全なデータ伝送のための装置。
【国際調査報告】