摘要
秘密分享是将秘密分布式存储的密码技术,提出至今四十余年得到了深入研究和广泛应用。秘密分享是多方安全计算基础技术之一,基于秘密分享的多方安全计算能够在不泄露明文信息的情况下完成函数的计算,与混淆电路、同态加密等其它多方安全计算基础技术相比,具有更好的计算效率。秘密分享在门限签名、密钥管理、隐私保护机器学习等领域也得到了广泛的应用。基于秘密分享的门限签名方案在不恢复私钥明文的前提下完成签名,进一步应用于数字货币、区块链以及代码签名等场景中。隐私保护机器学习是目前多方安全计算最受关注的应用领域之一,在保证不泄露用户原始数据和服务商模型参数的情况下进行训练和推理,通常结合秘密分享、同态加密和不经意传输等多种多方安全计算技术来平衡不同运算的计算性能。 现有方案存在一些功能和性能上的不足,需要对秘密分享技术本身进行改进、并且针对具体应用场景需求进行性能的优化。加性秘密分享由于其优越的计算性能在多种应用中受到青睐,我们针对其目前存在的份额数量多、门限设置固定等问题,研究了支持任意门限且优化份额数量的方案。当前ECC门限签名研究存在的不足是性能的局限和门限参数的灵活性,我们将ECDSA门限签名方案的设计思路推广到其它签名方案,提炼出基于秘密分享技术的ECC门限签名基础运算模块。因此,本文基于秘密分享技术及应用研究,主要完成了以下工作: 1)设计了一种优化份额数量的冗余加性秘密分享方案。首先,我们构造了一个(2,n)冗余秘密分享方案,从n个参与方中任选2个能够恢复出秘密。方案采取递增式生成份额的方式,在不改变已有参与方份额的前提下,为新参与方生成份额,并证明其达到了最优份额数量。调用递归函数将(2,n)冗余秘密分享扩展到(t,n)冗余秘密分享,当t为奇数时递归边界为(3,n)冗余秘密分享,当t为偶数时递归边界为(2,n)冗余秘密分享。通过在60台服务器上进行实验,结果表明在获得高效运行时间的同时极大地降低了份额存储开销,存储效率与已有方案相比提高了两个数量级,在线运行时间在微秒范围内。 2)设计了基于秘密分享技术的ECC门限签名基础运算模块,适用于ECDSA、Schnorr和SM2等多种签名算法,并提出不同基础运算模块在计算、通信、轮数开销上的优势和劣势;设计了私钥和即时密钥均为乘法份额的门限ECDSA,通过将私钥存储为冗余乘法份额来实现门限特性,获得了比已有方案更优的轮数开销;设计了n方协同SM2签名方案,与现有的两方协同方案相比具有更好的可扩展性。 3)设计了基于秘密分享技术的终端分布式密钥管理方案。用户在初始化阶段生成私钥的多个份额并对其进行分布式存储,通过链式密钥函数建立多代私钥之间的联系。私钥泄露后,多个服务器协同验证新一代私钥和泄露私钥之间的所属关系,然后将新私钥投入使用。用户持有的私钥份额丢失后,由其它服务器协同为用户生成新的份额。本方案通过Shamir份额和加性份额的转化来实现(t,n)门限,获得了可观的计算、通信、轮数开销。