密钥协商方法及通信设备
技术领域
本发明涉及通信技术领域,特别是指一种密钥协商方法及通信设备。
背景技术
近年来,信息科技发展迅速,对人类生活水平和社会经济发展产生了巨大的积极影响。随着人类生活水平提高和社会各行业的发展,信息数据体量越来越大。光纤通信系统及网络作为骨干网、接入网构建的主要手段,担负着信息数据传输的重任。光纤通信技术是我国信息传输的主要手段之一,受到国家高度重视和通信行业关注,得到了长足发展。为了满足社会对通信网络性能日益增长的要求,更长距离、更大容量、更快速率已经成为未来光纤通信技术的必然发展趋势。
随着越来越多的信息数据在网络上传输,光纤通信系统及网络的安全面临着日益严峻的挑战。随着光纤通信网络的发展,光缆距离长,线路环境复杂,现有光通信技术难以抵御线路或节点窃听攻击,面临信息“被搭线”劫持和“被串接”劫持的风险,关键信息基础设施的高速安全互联受到严重威胁。光缆窃听设备可以直接截获微量泄漏光而不会影响到正常通信,且操作简单、移动性强、难于发现。光缆传输中必不可少的中继放大器也是威胁传输安全的薄弱点,窃听信号更为方便。
此外,随着具备强大破译能力的量子计算机的发展,光通信的数据内容存在重大泄漏隐患。大部分被广泛应用的光纤信道在物理层并没有安全保障,会导致光纤信道传输的信息受到攻击。攻击者可以很容易对信道进行窃听,破坏信息的保密性和完整性等。光纤传输过程基本处于非设防状态,可直接从光缆或者光放大器处窃听光信号并截获分析所携带的数据信息。
由于物理层安全威胁及影响日益突出,同时以计算复杂性为基础的传统密码体制已无法应对来自量子计算机的强大破解能力,光网络中传输的信息内容将面临“被透明、被复制、被篡改”的窘境。另外,采用物理层安全手段,其安全程度与数据信息内容无关,可以对光纤线路上的所有传输信号实施安全防护。物理层安全通信技术既能提高线路信息抗截获能力,又能保障系统传输性能。因此,利用物理层安全方案实现通信系统安全性,成为新的研究热点,受到国内外的广泛重视。
发明内容
有鉴于此,本发明的目的在于提出一种密钥协商方法以及通信设备。
本发明实施例提出的密钥协商方法包括:
A、生成本地状态基序列;
B、基于本地状态基序列对密钥协商序列进行抵入噪声加密,并将加密后的数据信号发送至对端通信设备;
C、判断数据信号的发送次数是否达到预先设定的发送次数阈值,如果是,则执行D,否则,对本地状态基序列中的状态基进行翻转,然后返回B;
a、对从对端通信设备接收的数据信号进行抵入噪声解密,并将解密后的码元序列与密钥协商序列进行比较,记录单次接收后的存活码元位置;
b、根据单次接收后的存活码元位置更新本地总存活码元位置;
D、与所述对端通信设备交换所述本地总存活码元位置;
E、基于对端通信设备的本地总存活码元位置与自身的本地总存活码元位置确定收发双方一致的状态基;以及
F、基于所述收发双方一致的状态基生成密钥。
其中,上述进行抵入噪声加密包括:将所述本地状态基序列的每一位与密钥协商序列的每个比特按照顺序依次一一对应;以及对应密钥协商序列的每个比特,分别根据其对应的状态基,将各个比特映射为对应的数据信号。
其中,对本地状态基序列中的状态基进行翻转包括:将当前本地状态基序列各位上的状态基更换为另一个状态基。
其中,抵入噪声解密包括:将接收到的数据信号与本地状态基序列对应位上状态基对应的判决门限进行比较,如果大于或等于上述判决门限,则判定对应码元为1;如果小于上述判决门限,则判定对应码元为0。
其中,所述记录单次接收后的存活码元位置包括:将解密后的码元序列与所述密钥协商序列进行位异或运算;以及将位异或运算结果作为记录单次接收后的存活码元位置的存活码元位置序列;其中,存活码元位置序列上比特值为0代表码元序列中该位置码元存活;比特值为1代表码元序列中该位置码元不存活。
其中,所述根据单次接收的存活码元位置更新本地总存活码元位置包括:将所述存活码元位置序列与本地总存活码元位置序列进行位或运算;以及将位或运算结果作为记录本地总存活码元位置的本地总存活码元位置序列。
其中,所述确定收发双方一致的状态基包括:将对端的本地总存活码元位置序列与自身的本地总存活码元位置序列进行位或运算,并根据位或运算结果确定一致的状态基;其中,自身的本地状态基序列上与所述位或运算结果中值为0的位置对应的状态基为一致的状态基。
其中,上述基于所述收发双方一致的状态基生成密钥包括:将收发双方一致的状态基组成一致状态基序列;根据一致状态基序列各个位上的状态基,将一致状态基序列映射为一个二进制序列;以及将所述二进制序列作为初始密钥。
上述方法可以进一步包括:
将一组随机比特序列或交织参数直接发送给对端通信设备;
根据所述随机比特序列将自身得到的初始密钥进行随机位置变换或者利用所述交织参数对自身得到的初始密钥进行交织;
将重新排序或者交织后的密钥进行分段;
对于一个密钥子块X,产生随机比特串,将所述比特串编码成LDPC码字C,对X和C进行异或运算后,将异或运算结果作为边信息发送给对端通信设备;
将自身拥有的密钥数据Y=X+ε与从对端通信设备接收到的边信息进行异或运算,计算出C+ε,再经过LDPC译码得到码字C,并获得纠错后的密钥;其中,ε代指收发双方密钥的差异;
采用与对端通信设备相同的哈希函数对纠错后的密钥进行一致性检验,若检验结果相同,则表示纠错成功保留纠错后的密钥;否则,丢弃该纠错后的密钥。
对应上述密钥协商方法,本发明的实施例还提出了一种通信设备,该通信设备包括:发送模块、接收模块以及密钥生成模块;其中,
所述发送模块用于生成本地状态基序列;基于本地状态基序列对密钥协商序列进行抵入噪声加密,并将加密后的数据信号发送至对端通信设备;判断数据信号的发送次数是否达到预先设定的发送次数阈值,如果是,则指示接收模块从对端通信设备接收其本地总存活码元位置,否则,对本地状态基序列中的状态基进行翻转,然后返回基于本地状态基序列对与本地状态基序列长度相同的密钥协商序列进行抵入噪声加密的步骤;
所述接收模块用于对从对端通信设备接收的数据信号进行抵入噪声解密,并将解密后的码元序列与密钥协商序列进行比较,记录单次接收的存活码元位置;根据单次接收的存活码元位置更新本地总存活码元位置;以及
密钥生成模块,用于基于对端通信设备的本地总存活码元位置与自身的本地总存活码元位置确定收发双方一致的状态基,以及基于所述收发双方一致的状态基生成密钥。
本发明实施例所述的密钥协商方法可以通过使用抵入噪声的加密和解密操作,充分利用物理噪声的特性对信号进行掩藏,同时通过控制本地状态基翻转,保证同基接收码元存活率大于异基接收码元存活率,并通过多次收发将上述存活率差异放大,从而确保最后存活的码元绝大部分为同基接收的码元,并以此确定收发双方一致的状态基。最后,再基于收发双方一致的状态基生成一致性的密钥。总体来讲,一方面,相比传统密钥分发系统,本发明实施例所提出的密钥协商方法充分利用了物理噪声的随机特性,保密程度非常高,攻击方难以截获有用信息,从而保证了密钥的保密性,降低泄露的风险。另一方面,相比现有的量子密钥分发技术,本发明实施例所提出的密钥协商方法能够与现有通信系统兼容,无需对系统以及线路进行改造,节省成本。
附图说明
图1为本发明一个实施例所述的密钥协商方法的流程示意图;
图2为本发明一个实施例所述的密钥纠错方法的流程示意图;
图3为本发明一个实施例所述的密钥协商方法中确定发送次数阈值的方法流程示意图;
图4为本发明一个实施例所述的通信设备的内部结构示意图;以及
图5为本发明另一个实施例所述的通信设备的内部结构示意图;
图6为本发明又一个实施例所述的进行密钥协商的两个网络节点的内部结构示意图;以及
图7为本发明实施例所述的抵入噪声加密示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
针对光通信系统物理层安全问题,本发明的实施例提出了一种密钥协商方法,该方法可以应用于包括至少两个通信设备的通信系统中,实现两个通信设备之间的密钥协商。上述至少两个通信设备可以通过网络实现连接。上述通信设备既包括发送端的功能也包括接收端的功能。
本发明实施例所述的密钥协商方法可以通过使用抵入噪声的加密和解密操作,充分利用物理噪声的特性对信号进行掩藏,同时通过控制本地状态基翻转,保证同基接收码元存活率大于异基接收码元存活率,并通过多次收发将上述存活率差异放大,从而确保最后存活的码元绝大部分为同基接收的码元,并以此确定收发双方一致的状态基。最后,再基于收发双方一致的状态基生成一致性的密钥。总体来讲,一方面,相比传统密钥分发系统,本发明实施例所提出的密钥协商方法充分利用了物理噪声的随机特性,保密程度非常高,攻击方难以截获有用信息,从而保证了密钥的保密性,降低泄露的风险。另一方面,相比现有的量子密钥分发技术,本发明实施例所提出的密钥协商方法能够与现有通信系统兼容,无需对系统以及线路进行改造,节省成本。
下面就结合附图以及具体的示例对本发明实施例提出的密钥协商方法进行详细说明。
图1显示了本发明一个实施例所述的密钥协商方法,该方法由通信系统中进行密钥协商的两个通信设备分别执行。如图1所示,该密钥协商方法包括如下步骤:
步骤101,生成本地状态基序列。
在本发明的实施例中,上述生成本地状态基序列的方法可以通过如下过程实现:
步骤101a:根据预先确定的本地状态基序列的长度N,选择N个状态基,其中,N为整数。
在本发明的实施例中,每个状态基将定义两个电平,包括:一个高电平和一个低电平。不同状态基对应的两个电平是不同的。在发送数据信号之前,通信设备会根据本地状态基定义的电平将码元“1”映射为一个高电平信号(其信号电平为该状态基定义的高电平),而将码元“0”映射为一个低电平信号(其信号电平为该状态基定义的低电平)。
在本发明的实施例中,在上述步骤101a中,通信设备可以从相邻的两个状态基中进行N次随机选择,从而选择出N个状态基,例如,对应长度为N的本地状态基序列的每一位,随机地从相邻的状态基A及状态基B中随机选择一个状态基,从而选择出N个状态基,其中,每个状态基对应本地状态基序列的一个比特位。需要说明的是,由于状态基A和状态基B是相邻的两个状态基,它们定义的电平之间的差异会非常小(也即状态基A的高(低)电平与状态基B的高(低)电平差距非常小)。这样,当数据信号受到噪声影响后,这个差异就可能被噪声淹没了,从而导致无法区分具有该电平的信号到底是状态基A对应的信号还是状态基B对应的信号。本发明的实施例就是利用了这种物理噪声的随机特性来增加密钥协商过程中传输的数据的保密性。
在本发明的实施例中,各通信设备的本地状态基序列的长度N可以是预先确定的。例如,本地状态基序列的长度的设置通常需要考虑保证密钥协商过程结束后所存活码元的数量在102量级以上,因而,一般可以设置为十万级到百万级的序列长度。在本发明的实施例中,通信系统中进行密钥协商的多个通信设备的本地状态基序列的长度应该设置为是一致的。
步骤101b,将选择的N个状态基组合成本地状态基序列。
在本发明的实施例中,在选择出了N个本地状态基之后,通信设备即可将选择的N个组合在一起,组成长度为N的本地状态基序列。例如,选择出的N个状态基为:状态基A、状态基A、状态基B、状态基A、……、状态基B、状态基A,则组成的本地状态基序列可以表达为[AABA……BA],其长度也为N。由此可以看出,本地状态基序列上的每一位对应一个由通信设备选择出的状态基。
步骤102,基于本地状态基序列对密钥协商序列进行抵入噪声加密,得到加密后的数据信号。
在本发明的实施例中,上述密钥协商序列是预先配置给通信设备的进行密钥协商过程所使用的已知二进制序列,例如,可以是全0码元序列,或者全1码元序列,又或者是预先定义好的任意的二进制序列等等。需要说明的是,配置给进行密钥协商的两个通信设备的密钥协商序列是一致的,且其长度与本地状态基序列的长度相同,也即作为接收端的通信设备需要已知作为发送端的通信设备在本次密钥协商过程中所使用的密钥协商序列是什么。
在本发明的实施例中,上述抵入噪声加密具体可以包括如下步骤:
步骤102a:将本地状态基序列的每一位与密钥协商序列的每个比特按照先后顺序依次一一对应。
例如,对于上述长度为N的本地状态基序列[AABA……BA],在建立上述一一对应之后,密钥协商序列的第一个比特将对应状态基A,第二个比特将对应状态基A,第三个比特将对应状态基B,第四个比特将对应状态基A,……,第N-1个比特将对应状态基B,以及第N个比特将对应状态基A。
步骤102b:对密钥协商序列的每个比特,分别根据其对应的状态基,将各个比特映射为数据信号。
例如,对于上述长度为N的本地状态基序列[AABA……BA],则对密钥协商序列每个比特,如果该比特为1且对应的状态基为A,则将该比特映射为状态基A的高电平信号;如果该比特为0且对应的状态基为A,则将该比特映射为状态基A的低电平信号;如果该比特为1且对应的状态基为B,则将该比特映射为状态基B的高电平信号;以及如果该比特为0且对应的状态基为B,则将该比特映射为状态基B的低电平信号。
特别地,如果采用全0码元序列作为上述密钥协商序列,则由于全0码元序列每个比特都为0,所以,映射得到的都是其对应状态基所定义的低电平的信号。例如,对于上述长度为N的本地状态基序列[AABA……BA],在经过上述映射后,得到的信号为由状态基A的低电平信号、状态基A的低电平信号、状态基B的低电平信号、状态基A的低电平信号、……、状态基B的低电平信号以及状态基A的低电平信号组成的数据信号。
特别地,如果采用全1码元序列作为上述密钥协商序列,则由于全1码元序列每个比特都为1,所以,映射得到的都是其对应状态基所定义的高电平的信号。例如,对于上述长度为N的本地状态基序列[AABA……BA],在经过上述映射后,得到的信号为由状态基A的高电平信号、状态基A的高电平信号、状态基B的高电平信号、状态基A的高电平信号、……、状态基B的高电平信号以及状态基A的高电平信号组成的数据信号。
步骤103,将上述加密后的数据信号发送至对端通信设备。
在本发明的实施例中,通信设备可以使用公开信道将加密后的数据信号进行公开传输。
步骤104,判断数据信号的发送次数是否达到预先设定的发送次数阈值N,如果是,则执行步骤106,否则,执行步骤105。
在本发明的实施例中,上述发送次数阈值N通常设定为大于或等于2的整数。通常,N的取值可以根据通信设备之间通信链路的状况确定,例如根据通信链路的误码率来确定。其中,发送次数阈值N具体的一种确定方法将在后文中详细描述。
步骤105,对本地状态基序列中的状态基进行翻转,然后返回步骤102。
在本发明的实施例中,上述对本地状态基序列中的状态基进行翻转的操作具体可以是指将当前本地状态基序列各位上的状态基更换为另一个状态基,也即对于本地状态基序列上的某一位,如果是状态基A,则将其更换为状态基B;如果是状态基B,则将其更换为状态基A。
仍以上述长度为N的本地状态基序列[AABA……BA]为例,在进行翻转之后得到的本地状态基序列则可以表示为[BBAB……AB]。
以上步骤101~步骤105是通信设备作为发送端时所执行的功能。在作为发送端执行上述操作的同时,通信设备也将作为接收端执行接收端的功能。该接收端的功能具体可以包括:
步骤111,接收对端通信设备发送的加密后的数据信号。
在本发明的实施例中,通信设备可以使用公开信道从对端通信设备接收加密后的数据信号。
步骤112,对接收的数据信号进行抵入噪声解密,得到解密后的码元序列。
在本发明的实施例中,上述抵入噪声解密方法可以包括:将接收到的数据信号与本地状态基序列对应位上状态基对应的判决门限进行比较,如果大于或等于上述判决门限,则判定对应码元为1;如果小于上述判决门限,则判定对应码元为0。需要说明的是,由于不同状态基定义的高/低电平是不同的,因此其对应的判决门限也是不同的,因此,在本步骤中,通信设备将根据本地状态基序列确定每一位码元对应的判决门限,然后再进行判决。
仍以本地状态基序列[AABA……BA]为例,在进行抵入噪声解密时,对于第一个码元将使用本地状态基序列[AABA……BA]中第一位状态A对应的判决门限进行判决,确定第一个码元是0还是1;对于第二个码元将使用本地状态基序列[AABA……BA]中第二位状态A对应的判决门限进行判决,确定第二个码元是0还是1;对于第三个码元将使用本地状态基序列[AABA……BA]中第三位状态B对应的判决门限进行判决,确定第三个码元是0还是1;对于第四个码元将使用本地状态基序列[AABA……BA]中第四位状态A对应的判决门限进行判决,确定第四个码元是0还是1;……;对于第N-1个码元将使用本地状态基序列[AABA……BA]中第N-1位状态B对应的判决门限进行判决,确定第N-1个码元是0还是1;以及对于第N个码元将使用本地状态基序列[AABA……BA]中第N位状态A对应的判决门限进行判决,确定第N个码元是0还是1。
步骤113,将解密后的码元序列与密钥协商序列进行比较,记录单次接收后的存活码元位置。
在本发明的实施例中,通信设备在将解密后的码元序列与密钥协商序列进行比较时,如果在某一位置上两个序列对应的码元相同,则称该位置对应的码元存活,亦称该码元为存活码元,同时可称该位置为存活码元位置。
在本发明的实施例中,可以用一个存活码元位置序列记录单次接收后的存活码元位置,其中,上述存活码元位置序列可以是与码元序列长度相等(与本地状态基序列的长度也相等)的0/1序列,其中,比特值为0代表码元序列中该比特码元存活;比特值为1代表码元序列中该比特码元不存活。在这种情况下,可以先将上述存活码元位置序列的初始值设置为全1序列。然后,在将解密后的码元序列与密钥协商序列进行比较过程中,如果某一位置上两个序列对应的码元相同,则将上述存活码元位置序列在该位置上的数值1修改为0,以标记该位置上的码元为存活码元。
具体地,在本发明的实施例中,上述记录单次接收后的存活码元位置可以包括:将解密后的码元序列与密钥协商序列进行位异或运算(也即对两个序列的对应位进行异或运算),并将上述位异或运算结果作为存活码元位置序列。
在本发明的实施例中,可以使用一个存活码元位置寄存器存储上述存活码元位置序列。可知,上述存活码元位置寄存器用于记录在一次收发操作后的存活码元位置。
步骤114,根据上述单次接收后的存活码元位置更新本地总存活码元位置。
在本发明的实施例中,可以用一个本地总存活码元位置序列记录本地总存活码元位置,其中,上述本地总存活码元位置序列亦可以是与码元序列长度相等(与本地状态基序列的长度也相等)的0/1序列,其中,比特值为0代表码元序列中该比特码元存活;比特值为1代表码元序列中该比特码元不存活。上述本地总存活码元位置序列用于记录一次密钥协商过程中经过若干次收发后的存活码元位置,也就是说,经过若干次接收之后该位置上码元始终存活。
在经过N次接收后,上述本地总存活码元位置记录的就是一次密钥协商过程结束后仍然存活的码元的位置。
在本发明的实施例中,根据上述单次接收的存活码元位置更新本地总存活码元位置的具体方法可以包括:将存活码元位置序列与本地总存活码元位置序列进行位或运算(也即对两个序列的对应位进行或运算)。
在本发明的实施例中,上述本地总存活码元位置可以用一个总存活码元位置记录寄存器来记录。其中,上述总存活码元位置记录寄存器的初始值可以设置为0。
步骤115,判断数据信号的接收次数是否达到预先设定的发送次数阈值N,如果是,则执行步骤106,否则,返回步骤111。
在一次密钥的协商过程中,由于作为发送端的通信设备将发送N次数据信号,因此,上述步骤111~步骤114也需要重复执行N次。
以上步骤111~步骤115是通信设备作为接收端所执行的功能。需要说明的是,上述步骤111~步骤115与上述步骤101~步骤105是同时执行的,也即通信设备可以同时执行发送端和接收端的功能。
需要特别说明的是,在本发明的实施例中,需要保证在同一次收发中收发双方状态基的翻转情况是相同的,比如收发双方都处于翻转状态,或都处于没有翻转的状态(其中,经过奇数次翻转相当于处于翻转状态,而经过偶数次翻转相当于处于没有翻转的状态)。例如,Alice某一次加密发送数据信号时,Alice本地状态基没有翻转,则Bob同一次接收并对数据信号进行抵入噪声解密时其本地状态基也是没有翻转的。
基于这样的要求,在本发明的一些实施例中,在上述步骤112中,对于数据信号的第n次接收,进行抵入噪声解密所使用的本地状态基应该与该通信设备在第n次数据信号发送过程中进行抵入噪声加密时所使用的本地状态机是一致的。也即,第n次抵入噪声解密所使用的状态基和该通信设备第n次抵入噪声加密所使用的状态基相同。
又或者,作为替代方案,在本发明的另一些实施例中,可以在一次收发过程均结束之后,再进行本地状态基的翻转。也即执行完上述步骤114之后将跳转到上述步骤104,而不执行步骤115。这样,在步骤105进行本地状态基翻转之后,才会返回步骤102和步骤111开始下一次收发过程。
又或者,作为另一种替代方案,也可以将通信设备的接收和发送功能完全独立开,也即通信设备将维护两个本地状态基序列分别作为发送状态基和接收状态基,每次加密发送后,将执行发送状态基翻转;每次接收解密后,将执行接收状态基翻转。在这种情况下,上述步骤101中,将生成发送状态基和接收状态基。步骤101-105中所述的本地状态基将指上述发送状态基;而上述步骤111-115中所述的本地状态基将指接收状态基。且步骤115中,如果数据信号的接收次数没有达到预先设定的发送次数阈值N,则先进行接收状态基的翻转,然后再返回步骤111。在该实施例中,上述发送和接收的过程并没有执行顺序上的限制。
在N次发送和N次接收都完成后,将执行下面的步骤106。
步骤106,与对端通信设备交换本地总存活码元位置。
在本发明的实施例中,上述与对端通信设备交换本地总存活码元位置包括:将本地总存活码元位置序列发送至对端通信设备;以及从对端通信设备接收对端的本地总存活码元位置序列。
在本发明的实施例中,上述通信设备可以使用公开信道与对端通信设备交换上述总存活码元位置。
步骤107,基于对端的总存活码元位置与自身的本地总存活码元位置确定收发双方一致的状态基。
在本发明的实施例中,通信设备可以将对端的本地总存活码元位置序列与自身的本地总存活码元位置序列进行位或运算(也即对两个序列的对应位进行或运算),并根据位或运算结果得到收发双方一致的状态基。其中,本地状态基序列上与上述运算结果中值为0的位置对应的状态基即为收发双方一致的状态基。
仍以本地状态基为[AABA……BA]为例,如果上述位或运算结果为[0101……10],则可以确定收发双方一致的状态基是第一个位置的状态基A、第三个位置的状态基B、……、以及第N个位置的状态基A。
本领域的技术人员可以理解,在进行位或运算之后,运算结果中值为0的位置即为经过N次收发后发送端和接收端双方都仍存活的码元位置。而因为发送端在发送数据信号时所使用本地状态基序列和码元序列的位置是一一对应的,因此,知道了在多次收发之后双方都仍存活的码元位置,即可确定状态基序列中相同位置的状态基便是一致的状态基。
需要说明的是,上述一致的状态基并非指的是100%一致,而只是达到了所设置的一致性指标M的状态基。
步骤108,基于上述收发双方一致的状态基生成初始密钥。
在本发明的实施例中,上述基于上述一致的状态基生成初始密钥的步骤具体可以包括:
步骤108a:将收发双方一致的状态基组成一致状态基序列。
例如,在上例中,一致状态基序列可以表示为[AB……A]。
步骤108b:根据一致状态基序列各个位上的状态基,将一致状态基序列映射为一个二进制序列。
例如,在本发明的实施例中可以将一致状态基序列上的状态基A映射为1bit,而将状态基B映射为0bit,从而得到二进制序列[10……1];或者反过来,将状态基A映射为0bit,而将状态基B映射为1bit,从而得到二进制序列[01……0]。
步骤108c:将上述二进制序列作为上述初始密钥。
通过上述过程可以看出,本发明实施例所述的密钥协商方法可以通过使用抵入噪声的加密和解密操作,充分利用物理噪声的特性对信号进行掩藏,同时通过控制本地状态基翻转,保证同基接收码元存活率大于异基接收码元存活率,并进一步通过多次收发将上述存活率差异放大,从而确保最后存活的码元绝大部分为同基接收的码元,并以此确定收发双方一致的状态基。最后,再基于收发双方一致的状态基生成一致性的密钥。总体来讲,一方面,相比传统密钥分发系统,本发明实施例所提出的密钥协商方法充分利用了物理噪声的随机特性,保密程度非常高,攻击方难以截获有用信息,从而保证了密钥的保密性,降低泄露的风险。另一方面,相比现有的量子密钥分发技术,本发明实施例所提出的密钥协商方法能够与现有通信系统兼容,无需对系统以及线路进行改造,节省成本。
但是,如前所述,上述一致的状态基并非指的是100%一致,而只是达到了所设置的一致性指标M的状态基。
在这种情况下,为了实现收发双方一致的状态基100%一致,本发明的实施例给出了进一步对上述初始密钥进行纠错的方法。需要说明的是,在进行纠错过程的描述时,为了描述方便将通信设备的发送端功能和接收端功能分开单独作为功能模块进行描述。具体而言,如图2所示,上述纠错流程具体可以包括如下步骤,在该过程中以LDPC码为例进行描述。
步骤201,发送端将一组随机比特序列或交织参数直接发送给接收端。
步骤202,发送端和接收端分别根据上述随机比特序列将自身得到的初始密钥进行随机位置变换;或者,发送端和接收端分别根据利用上述交织参数对自身得到的初始密钥进行交织。
这样做的目的是为了让错误比特分散在整个密钥串中,减少突发错误,以便更快的完成密钥纠错,提高纠错效率。
步骤203,发送端和接收端将重新排序或者交织后的密钥进行分段。
需要说明的是,发送端和接收端的分段长度要相同,且该分段长度可以由LDPC生成矩阵决定。例如,分段长度在98%一致率下可达到1Mbit以上。
步骤204,对于一个密钥子块X,发送端先产生随机比特串,然后将该比特串编码成LDPC码字C(其中,C与X码长一样),对X和C进行异或运算,并将异或运算结果作为边信息发送给接收端。
步骤205,接收端将自己拥有的密钥数据Y=X+ε(其中,ε代指发送端和接收端密钥的差异)与接收到的边信息进行异或运算,计算出C+ε,再经过LDPC译码得到码字C,最后获得密钥X。
步骤206,发送端和接收端选择同一个哈希函数对自身的密钥X进行计算,并交换计算得到的哈希值,若两个哈希值相同,则表示纠错成功,保留纠错后的密钥;否则,丢弃该密钥。
这是因为哈希函数在很大概率下对不同的输入有不同的输出,且由输出不能反推出输入。因此,若发送端和接收端双方对纠错后的密钥进行哈希函数运算的结果相同,则表示纠错成功;否则,丢弃该密钥。例如,纠错后发送端和接收端得到的密钥分别为101110101,101110111。经过哈希函数的运算输出分别为101和111,则说明纠错不成功。该密钥将会被丢弃。
通过上述密钥纠错方法可以确保收发双方得到的密钥是一致的。
下面在结合图3详细说明本发明实施例所述的密钥协商方法中一种确定发送次数阈值N的具体方法。如图3所示,该方法主要包括:
步骤301:通过传输一定数量的专用数据测量同基接收的码元存活率和异基接收的码元存活率。
在本发明的实施例中,上述同基接收是指发送端和接收端采用相同的状态基进行发送和接收;异基接收是指发送端和接收端采用不同的状态基进行发送和接收。
在本发明的实施例中,在同基接收的情况下,发送端和接收端双方相互发送一定长度且双方都已知的专用数据(例如,伪随机序列PRBS)。然后,通过接收序列和发送序列可以计算测量得到同基情况下的两条线路的传输误码率ber1up、ber1down。同理,也可以计算测量得到异基情况下的两条线路的传输误码率ber2up、ber2down。在这种情况下,同基接收时两条线路码元存活率,也即同基接收的码元存活率为:sur1up=1-ber1up,sur1down=1-ber1down。异基接收时两条线路码元存活率,也即异基接收的码元存活率为:sur2up=1-ber2up,sur2down=1-ber2down。
步骤302:根据通过测量得到的同基接收的码元存活率和异基接收的码元存活率以及系统所要求的状态基一致性指标M(一般可以设置为98%),计算达到所述一致性指标所需要的最小收发次数K。
在本发明的实施例中,假设最小收发次数为K,则可以计算得到经过K次收发后同基情况下码元存活率:sur1=(sur1up×sur1down)K以及K次收发后异基情况下码元存活率:sur2=(sur2up×sur2down)K。
另外,假设状态基一致性指标M=98%,则可以通过求解下面不等式(1)计算得出达到一致性指标所需的最小收发次数N:
sur1/sur2>100×M (1)
对上述不等式(1)进行推导可以得到下面的不等式(2):
(sur1up×sur1down)K/(sur2up×sur2down)K>98 (2)
从而得到K的最小值。即K次收发后,同基码元存活率sur1大于异基码元存活率sur2的98倍时,可以认为K次收发后存活下来的码元中98%是同基码元。
步骤303:根据所述最小收发次数K确定上述发送次数阈值N。
其中,在本发明的实施例中,应当保证N≥K。
通过上述方法确定的N基本可以确保收发双方一致状态基满足预定的状态基一致性指标M。
对应上述密钥协商方法,本发明的实施例还给出了一种通信设备,其结构如图4所示,主要包括:发送模块41、接收模块42以及密钥生成模块43。
在本发明的实施例中,发送模块41用于生成本地状态基序列;基于本地状态基序列对密钥协商序列进行抵入噪声加密,并将加密后的数据信号发送至对端通信设备;判断数据信号的发送次数是否达到预先设定的发送次数阈值,如果是,则指示接收模块42从对端通信设备接收其本地总存活码元位置,否则,对本地状态基序列中的状态基进行翻转,然后返回基于本地状态基序列对与本地状态基序列长度相同的密钥协商序列进行抵入噪声加密的步骤。
接收模块42用于对从对端通信设备接收的数据信号进行抵入噪声解密,并将解密后的码元序列与密钥协商序列进行比较,记录单次接收的存活码元位置;根据单次接收的存活码元位置更新本地总存活码元位置。
密钥生成模块43用于基于对端通信设备的本地总存活码元位置与自身的本地总存活码元位置确定收发双方一致的状态基,以及基于所述收发双方一致的状态基生成密钥。
其中,在本发明的实施例中,上述发送模块41可以包括:
本地状态基序列生成单元411,用于生成本地状态基序列;
加密单元412,用于基于本地状态基序列对密钥协商序列进行抵入噪声加密;
加密数据发送单元413,用于将加密后的数据信号发送至对端通信设备;
存活码元位置发送单元414,用于将本地总存活码元位置发送给对端通信设备;
翻转单元415,用于对本地状态基序列中的状态基进行翻转;
第一控制单元416,用于判断数据信号的发送次数是否达到预先设定的发送次数阈值,如果是,则控制总存活码元位置接收单元425从对端通信设备接收其本地总存活码元位置;否则,控制翻转单元415对本地状态基序列中的状态基进行翻转,然后控制加密单元412进行加密操作。
在本发明的实施例中,上述接收模块42可以包括:
数据信号接收单元421,用于从对端通信设备接收数据信号;
抵入噪声解密单元422,用于对接收的数据信号进行抵入噪声解密;
存活码元位置记录单元423,用于将解密后的码元序列与密钥协商序列进行比较,记录单次接收的存活码元位置;
总存活码元位置更新单元424,用于根据单次接收的存活码元位置更新本地总存活码元位置;以及
总存活码元位置接收单元425,用于从对端通信设备接收其本地总存活码元位置。
在本发明的实施例中,上述接收模块42还可以进一步包括:
第二控制单元426,用于判断数据信号的接收次数是否达到预先设定的发送次数阈值,如果是,则控制存活码元位置发送单元414将本地总存活码元位置发送给对端通信设备;否则,控制数据信号接收单元421继续从对端通信设备接收数据信号。
在本发明的实施例中,上述密钥生成模块43可以包括:
一致状态基确定单元431,用于基于对端通信设备的本地总存活码元位置与自身的本地总存活码元位置确定收发双方一致的状态基;以及
密钥生成单元432,用于基于所述收发双方一致的状态基生成密钥。
需要说明的是,上述通信设备各个模块功能的具体实现方法可以参考上述密钥协商方法实施例,在此不再重复说明。
基于上述密钥协商方法,本发明的实施例还提供了另一种通信设备。图5显示了该通信设备的内部结构。如图5所示,本发明实施例所述的通信设备包括:
一个或多个处理器501和存储器502。上述一个或多个处理器501和存储器502通过总线互联。
其中,上述一个或多个处理器501用于执行存储器存储的机器可读指令模块。在本发明的实施例中,上述一个或多个处理器执行的机器可读指令模块包括:发送模块41、接收模块42以及密钥生成模块43。其中,这些模块被处理器执行时可以完成图1-3所述的功能。
本发明的实施例还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述密钥协商方法。
下面结合图1至5的密钥协商方法和通信设备来详细阐述一个实现本发明的具体的示例。在本例中,Alice和Bob作为进行密钥协商的两个节点(网络中的通信设备),其各自的内部结构可以如图6所示,主要包括:
信号发送模块和信号接收模块,用于数据信号的发送与接收。上述信号发送模块和信号接收模块主要实现上述加密数据发送单元413、存活码元位置发送单元414、数据信号接收单元421以及总存活码元位置接收单元425的功能。
抵入噪声加密模块,用于实现本地状态基序列对密钥协商序列进行抵入噪声加密操作。上述抵入噪声加密模块主要完成上述加密单元412的功能。
抵入噪声解密模块,用于实现本地状态基序列对接收的数据信号进行抵入噪声解密操作。上述抵入噪声解密模块主要完成上述抵入噪声解密单元422的功能。
状态基序列控制模块,用于(1)在协商开始时随机选择状态基产生本地状态基序列;以及(2)在协商过程中对本地状态基序列进行翻转操作。上述状态基序列控制模块主要完成上述本地状态基序列生成单元411以及翻转单元413的功能。
码元存活率测量模块,用于测量同基接收码元存活率和异基接收码元存活率。
收发次数控制模块,用于(1)用于根据码元存活率测量模块测量得到的同基接收码元存活率和异基接收码元存活率计算系统收发次数;(2)对当前收发次数进行检测判断。上述收发次数控制模块主要完成第一控制单元416和第二控制单元426的功能。
存活码元处理模块,用于将解密后的码元序列与密钥协商序列进行比较,记录存活码元位置结果;并将存活码元位置结果更新至总存活码元位置记录寄存器。上述存活码元处理模块主要完成上述存活码元位置记录单元423以及总存活码元位置更新单元424的功能。
密钥生成模块,用于根据本地总存活码元位置记录结果与对端总存活码元位置记录结果交换出一致的状态基,并基于一致的状态基生成一致的密钥。上述密钥生成模块主要完成上述一致状态基确定单元431和密钥生成单元432的功能。
Alice和Bob进行密钥协商的过程详细说明如下,其中,Alice和Bob采用全0序列作为密钥协商序列。
步骤一:节点Alice和Bob通过相互传输一定数量的测量专用数据,通过各自的码元存活率测量模块测量系统的同基接收码元存活率和异基接收码元存活率,并计算出达到一致性指标所需要的收发次数N。
步骤二:节点Alice通过状态基序列控制模块产生状态基序列A,通过抵入噪声加密模块使用状态基序列A对全0码元序列进行抵入噪声加密,然后将加密后的信号通过信号发送模块发送给节点Bob。同理,节点Bob通过状态基序列控制模块产生状态基序列B,通过抵入噪声加密模块使用状态基序列B对全0码元序列进行抵入噪声加密,然后将加密后的信号通过信号发送模块发送给节点Alice。
步骤三:节点Alice通过信号接收模块接收节点Bob发送的信号,并通过抵入噪声解密模块使用状态基序列A对上述接收信号进行解密,获得解密后的码元序列。同理,节点Bob通过信号接收模块接收节点Alice发送的信号,并通过抵入噪声解密模块使用状态基序列B对上述接收信号进行解密,获得解密后的码元序列。
步骤四:节点Alice通过存活码元处理模块将解密后的码元序列与原全0码元序列进行比较,记录存活码元位置结果,并更新本地总存活码元位置记录寄存器。同理,节点Bob通过存活码元处理模块将解密后的码元序列与原全0码元序列进行比较,记录存活码元位置结果,并更新本地总存活码元位置记录寄存器。
步骤五:节点Alice的收发次数控制模块将收发次数计数器加1,并判断收发次数是否达到N;若收发次数未达到N,则状态基序列控制模块将本地状态机序列A翻转,并重复执行步骤二至步骤五,直到收发次数达到N;若收发次数达到N,则进入步骤六。同理,节点Bob的收发次数控制模块将收发次数计数器加1,并判断收发次数是否达到N;若收发次数未达到N,则状态基序列控制模块将本地状态机序列A翻转,并重复执行步骤二至步骤五,直到收发次数达到N;若收发次数达到N,则进入步骤六。
步骤六:节点Alice将本地总存活码元位置记录结果通过信号发送模块发送给节点Bob。节点Bob将本地总存活码元位置记录结果通过信号发送模块发送给节点Alice。
步骤七:节点Alice通过信号接收模块接收节点Bob的总存活码元位置记录结果,并通过密钥生成模块从节点Bob的总存活码元位置记录结果和本地总存活码元位置记录结果中交换出一致的状态基,并基于上述一致的状态基生成一致的密钥。同理,节点Bob通过信号接收模块接收节点Alice的总存活码元位置记录结果,并通过密钥生成模块从节点Alice的总存活码元位置记录结果和本地总存活码元位置记录结果中交换出一致的状态基,并基于上述一致的状态基生成一致的密钥。
接下来,节点Alice和Bob还可以进一步通过密钥纠错方法对生成的密钥进行纠错。
本发明实施例提出的通信设备以及计算机可读存储介质可以通过使用抵入噪声加密和解密,充分利用物理噪声的特性对信号进行掩藏,同时通过控制本地状态基序列上状态基的翻转保证同基接收码元存活率大于异基接收码元存活率,从而确保最后存活的码元绝大部分为同基接收的码元,并最终基于通信两方一致的状态基生成一致性的密钥。总体来讲,一方面,相比传统密钥分发系统,本发明实施例所提出的密钥协商方法充分利用了物理噪声的随机特性,保密程度高,攻击方难以截获有用信息。另一方面,相比现有的量子密钥分发技术,本发明实施例所提出的密钥协商方法能够与现有通信系统兼容,无需对系统以及线路进行改造,节省技术成本。
下面对同基接收和异基接收码元存活率存在差异的特性进行简要说明。图7显示了本发明实施例所述的抵入噪声加密示意图。如图7所示,本领域的技术人员可以理解,对于相邻的状态基A和状态基B,其信号电平被噪声掩藏后无法被有效分辨。通常,假设在协商双方状态基相同时(同为状态基A或状态基B时),接收码元存活概率为Pc。而在协商双方状态基不同时,接收码元存活概率会发生改变,原因是状态基A和状态基B的判决门限电平值存在差异;状态基不同分为两种情况:一是本地使用状态基A发送,对端使用状态基B接收,此时,接收码元存活率为Pc-P2;二是本地使用状态基B发送,对端使用状态基A接收,此时接收码元存活率为Pc+P1。由于高斯噪声概率分布服从正态分布,可以得出P2>P1。从上述分析可以看到,当本地使用状态基B发送而对端使用状态基A接收时接收码元存活率为Pc+P1,大于同基时的码元存活概率为Pc。为了保证同基时的码元存活概率大于异基时的码元存活概率,则可以引入状态基翻转操作;即每次收发结束,协商双方均对本地状态基序列进行翻转(状态基A翻转变为状态基B,状态基B翻转变为状态基A),然后进行下一次收发。此时,以相邻两次收发为整体观察可以得到,同基时码元存活概率为Pc2,异基时码元存活概率为(Pc+P1)(Pc-P2),由于P2>P1,所以可以保证两次传输后同基时的码元存活概率大于异基时的码元存活概率。进一步,随着收发次数的增加,整个总过程的同基码元存活概率与异基码元存活概率差异会越来越大,也即存活码元中同基码元的比例越来越高,即存活码元对应的状态基的一致性越来越高。本发明就是利用了上述研究结果,确保N次传输后最后存活的码元绝大部分为同基接收的码元,并最终基于通信两方一致的状态基生成一致性的密钥。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。