一种基于区块链技术的PUFs群对群认证方案的制作方法

文档序号:18884812发布日期:2019-10-15 20:43阅读:384来源:国知局
一种基于区块链技术的PUFs群对群认证方案的制作方法

本发明涉及一种基于区块链技术的pufs群对群认证方案,属于信息安全技术领域。



背景技术:

物理不可克隆函数(physicalunclonablefunctions,pufs)作为一种新兴的信息安全机制,具有低成本、高安全的特点,正在成为主流的信息安全产业的支撑。pufs的本质是一种“芯片指纹”,该“指纹”来源于难以控制、无法预测、不可克隆的芯片制造差异,能够抵御针对nvm的物理攻击。当pufs不工作时,设备上不会产生相应的密钥、id等数据,即设备上并不存储相关的机密数据,所以可以一定程度上抵御来自互联网上的数据窃取等攻击。pufs一般被分为“强pufs”(strongpufs)与“弱pufs”(weakpufs)两类:“强pufs”有指数级的激励响应对(challengeresponsepairs,crps),主要用于安全认证;“弱pufs”的响应输出数量与电路规模呈正比,主要用于密钥、id等关键信息存储。

目前基于pufs的认证主要有两种方法:一种方法是直接使用基于加密算法的认证协议,其中用到的密钥由pufs生成;另一种方法是直接使用pufs和特定于pufs的认证协议。第一种方法涉及weakpufs,第二种方法主要涉及strongpufs。

weakpufs提供了一种轻量级互补的金属氧化物半导体(cmos)兼容方式来安全地存储加密密钥,而不需要存储在昂贵的安全片上nvm。weakpufs存储的密钥可以与现有的基于加密算法的认证协议一起使用,从而提高整个认证协议的安全性,缺点是要实现各种加密算法需要消耗大量的硬件资源。

strongpufs可以实现非常轻量级的身份验证,而不需要加密算法或昂贵的nvm,从而将硬件和软件开销以及成本降至最低。但是目前strongpufs并不能提供高水平的安全性,因为已有的设计已经被证明容易受到机器学习攻击。这些攻击在crp行为上创建了一个软件克隆,与原始puf的克隆没有太大的区别,这种克隆方式的存在打破了strongpufs的安全性。但是,即使在可以使用机器学习克隆strongpufs的地方,克隆过程仍然意味着攻击者要付出很大的努力,这取决于使用的strongpufs和与strongpufs一起使用的认证协议。

这两种基于pufs的认证协议,无论是基于weakpufs的认证协议,还是基于strongpufs的认证协议,都存在一个明显的问题,那就是一旦pufs电路损坏,那么该设备的所有认证过程均会失败。另外,对于基于strongpufs的认证协议,需要可信任的第三方服务器存储pufs的大量激励响应对(crps),一旦服务器被攻破,所有认证数据均会泄露,最终导致认证过程的失败。

为解决这两个问题,同时受新兴区块链技术日益普及的推动,我们把目光投向了区块链技术。区块链可以看成是一个去中心化的分布式账本,该账本由一串使用密码学方法产生的数据区块有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信息。这些记录信息在区块链中被称为交易,任何参与者均可以创建一个交易。这些交易一旦被确认有效并添加到区块链中,则被永久的记录、无法篡改,这使得区块链具备不可变性和不可逆性。每个交易都由参与者通过预定义的验证和协商一致的机制进行验证,而无需任何中央权威机构的确认或认证。这不仅降低了成本,而且消除了由于单个故障点而导致的信息丢失的可能性,因为账本的副本在所有参与者之间都是同步的。因此,区块链除了具有不可变性、有效性、分散性和透明性的显著特性之外,还能为所有节点在所有时间点提供隐私保护和安全性保障。区块链所具备的这些性质,使其除了在数字货币之外,在其他领域也得到了广泛的应用。



技术实现要素:

