1.从大气湍流光信号衰落中提取共享随机比特的方法,其特征在于,所需的硬件系统和执行步骤如下:
需要激光收发端机A和激光收发端机B,激光收发端机A和激光收发端机B相互通视;激光收发端机A包括激光器A、收发光学系统A、探测器A和计算机A;激光收发端机B包括激光器B、收发光学系统B、探测器B和计算机B;激光器A发出的激光信号A001经收发光学系统A发射到大气湍流信道中,激光信号A001到达收发光学系统B后再入射到探测器B上;激光器B发出的激光信号B001经收发光学系统B发射到大气湍流信道中,激光信号B001到达收发光学系统A后再入射到探测器A上;计算机A实时采集探测器A输出的电信号,计算机B实时采集探测器B输出的电信号;
1)本方法的第一部分使激光收发端机A和激光收发端机B正常工作,具体操作包括:
使激光器A和激光器B正常工作,使探测器A和探测器B正常工作,使计算机A和计算机B正常工作,使收发光学系统A和收发光学系统B相互对准并正常工作;
2)本方法的第二部分在激光收发端机A中执行以下操作:
步骤Step201:在计算机A的采集程序中创建一个计数器CounterA,令CounterA=1;令时刻tA=0;在计算机A的存储器中创建一个包含Num个元素的一维数组ArrayA,数组ArrayA的元素用于存储探测器A输出的电信号的幅度采样值;在计算机A的存储器中创建一个包含Num-1个元素的一维数组ArrayAD,数组ArrayAD的元素用于存储探测器A输出的电信号的幅度采样的导数值;在计算机A的存储器中创建一个列表ListA,列表ListA的元素用于存储随机比特,令列表ListA为空;在计算机A的存储器中创建一个列表ListAD,列表ListAD的元素用于存储随机比特,令列表ListAD为空;令IA=1;令IAD=1;
步骤Step202:在时刻tA,计算机A的采集程序对探测器A输出的电信号幅度做一次采样,获得一个采样值C001;把数组ArrayA的第CounterA个元素赋值为采样值C001;
步骤Step203:令CounterA=CounterA+1;令tA=tA+δt,δt为采样时间间隔;
步骤Step204:如果CounterA>Num,则转步骤Step205,否则转步骤Step202;
步骤Step205:计算数组ArrayA中的所有元素的平均值C002;令TA等于系数ct与平均值C002的乘积,系数ct为一个正实数,用于对平均值C002进行缩放;
步骤Step206:从数组ArrayA的第1个元素开始,依次针对数组ArrayA的每个元素C003做如下操作:在列表ListA的末尾添加一个新元素EA,新元素EA是列表ListA的第IA个元素;判断元素C003的值是否大于TA,如果是,则把列表ListA的第IA个元素赋值为比特1,否则把列表ListA的第IA个元素赋值为比特0;令IA=IA+1;
步骤Step207:分别依次针对J=1,2,…,Num-1,把数组ArrayAD的第J个元素赋值为数组ArrayA的第J+1个元素的值与数组ArrayA的第J个元素的值之差除以δt的结果;
步骤Step208:计算数组ArrayAD中的所有元素的平均值C004;令TAD等于系数ctD与平均值C004的乘积,系数ctD为一个正实数,用于对平均值C004进行缩放;
步骤Step209:从数组ArrayAD的第1个元素开始,依次针对数组ArrayAD的每个元素C005做如下操作:在列表ListAD的末尾添加一个新元素EAD,新元素EAD是列表ListAD的第IAD个元素;判断元素C005的值是否大于TAD,如果是,则把列表ListAD的第IAD个元素赋值为比特1,否则把列表ListAD的第IAD个元素赋值为比特0;令IAD=IAD+1;
步骤Step210:激光收发端机A完成原始共享随机比特序列提取操作;
3)本方法的第三部分在激光收发端机B中执行以下操作:
步骤Step301:在计算机B的采集程序中创建一个计数器CounterB,令CounterB=1;令时刻tB=0;在计算机B的存储器中创建一个包含Num个元素的一维数组ArrayB,数组ArrayB的元素用于存储探测器B输出的电信号的幅度采样值;在计算机B的存储器中创建一个包含Num-1个元素的一维数组ArrayBD,数组ArrayBD的元素用于存储探测器B输出的电信号的幅度采样的导数值;在计算机B的存储器中创建一个列表ListB,列表ListB的元素用于存储随机比特,令列表ListB为空;在计算机B的存储器中创建一个列表ListBD,列表ListBD的元素用于存储随机比特,令列表ListBD为空;令IB=1;令IBD=1;
步骤Step302:在时刻tB,计算机B的采集程序对探测器B输出的电信号幅度做一次采样,获得一个采样值D001;把数组ArrayB的第CounterB个元素赋值为采样值D001;
步骤Step303:令CounterB=CounterB+1;令tB=tB+δt,δt为采样时间间隔;
步骤Step304:如果CounterB>Num,则转步骤Step305,否则转步骤Step302;
步骤Step305:计算数组ArrayB中的所有元素的平均值D002;令TB等于系数ct与平均值D002的乘积,系数ct为一个正实数,用于对平均值D002进行缩放;
步骤Step306:从数组ArrayB的第1个元素开始,依次针对数组ArrayB的每个元素D003做如下操作:在列表ListB的末尾添加一个新元素EB,新元素EB是列表ListB的第IB个元素;判断元素D003的值是否大于TB,如果是,则把列表ListB的第IB个元素赋值为比特1,否则把列表ListB的第IB个元素赋值为比特0;令IB=IB+1;
步骤Step307:分别依次针对J=1,2,…,Num-1,把数组ArrayBD的第J个元素赋值为数组ArrayB的第J+1个元素的值与数组ArrayB的第J个元素的值之差除以δt的结果;
步骤Step308:计算数组ArrayBD中的所有元素的平均值D004;令TBD等于系数ctD与平均值D004的乘积,系数ctD为一个正实数,用于对平均值D004进行缩放;
步骤Step309:从数组ArrayBD的第1个元素开始,依次针对数组ArrayBD的每个元素D005做如下操作:在列表ListBD的末尾添加一个新元素EBD,新元素EBD是列表ListBD的第IBD个元素;判断元素D005的值是否大于TBD,如果是,则把列表ListBD的第IBD个元素赋值为比特1,否则把列表ListBD的第IBD个元素赋值为比特0;令IBD=IBD+1;
步骤Step310:激光收发端机B完成原始共享随机比特序列提取操作;
4)本方法的第四部分对激光收发端机A和激光收发端机B提取的原始共享随机比特序列中的不一致比特进行纠错,具体步骤如下:步骤Step401:在计算机A中,把列表ListA中的随机比特序列和列表ListAD中的随机比特序列拼接在一起,即把列表ListAD中的随机比特序列添加到列表ListA中的随机比特序列之后,使二者成为一个随机比特序列并保存在列表ListA中;在计算机B中,把列表ListB中的随机比特序列和列表ListBD中的随机比特序列拼接在一起,即把列表ListBD中的随机比特序列添加到列表ListB中的随机比特序列之后,使二者成为一个随机比特序列并保存在列表ListB中;
步骤Step402:利用量子密钥分配后处理中的误码估计、密钥协商、错误校验技术找出并纠正列表ListA和列表ListB中存储的原始共享随机比特序列中的不一致比特,使列表ListA和列表ListB中的随机比特序列一致;
在实施本方法时,先执行本方法的第一部分,接着同时开始执行本方法的第二部分和第三部分,最后执行本方法的第四部分。