论文部分内容阅读
随着半导体行业的不断发展,电子产品已经广泛应用于人们的日常生活当中。这些电子产品是由印刷电路板(PCB)、集成电路(IC)和内存等组成,其中PCB是绝大多数电子产品的基础和核心组件。由于PCB形状、尺寸及材料的灵活性,使得PCB能够在各种场景中发挥作用,其使用几乎涵盖了每个行业。然而在全球化的趋势下,PCB与IC的设计、制造与测试相互分离,导致假冒电子产品越来越多,PCB的非法复制和过度生产等问题越来越严重。这些假冒PCB不仅造成大量的经济损失,同时其质量很差,容易导致早期故障、性能下降和其他的潜在危害。更严重时,假冒的PCB中往往带有恶意插入的硬件木马,会导致敏感信息的丢失,当这些PCB被应用于国防设备中,可能对国家的安全造成巨大的威胁。因此,如何有效的保护PCB的安全性是一个亟待解决的问题。目前现有的PCB认证方案可分为使用内部和外部签名来认证。内部签名主要通过测量痕迹的阻抗、测量路径延迟、测量电容的变化以及测量表面图案的变化等方法来产生。这些方法利用PCB制造过程中产生的工艺偏差来得到PCB的签名。在注册阶段,将这些签名存储在数据库中,在认证阶段,将PCB产生的签名与存储在数据库中的签名进行对比,以此来验证PCB的真实性。然而,这些方法大多需要使用自动化测试夹具和探针等专用仪器,实施困难,且不易自动化,实用性不强。物理不可克隆函数(PUF)作为一种安全原语,在多种认证方案中得到了广泛的应用。PUF利用结构和设计参数完全相同的单元电路之间存在的微小工艺偏差,通过输入相同的激励生成一组独特的输出响应,称为激励-响应对(CRPs),这些响应具有唯一性、随机性和不可克隆性,可以作为芯片及PCB的独一无二的签名。基于PUF的认证方案中,在注册阶段,将PUF产生的CRPs连同嵌入PUF的物理系统的身份信息一起被存储在数据库中;在认证阶段,验证者从数据库中选择一个CRP,供给当前的系统来激励不可克隆函数,将得到的响应与数据库中存储的响应进行对比。若该响应足够接近存储的数据,则认证成功。现有的PUF生成方案可以分为存储型PUF和延迟型PUF。存储型PUF由对称的电路结构构成,利用设计单元参数的不匹配现象,通过观察存储单元的稳定状态得到随机且唯一的响应。延迟型PUF通常由信号在对称路径上的传输延迟来产生输出响应。这些PUF都利用芯片内部的变化产生,能够提供较高的安全性,但相应的需要更高的成本。同时基于PUF的认证设计大多都是针对芯片的认证,只能证明单个芯片的真实性,而无法认证整个PCB。针对PCB的仿冒问题,结合PUF响应的优点,本文提出一种利用电路板上的电阻阻值差异实现的PCB上的PUF设计方案。电阻是PCB上最常见的器件之一,具有成本低廉、应用广泛、可靠性和稳定性高的特点。在生产制造的过程中,由于不可避免的制造工艺偏差,同样标称值的电阻器的阻值存在一定程度的偏差,可以用来生成PUF响应。该方案中,利用分压法测量电阻的阻值,利用一个参考电阻和一个待测电阻串联,测量两电阻中间固定位置的电压作为输出值来生成PUF响应。每个结构单元中用两个参考电阻和两个待测电阻,将两个待测电阻上的分压分别输入电压比较器的正负输入端,利用电压比较器将模拟电压信号转换为数字信号0或1,从而得到1位的PUF响应。此方案中使用的电阻阻值不是必须固定的,只需保证参考电阻与待测电阻阻值相同即可实现。例如,要生成32比特的PUF响应,可以选择32个100Ω的电阻和2个100Ω的参考电阻得到16比特PUF响应,而其余比特的PUF响应可以使用200Ω或其他阻值的电阻实现。这些电阻可以复用,在认证模式下作为PUF生成电路产生响应,在正常使用时实现其他功能。同理电压比较器也可以复用。因此对于整体设计来说,该方案产生的面积开销很小。通过电路仿真及实验测量,选择LM393型号的电压比较器,利用阻值为100Ω、200Ω和1kΩ的电阻进行试验,设计4x16的PUF电路,利用Aultim Designer软件设计相应的印刷电路板,得到PUF生成电路的硬件实物。利用Altera公司的Cyclone-4 FPGA开发板实现PUF响应的自动化提取。设计信息提取电路,利用排针和杜邦线将设计得到的PCB板与FPGA相连接,通过UART串口将PUF响应传送到PC端,并对100组64-bit的PUF响应进行收集和测试。信息提取电路在每个待测电阻下接一个NMOS晶体管,通过行列的移位寄存器控制NMOS管的通断,从而实现对每个待测电阻的扫描,每次扫描得到一位PUF响应。对于生成的PUF响应,通常通过测试其独特性、唯一性、可重复性和可靠性等安全指标来判断其性能的好坏。通过测试得到的100组64-bit数据,计算出该方案生成的PUF的独特性达到49.81%,与理想值50%很接近。利用美国国家标准与技术研究院(NIST)所提供的用于测试随机性的统计软件包对得到的PUF响应进行随机性测试,有96%的PUF响应通过了该测试,证明该PUF响应具有较好的随机性。考虑该PUF电路可能工作的温度环境,对30组64-bit数据在20℃~80℃的条件下进行提取和测试,计算PUF响应的比特错误率和可靠性,测试的可靠性结果为100%。在FPGA的VCC和室温25℃的条件下对PUF进行可重复性测试,对30组64-bit的PUF响应进行重复提取,每组数据重复提取30次,测试结果为99.84%。证明该PUF在相同的激励下,具有较高的稳定性。此外,本方案中用来生成PUF响应的电阻电路直接暴露在PCB上,若直接使用该PUF响应作为PCB的签名,则很容易被他人窃取,电阻也很容易被毁坏或替换,因此需要对生成的PUF响应进行进一步的加密处理。哈希函数,也称杂凑函数或散列函数,是将任意长度的消息输入映射为固定长度输出值的一种函数,由于它的运算过程是单向的,逆向操作很难完成,且碰撞发生的几率非常小,因此通常使用哈希函数对签名进行加密。哈希加密算法通常基于迭代结构设计,将输入划分为固定长度的消息分组,每个分组为k比特,将每个分组映射为固定长度的n比特,并作为下一次映射的输入,直到所有分组全部映射结束,最终得到n比特的杂凑结果。当最后一个分组长度不足k比特时,使用1个1与若干0对数据进行填充,保证整个输入数据的长度为k的整数倍。使用最为广泛的杂凑加密算法有MD5、SHA等,其安全性较高,被美国NIST和NSA两个组织设定为加密标准。然而,随着密码学研究的不断发展,中国密码专家王小云教授研究小组攻破了MD5和SHA-1等加密算法,因此这些算法不再适用。随后王小云教授等人提出了国产加密算法SM3,是目前国家商用密码算法中唯一的杂凑算法。SM3密码杂凑算法适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。本文设计使用处理器对PCB上生成的PUF响应进行加密,并完成对PCB的认证。在处理器中存储一组随机数,与从PCB上获得的PUF响应进行异或计算操作,设计SM3算法的硬件实现,对上述得到的结果值进行SM3杂凑加密,将得到的256比特密钥与对应的PUF响应保存在数据库。在认证阶段,将PCB与处理器连接并上电后,用再次得到的256比特密钥与存储在数据库中的密钥值进行比较,若二者相同,则认证成功,反之认证失败。认证成功后得到新的信号,利用该信号对处理器中的部分待配置功能模块进行配置,并且在完成配置之后,该密钥失效,从数据库中删除。当再有相同的PUF响应及其密钥产生时,无法再次完成认证。该方案在实现对PCB的认证的同时实现对处理器功能的正确实现,将PCB与处理器一一对应,保证二者中任意一方被仿冒或回收利用时都能够被检测出来。对设计的SM3杂凑算法使用Modelsim软件进行仿真验证,再利用Cyclone-4 FPGA开发平台对整体认证方案进行功能仿真,确定方案的可行性。最后针对多种攻击方法分析该认证方案的安全性。本文中设计的板级PUF虽然具有较好的独特性和可靠性,但由于电阻直接暴露在PCB上,其安全性还需要进一步加强。未来的研究方向应继续侧重设计实现PCB级的PUF,并将板级PUF与芯片内的PUF结合,用来实现基于PUF的PCB认证方案。可以考虑使用PCB的其他工艺偏差或PCB上常用的电子器件在PCB上生成PUF。除电阻之外的电容电感等器件同样存在偏差,考虑单独器件的偏差或将多种器件组成小电路中的参数偏差产生签名。