为解决原始单一pufs认证过程中,中心服务器所面临的各种弊端;解决单一pufs损坏,导致认证失败的问题,本发明提供一种基于区块链技术的pufs群对群认证方案。在选定的基于区块链技术的分布式存储应用场景下,利用区块链技术的去中心化特点,解决基于strongpufs的认证协议中第三方中心服务器所面临的问题;旨在在区块链技术建立的信任担保下,进一步发展和完善基于strongpufs的认证协议,从而解决传统应用中单一puf损坏导致认证失败的问题。

本发明为解决上述技术问题采用以下技术方案:

本发明提供一种基于区块链技术的pufs群对群认证方案,利用区块链记录每个数据碎片shard的分存路径、公告板记录每个节点ip地址和通信接口;

数据分存的过程为:

步骤1,用户将要分存的数据file进行加密,得到相应的密文c;

步骤2,将密文c分成n个大小相等的数据碎片shard,数据碎片的个数n由用户自行定义;

步骤3,从公告板中随机选择n个存储节点,用于存储数据碎片和相应的认证数据;

所述认证数据指在区块链系统建立的信任担保下,将基于strongpufs的认证协议应用到选定的场景下,具体步骤是:首先为每个数据碎片构造一段独一无二的身份证明,该身份证明即为在区块链网络中将被视为节点的群组中每个pufs对应的一组激励响应crp,使用对称密钥对所有的响应进行加密;然后使用对应存储节点的公钥将对应数据碎片的身份证明进行加密,并发送给该存储节点;

步骤4,创建分存交易,表示节点确实将数据碎片分存到选定的n个存储节点;

数据的取回过程为:

步骤一,节点向对应的存储节点发送数据取回信号,存储节点将所有激励发送给节点;

步骤二,节点将接收到的激励输入群组中对应的pufs电路,将得到的对应的响应以及之前使用的对称密钥进行加密(使用对应存储节点的公钥)后发送给存储节点;

步骤三,存储节点接收到加密数据后,使用自己的私钥进行解密,得到所有的响应;

步骤四,存储节点对每组响应计算其汉明距离,若n组crps中有k组响应的汉明距离小于或等于阈值,则认证通过,将存储的数据碎片返还给节点,同时将n组crps中汉明距离大于阈值的响应的编号发送给节点;

步骤五,节点向存储节点发送don信号,表示自己希望存储节点删除delete或者继续保留notdelete对应的数据碎片。

作为本发明的进一步技术方案,步骤二中节点将得到的对应的响应以及之前使用的对称密钥进行使用对应存储节点的公钥加密。

作为本发明的进一步技术方案,所述区块链的上部分包括数据发送方sender、数据碎片唯一标识符shardid、数据包唯一标识符dataid、数据接收方receiver、单个pufs认证阈值threshold、sender进行身份认证时的pufs数量pufnum以及sender通过receiver的身份认证所需认证成功的pufs个数的阈值successnum;

所述区块链的下部分包括数据分存部分和数据取回部分,数据分存部分包括源文件加密、密文分块、计算数据碎片哈希值shardid、计算数据包哈希值dataid以及数据包发送部分,数据包包括数据碎片、pufs的激励c明文以及对应的pufs响应r的密文,数据取回部分主要包括单个pufs的认证和整体的多个pufs认证;

若单个pufs的认证结果小于区块链上记录的阈值threshold,则该单个pufs认证成功;若整体pufnum个pufs中有大于或等于successnum个pufs认证成功,则sender通过receiver的认证,sender可从receiver处取回数据。

作为本发明的进一步技术方案,所述区块链上部分的单个pufs认证阈值threshold=4bit,即128bit中有大于或等于124bit的二进制值相同,则单个pufs认证通过。

作为本发明的进一步技术方案,所述区块链上部分的sender进行身份认证时的pufs数量pufnum=6。

作为本发明的进一步技术方案,所述区块链上部分的sender通过receiver的身份认证所需认证成功的pufs阈值successnum=4,即6个pufs中有大于或等于4个pufs认证通过,则sender通过receiver的认证,可从receiver处取回数据。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、利用区块链技术作为信任的创建机器,即使用区块链技术实时地、真实地、不可删除地、不可篡改地记录每个数据碎片的分存路径;

