论文部分内容阅读
随着智能手机的不断普及和移动互联网的迅猛发展,以NFC为技术基础的线下移动支付技术体系也逐渐地建立起来。而apple pay在我国的不断推广使得越来越多的智能手机开始支持NFC无线通信技术,与此同时android4.4以上操作系统所支持的HCE技术,使得每一个手机应用都可以模拟成一张虚拟卡,这大大丰富了移动支付的实现形式。当手机应用与智能卡进行通讯,或者把手机模拟成智能卡时,app需要存储相关的密钥信息,而手机平台属于白盒开放环境,若密钥直接存储在手机程序或文件当中,攻击者容易通过调试程序、分析内存等手段获取相关的密钥信息,因此我们需要相关技术将密钥隐藏到手机程序当中。白盒密码是针对白盒环境所提出的一种混淆密码学,目前主要分为Chow提出的基于查询表白盒密码算法和Bringer提出的基于多项式混淆的白盒密码算法两大类。基于查询表的白盒密码算法核心是将密码算法查询表化,即将加解密过程转换为查表过程,使得密钥混淆在各个查询表中;基于多项式混淆的白盒密码算法核心是将密码算法多项式化,即将加解密过程转换为多项式方程组的计算过程,使得密钥混淆在多项式系统当中。我们可以使用这一技术将所需密码算法中的密钥进行混淆,解决移动支付中手机应用端的的密钥隐藏问题。本文主要完成的工作主要有:1.分析HCE卡模拟技术的三种实现方案,重点研究在结合SE单元的卡模拟中,与SE通讯所存在的安全问题。2.研究了基于查找表的白盒密码算法和基于多项式混淆的白盒密码算法的具体思想,并详细分析了两种白盒密码的整体框架,以及它们在传统密码算法中应用方案。3.详细设计并实现了基于查询表的白盒TDES密码算法,给出了白盒DES中各个白盒组件的实现方案,使用C语言实现该算法,完成android平台下的运行和测试4.详细设计并实现了基于多项式混淆的白盒AES,给出了AES多项式系统和多项式混淆的实现方案,使用C语言实现该算法,完成android平台下的运行和测试。5.通过将自修改状态机与基于查找表的白盒DES相结合,提出以一种动态混淆的白盒密码算法,并应用到android平台当中,实现了与SD卡建立安全通道的交互实例。