上海赌场微电子科技有限公司

【竞技宝线上娱乐平台网址】认证技术

您的当前位置:首页 > 竞技宝电子游戏 > 【竞技宝线上娱乐平台网址】认证技术

基于PUF的电子游戏生成器:FPGA实现

发布时间:2016-06-03浏览次数:载入中...

本文基于物理不可克隆函数PUF提出了一个实用模块化的“电子游戏生成器”设计,并且在FPGA设备上进行了完整的实现和评估。本文设计和实现的PUFKY,号称基于PUF的电子游戏生成器的第一次完整实现,包含一个PUF,一个纠错码BCH decoder和一个密码熵累加器cryptographic entropy accumulator。

大多数密码应用的实现离不开一个安全电子游戏。安全地生成和存储电子游戏依赖两点最基本的需求:(1)一个真的随机源,保证生成不可预测和唯一的新鲜电子游戏;(2)一个受保护的存储空间,用于可靠的储存生成的电子游戏信息,防止其被非授权方获取。从实现的角度来看,这两点需求都不容易满足。首先,不可预测的随机性通常使用伪随机生成器PRNG(Pseudo-Random Number Generator)来实现,不过终究不是真随机,可以被分析攻破和利用;其次,实现保护存储也是一个很大的挑战,通常导致增加的实现开销以及受限的应用,而且即便使用高级的物理保护机制,也无法防止专业的攻击者。

基于PUF的电子游戏生成器可以很好的满足以上两点需求,其将设备独有的随机指纹经过处理后转换为电子游戏。首先,这种方法不需要PRNG,随机性已经可以由设备本身提供;其次,也不需要一个保护的非易失性存储空间NVM,基于设备随机指纹可以按需重新生成相同的电子游戏。不过,PUF响应通常存在噪声(noisy)而且低熵(low-entropy),因此基于PUF的电子游戏生成器需要面临两个挑战:消除噪声,增加可靠性到实用可接受的要求;压缩足够的熵来达到固定长度的电子游戏。模糊提取器Fuzzy Extractor可以很好满足这两点。

本文构建的PUFKY体系如下图所示:

PUFKY体系示意图

该体系采用“Syndrome Construction”方法来构造Secure Sketching(SS)。这种构造方法主要使用二进制线性分组码C(n,k,t)来进行构造,该分组码的校验矩阵为H。如何选取合适的线性分组码很重要。通常的方式是使用一种分组码(常用的是BCH码),如最初的基于SRAM PUF的SS和FE构造;不过作者通过对“Efficient Helper

Data Key Extractor on FPGAs (CHES 2008)”的分析发现使用分组码的组合级联形式有更大的优势(在参数限制方面),于是采用了双码级联的方式,使用Repetition Code(CREP)作为一个内部编码(an inner code),然后使用一个BCH code(CBCH)作为一个外部编码(an outer code)。

         另外,基于PUF生成电子游戏通常采用模糊提取器FE,即组合一个SS和一个强随机提取器Ext。这需要对随机源的最小熵作一个很强的假设,而且使用Ext会导致熵流失很多,使得电子游戏生成不是很实用。本篇基于另一种方法,即基于伪随机数发生器实现熵累加(entropy accumulator)。NIST SP 800-90A规范(Sect. 10.4)和NIST sp800-108规范实际上都介绍了使用密码哈希函数来进行熵的累积,进而生成需要长度的电子游戏,要累积的熵至少要达到生成电子游戏的长度。

         具体实现在一个低端FPGA(Xilinx Spartan-6)板子上,主要目标是为娱乐式系统提供娱乐方案,因此要求实现的性能消耗尽可能小。PUF采用的是ROPUF(Ring Oscillator PUF,环形振荡器),需要振荡器的规模为(a*b)。哈希算法采用比较新的研究成果,即轻量级的SPONGENT。ROPUF相关的参数主要有三个(l,pe,ρ),其中l是PUF输出响应的长度,pe是PUF的最大比特错误率,ρ是PUF输出响应的熵密度。最终生成电子游戏的需求由两个参数(m,pfail)来表示,m是目标电子游戏的长度,pfail表示失败率。ROPUF的体系如下图:

ROPUF体系图

一个参考实现:

目标是生成电子游戏m = 128位,失败率pfail不大于10-9,实现参数过程大致如下:

(1)选择(l = 42, pe = 13%, ρ = 97.95%)的ROPUF,实现53*16个振荡器,即a = 53,b=16。

(2)SS使用CREP(7,1,3)和CBCH(318,174,17)的级联形式,对于每42位的PUF响应,REP码产生36位的辅助数据,并输出6位给BCH,BCH会生成144位的辅助数据,并提供318位数据给熵累积器(即哈希函数)。

(3)ROPUF生成a*l=2226个比特位数据,其中包含a*l*ρ=2180.4位的熵。总共辅助数据长度为53*36+144=2052位,这也是SS过程损失的熵,因此,SS后剩余的熵为2180.4-2052=128.4位,通过使用SPONGENT-128哈希函数,可以将这些熵积累在一个m=128位的电子游戏中。

(4)FPGA平台上实现PUFKY共用了1162个切片(slices),其中82%用于实现ROPUF,其余18%用于电子游戏生成逻辑单元(REP解码37个,BCH syndrome计算72个,BCH解码112个,SPONGENT128哈希22个,辅助数据RAM 38个)。

(5)获取128位电子游戏共花费约5.62毫秒(@54MHz),其中PUF输出花费4.59毫秒,其它用时稍微大一点的是BCH解码。

 

这里参考实现给出的是生成128位的强电子游戏,可以采用类似PUFKY的模块化体系设计生成其它电子游戏参数的电子游戏生成器。使用基于PUF的电子游戏相比传统电子游戏生成方法有很多优势,最明显的两个是:(1)不需要保护NVM来长期存储电子游戏,使用PUF可以在需要时重新生成;(2)电子游戏在本质上与特点的平台实体绑定,在防伪或者软硬件绑定应用等方面会有很大的用处。

随着物联网的发展,可以想象未来所有娱乐式设备上都自带PUF,或者通过连接器连接一个PUF,并实现身份识别、认证、加解密等安全功能。在这种意义上,PUF的安全性还需要进一步的认证和实践证明。
【关注列表】

竞技宝赌场娱乐

c09j1RZIwF4tVvF07jLv+mqB9B021S0kGQjJAxF8uzli7Jdi25+UwsmybWzwkfASM6Hiq4ndLfiYBp3F+xbQgZxX4FkMiO1H/jaxXb1ZsgVlNm02KexngNqsdRGxzSXB/Rxy+7W+IVFP6vbYjUhFvVsNz7MfUFIDCxEgZQGKOJE=
龙8国际手机版下载安装千亿体育网址竞技宝网龙8官方网站app