2、本发明所提出的基于区块链技术的pufs群对群认证方案,利用区块链去中心化、点对点的特征,消除了原始pufs认证过程中中心服务器的存在,进而消除中心服务器遭受攻击导致认证数据泄露,认证失败的情况发生;

3、本发明所提出的基于区块链技术的pufs群对群认证方案,利用区块链去中心化、点对点的特征,可以检测、替换出现损坏情况的pufs,这在原始的pufs认证过程中是从未被考虑过的问题。

附图说明

图1是原始pufs认证的注册过程示意图。

图2是原始pufs认证的认证过程示意图。

图3是本发明一种基于区块链技术的pufs群对群认证方案的系统模型示意图。

图4是本发明一种基于区块链技术的pufs群对群认证方案的分存数据示意图。

图5是本发明一种基于区块链技术的pufs群对群认证方案的取回数据示意图。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

本发明提出的基于区块链技术的pufs群对群认证方案在ubuntu16.04虚拟机上实现,所搭建的区块链平台为hyperledgerfabric1.0,具体的部署环境为:docker18.09.0,docker-compose1.23.1,go1.9.0。另外,本发明中的pufs在xilinxvirtix-5fpga开发板上进行实现,并从中提取pufs所产生的响应(response,r)。

原始的pufs认证过程包括两个步骤,如图1所示的注册过程和如图2所示的认证过程。注册过程是在安全环境下将pufs的大量激励响应对(crps)存储在第三方中心服务器上;认证过程是设备首先向服务器发送自己的设备号,服务器根据设备号从数据库中提取出事先存储的该设备对应的crps;随后服务器从中随机选取一组crp,并将激励c发从给设备;设备根据接收到的激励c,从自己的pufs电路中生成对应的响应r’,并将其发送给服务器;服务器计算r’和自己存储的原始激励r之间的汉明距离,若汉明距离hd(r,r’)小于预先设置的阈值,则认证通过,并将此次使用的crp从数据库中删除。基于strongpufs的认证协议的安全性基于strongpufs的指数级激励响应对,且整个过程中无需用户记忆任何的认证数据,所有机密性数据均由pufs生成。但是这种安全性的前提是pufs电路的安全可靠,可长期运行,且存储strongpufs的crps的服务器也同样是安全可靠的。但是在实际应用中,这种假设前提一般是难以实现的。一旦pufs电路损坏,那么该设备的所有认证过程均会失败。同样的,一旦服务器出现问题或者被攻击者攻破,所有认证数据均会泄露,最终导致认证过程的失败。

针对以上问题,图3到图5为本发明提出的解决方案,即一种基于区块链技术的pufs群对群认证方案。如图3所示,系统模型中每个节点代表多台电脑、多部手机的集合,每个集合中的设备上都部署了pufs电路;公告板用于记录每个节点ip地址和通信接口;区块链用于记录数据的分存路径。

区块链上部分主要包括使用区块链记录每个数据碎片(shard)的转存路径,具体包含如下参数:数据发送方(sender)、数据碎片唯一标识符(shardid)、数据包唯一标识符(dataid)、数据接收方(receiver)、单个pufs认证阈值(threshold)、sender进行身份认证时的pufs数量(pufnum)以及sender通过receiver的身份认证所需认证成功的pufs阈值(successnum)。

区块链下部分包括:数据分存部分,数据取回部分。数据分存部分包括源文件加密、密文分块、计算数据碎片哈希值(shardid)、计算数据包哈希值(dataid)以及数据包发送部分;其中数据包包括数据碎片,pufs的激励(challenge,c)明文以及对应的pufs响应(response,r)的密文。数据取回部分主要包括单个pufs的认证,整体的多个pufs认证。若单个pufs的认证结果小于区块链上记录的阈值(threshold),则该单个pufs认证成功;若整体pufnum个pufs中有大于或等于successnum个pufs认证成功,则sender通过receiver的认证,sender可从receiver处取回数据。

其中,所述的单个pufs为128bit的二进制值;所述区块链上部分的单个pufs认证阈值取4(threshold=4bit),即128bit中有大于或等于124bit的二进制值相同,则单个pufs认证通过;所述区块链上部分的sender进行身份认证时的pufs数量取6(pufnum=6个);所述区块链上部分的sender通过receiver的身份认证所需认证成功的pufs阈值取4(successnum=4个),即6个pufs中有大于或等于4个pufs认证通过,则sender通过receiver的认证,可从receiver处取回数据。

如图4所示是数据的分存过程:第一步,用户将要分存的数据(file)进行加密,得到相应的密文(c);第二步,将密文c分成若干大小相等的小块(即数据碎片,shard),数据碎片的个数由用户自行定义(比如n);第三步,从公告板中随机选择n个存储节点,用于存储数据碎片和相应的认证数据。此处的认证数据是本发明的核心,即在区块链系统建立的信任担保下,将基于strongpufs的认证协议应用到选定的场景下。具体步骤是,首先为每个数据碎片构造一段独一无二的身份证明,该证明即为群组a(在区块链网络中将每个群组视为一个节点)中每个pufs对应的一组crp(每个crp只使用一次)。为防止存储节点相互勾结行为,使用对称密钥对所有的响应进行加密。然后使用对应存储节点的公钥将对应数据碎片的身份证明进行加密,并发送给该存储节点,这样只有该存储节点使用自己的私钥才能对数据进行解密,获得数据碎片的身份证明。此过程类似于pufs认证协议中的注册过程,本发明在区块链技术建立的信任担保下,使用对应存储节点的公钥加密相应的crps,从而保证数据的安全性。由于基于区块链的应用场景的去中心化的特点,本发明提出的方案消除了pufs认证协议中需要一次性存储大量crps到中心服务器的过程;第四步,创建分存交易,表示节点a确实将数据碎片分存到选定的n个存储节点。一旦交易被确认并被添加到区块链中,则不可篡改、不可删除、对系统内所有节点公开。这也就意味着,一旦n个被选定的存储节点确认交易后,在节点a想要取回数据时,不可“赖账”,即不可否认节点a想要取回的数据碎片并不存在与自己的节点上。这种不可“赖账”的机制意味着被选定的存储节点对于所存储的数据碎片负有不可推卸的责任,私自删除、拒绝返还所存储的数据碎片等行为均会被系统其它节点检测到,从而受到应有的惩罚。

如图5所示是数据的取回过程,数据的取回过程和基于strongpufs的认证协议中的认证过程类似:第一步,节点a向对应的存储节点发送数据取回信号,存储节点将所有激励发送给节点a;第二步,节点a将接收到的激励输入群组中对应的pufs电路,将得到的对应的响应以及之前使用的对称密钥进行加密(使用对应存储节点的公钥)后发送给存储节点;第三步,存储节点接收到加密数据后,使用自己的私钥进行解密,得到所有的激励;第四步,存储节点对每个响应计算其汉明距离,若n组crps中有k组响应的汉明距离小于阈值,则认证通过,将存储的数据碎片返还给节点a。与此同时,将n组crps中汉明距离大于阈值的响应的编号发送给节点a,以便节点a分析群组中不稳定或者损坏的pufs,对其进行处理或者更换新的pufs。第五步,节点a向存储节点发送don信号,表示自己希望存储节点删除(delete)或者继续保留(notdelete)对应的数据碎片。

本发明利用区块链技术作为信任的创建机器,即使用区块链技术实时地、真实地、不可删除地、不可篡改地记录每个数据碎片的转存路径;利用区块链去中心化、点对点的特征,消除了原始pufs认证过程中中心服务器的存在,进而消除中心服务器遭受攻击导致认证数据泄露,认证失败的情况发生;利用区块链去中心化、点对点的特征,可以检测、替换出现损坏情况的pufs,这在原始的pufs认证过程中是从未被考虑过的问题。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1