基于环上带误差学习问题的SIP安全认证方法及系统与流程

文档序号:23011411发布日期:2020-11-20 12:10阅读:228来源:国知局
基于环上带误差学习问题的SIP安全认证方法及系统与流程

本申请涉及安全通信技术领域,特别是涉及基于环上带误差学习问题的sip安全认证方法及系统。



背景技术:

本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。

认证协议是在不可信的环境中保障通信实体安全地交换信息的重要手段之一。会话初始协议(sip)以简易性、开放性、公用性、标准化和个性化等特点成为最受广泛接受的一种网络电话信令协议。它是由互联网工程项目组制定的面向多媒体会议和电话的信令协议,用于创建、修改和终结双方或多方多媒体会话进程。当远端用户请求sip服务器提供服务时,需要通过认证机制以验证远端用户和服务器的真实身份。但是随着网络技术的进步,攻击者的手段也越来越复杂,例如重放攻击、中间人攻击以及离线口令猜测攻击等。

随着量子计算机的发展,以及计算大整数分解和离散对数的量子算法的发展,众多传统密码的安全性受到威胁,基于传统密码的sip协议认证方法也不再安全,而能够抵抗量子计算机攻击的格密码成为了密码学界的研究热点。差错学习问题(learmingwitherrors,简称lwe)由regev在2005年提出,他将lwe问题量子归约到格上的标准困难问题。因此在lwe问题之上建立的所有密码学方案,都能够将其安全建立在格问题的最坏情况下困难性之上。环上的lwe问题使得该方法的实用性增强。

在实现本申请的过程中,发明人发现现有技术中存在以下技术问题:

sip协议基于开放的ip网络,未授权的实体很容易截获消息并进行篡改,甚至假冒合法实体欺骗参与者,并且随着量子计算机和相关算法的发展,sip协议中基于传统密码算法发认证算法也不再安全。



技术实现要素:

为了解决现有技术的不足,本申请提供了基于环上带误差学习问题的sip安全认证方法及系统;解决sip协议认证过程中易受攻击,安全性差的问题。

第一方面,本申请提供了基于环上带误差学习问题的sip安全认证方法;

基于环上带误差学习问题的sip安全认证方法,包括:

用户客户端u选择自己的用户名id和口令pw,对口令pw进行加密得到加密数据pwe,用户客户端u将用户名id、加密数据pwe和验证密钥均发送给服务器s;

服务器s接收用户客户端u发来的用户名id和加密数据pwe,服务器s对接收到的用户名id和加密数据pwe进行加密处理,得到加密数据vpw;

用户客户端u向服务器s发送验证请求;服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u;

用户客户端u接收到第一验证消息后,用户客户端对第一验证消息进行验证,如果验证未通过,则会话立即终止,否则,用户客户端返回第二验证消息给服务器s;

服务器s对第二验证消息进行验证,如果验证通过,则用户客户端u和服务器s之间允许使用共同的会话密钥来加密之后的通信信息;如果验证不通过,则会话立即终止。

第二方面,本申请提供了基于环上带误差学习问题的sip安全认证系统;

基于环上带误差学习问题的sip安全认证系统,包括:用户客户端u和服务器s;

用户客户端u选择自己的用户名id和口令pw,对口令pw进行加密得到加密数据pwe,用户客户端u将用户名id、加密数据pwe和验证密钥均发送给服务器s;

服务器s接收用户客户端u发来的用户名id和加密数据pwe,服务器s对接收到的用户名id和加密数据pwe进行加密处理,得到加密数据vpw;

用户客户端u向服务器s发送验证请求;服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u;

用户客户端u接收到第一验证消息后,用户客户端对第一验证消息进行验证,如果验证未通过,则会话立即终止,否则,用户客户端返回第二验证消息给服务器s;

服务器s对第二验证消息进行验证,如果验证通过,则用户客户端u和服务器s之间允许使用共同的会话密钥来加密之后的通信信息;如果验证不通过,则会话立即终止。

与现有技术相比,本申请的有益效果是:

1)本申请基于环lwe问题,具有抵抗量子计算机攻击的能力。认证过程中使用了b1=sua+eu和d=ssa+es,当攻击者试图通过a和b1猜测su或者通过a和d猜测ss时,这就是环上的差错学习问题,该问题是目前安全可证的具有抗量子攻击性质的难题;

2)本申请可以抗内部人攻击,从注册开始阶段开始,用户u利用随机数通过哈希函数把id和口令pw进行加密,服务器s和攻击者不知道密码随机数,并且哈希函数具有单向性,因此无法恢复出用户的口令,即攻击者无法实施内部人攻击;

3)本申请还具有抗重放攻击、抗中间人攻击以及抗离线口令猜测攻击等安全特性,具有良好的抗攻击性;

4)本申请虽然是用于解决sip协议中的安全认证问题设计,但是同时也可以用于其他客户端与服务器的认证过程中。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为第一个实施例的方法流程图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

本实施例提供了基于环上带误差学习问题的sip安全认证方法;

如图1所示,基于环上带误差学习问题的sip安全认证方法,包括:

s101:用户客户端u选择自己的用户名id和口令pw,对口令pw进行加密得到加密数据pwe,用户客户端u将用户名id、加密数据pwe和验证密钥均发送给服务器s;

s102:服务器s接收用户客户端u发来的用户名id和加密数据pwe,服务器s对接收到的用户名id和加密数据pwe进行加密处理,得到加密数据vpw;

s103:用户客户端u向服务器s发送验证请求;服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u;

s104:用户客户端u接收到第一验证消息后,用户客户端对第一验证消息进行验证,如果验证未通过,则会话立即终止,否则,用户客户端返回第二验证消息给服务器s;

s105:服务器s对第二验证消息进行验证,如果验证通过,则用户客户端u和服务器s之间允许使用共同的会话密钥来加密之后的通信信息;如果验证不通过,则会话立即终止。

作为一个或多个实施例,所述方法还包括:

s106:用户客户端发送消息{id,v=h(sku||h(id||h(pw||pu)),给服务器s;

s107:服务器s运算并验证它是否与收到的v相等,如果两者相等,服务器s运算并以nvpw替换vpw,即完成口令更替。

作为一个或多个实施例,所述s101中,所述验证密钥是用户客户端u依据私钥、用户名id和加密数据pwe计算得到的。

作为一个或多个实施例,所述s101中,对口令pw进行加密得到加密数据pwe;具体步骤是:

对口令pw利用随机数和哈希函数进行加密处理,得到加密数据pwe。

作为一个或多个实施例,所述s102中,服务器s对接收到的用户名id和加密数据pwe进行加密处理,得到加密数据vpw;具体步骤是:

服务器s对接收到的用户名id和加密数据pwe使用服务器s的对称密钥ps进行加密处理,得到加密数据vpw。

作为一个或多个实施例,所述s103中,服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u;具体步骤包括:

使用对称密钥进行解密得到中间参数t,服务器s使用验证密钥hid对中间参数t进行处理,得到用户名id;

服务器s根据验证密钥b2对中间参数t进行处理,通过环上带误差的学习问题的陷门函数的抗量子性,计算出中间参数b1,然后对用户名id和中间参数b1进行处理,得到处理结果;

服务器s判断处理结果是否等于验证密钥c;如果等于,则服务器发送第一验证消息给用户客户端u。

作为一个或多个实施例,所述s101的步骤之前还包括:

s100:参数生成:服务器s,定义dσ为整数域z上的离散高斯分布,期望为0,标准差为σ;r为多项式环zq[x]/(xn+1)。设置多项式最高次数n,随机选取多项式ss∈r服从分布dσ,并将ss作为服务器s端的私钥。随机均匀选取多项式a∈r,选取哈希函数h(·);公开多项式a和哈希函数h(·)。

作为一个或多个实施例,所述s101的详细步骤包括:

用户客户端u,选择自己的用户名id和口令pw,为防止口令pw被窃取,发送前选一个随机数pu,并利用哈希函数对口令pw加密,加密过程是对pw和pu先进行或运算再进行哈希运算,即pwe=h(pw||pu),这样就得到了加密后的口令数据pwe。随机选取多项式eu∈r服从分布dσ,并将其作为带误差学习问题中的误差多项式。然后,用户客户端u通过安全信道发送{用户名id,加密的口令数据pwe,误差多项式eu}给服务器s;

作为一个或多个实施例,所述s102的详细步骤包括:

当服务器s收到从用户客户端u发来的消息,为防止内部人攻击,对来自客户端u的信息进行加密,对用户名id和加密的口令数据pwe先进行或运算再进行哈希运算,即t=h(id||pwe),得到加密数据t。再添加随机性,服务器s随机选取一个随机数ps,然后对加密数据t与随机数ps的哈希运算结果进行异或运算,即就得到了加密数据vpw,并保存该数据。

作为一个或多个实施例,所述s103的用户客户端u向服务器s发送验证请求详细步骤包括:

用户客户端u随机选取多项式su∈r服从分布dσ,并将其作为用户客户端u的私钥。然后利用带误差学习问题中的陷门函数b1=sua+eu计算得到数据b1,用户客户端u计算发送给服务器用于验证的数据和c=h(id||b1),计算完成后,用户客户端u发送用于验证的消息{b2,hid,c}给服务器s;

作为一个或多个实施例,所述s103的服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u的详细步骤包括:

s1031:当收到从用户客户端u发来的验证请求,服务器s先通过计算公式得到数据t′,再将其带入公式得到id′,然后计算得到b′1,再计算h(id′||b′1)=c′,对比c′和c:

若两者相等,说明该用户客户端u通过了服务器s的验证,服务器s信任此用户客户端u,就继续完成认证过程;

若两者不相等,说明该用户客户端u没有通过了服务器s的验证,服务器s立即断开与此用户客户端u的连接。

s1032:用户客户端u通过服务器s的验证后,服务器s需要再向用户客户端u发送验证信息。服务器s随机选取多项式ss∈r服从分布dσ,并将其作为服务器s的私钥。将eu作为带误差学习问题中的误差多项式;

然后利用带误差学习问题中的陷门函数d=ssa+eu计算得到数据d;

计算sks=ss(b1-eu)得到的sks既包含了客户端u的私钥su也包含了服务器s的私钥ss;

计算auths=h(sks||t||b1)得到用于验证的消息auths;

最后,服务器s发送消息{d,auths}给客户端u。

作为一个或多个实施例,所述s104的具体步骤包括:

当收到来自服务器s发来的消息{rand1,d,auths},用户客户端u运算sku=su(d-eu)得到sku,其中既包含了客户端u的私钥su也包含了服务器s的私钥ss。然后计算h(sku||t||b1)并将结果与来自服务器s的验证消息auths对比:

若两者不相等,说明该服务器发送的消息没有通过用户客户端u的验证,会话立即终止;

如果两者相等,说明验证通过,用户客户端u计算authu=h(sku||t||d)得到验证消息authu,返回消息authu给服务器s。

作为一个或多个实施例,所述s105的具体步骤包括:

服务器s计算h(sks||t||d),并将计算结果与从客户端u传来的消息authu进行对比:

如果两者不等,则无法获得共同的会话密钥,需要重新验证;

如果两者相等,则能够计算获得共同的会话密钥。因为sks=ss(b1-eu)=sssupk,sku=su(d-eu)=susspk,所以sku=sks,用户客户端u和服务器s用共同的会话密钥sk=sku=sks来进行加密通信。

作为一个或多个实施例,所述s106具体步骤包括:

用户客户端u顺利认证通过后,对新的口令npw以及新的随机数npu先进行或运算再进行哈希运算,即npwe=h(npw||npu),这样就得到新的加密口令数据npwe。然后用户客户端u发送消息{用户名id,口令更替标识符req,新的加密口令数据npwe}给服务器s;

作为一个或多个实施例,所述s107具体步骤包括:

服务器s收到消息{用户名id,口令更替标识符req,新的加密口令数据npwe}后,为防内部人攻击,对用户名id和加密的口令数据npwe先进行或运算再进行哈希运算,即nt=h(id||npwe),得到加密数据nt。再添加随机性,服务器s随机选取一个随机数nps,然后对加密数据nt与随机数nps的哈希运算结果进行异或运算,即就得到了加密数据nvpw,并用其代替原来存储在服务器s端代表客户端u身份的vpw数据,即新的加密数据nvpw就是存储在服务器s端的用户身份信息,这样就完成了口令更替操作。

作为一个或多个实施例,所述s105步骤之后,所述s106步骤之前,还包括:

如果用户客户端u想使用新的口令,用户客户端u备好用户名id、新的口令npw以及新的随机数npu;

用户客户端u先通过认证过程,即服务器s端验证为合法用户后,该用户才允许进行口令更替操作。

实施例二

本实施例提供了基于环上带误差学习问题的sip安全认证系统;

基于环上带误差学习问题的sip安全认证系统,包括:用户客户端u和服务器s;

用户客户端u选择自己的用户名id和口令pw,对口令pw进行加密得到加密数据pwe,用户客户端u将用户名id、加密数据pwe和验证密钥均发送给服务器s;

服务器s接收用户客户端u发来的用户名id和加密数据pwe,服务器s对接收到的用户名id和加密数据pwe进行加密处理,得到加密数据vpw;

用户客户端u向服务器s发送验证请求;服务器s使用验证密钥对加密数据vpw进行处理,得到第一验证消息,服务器发送第一验证消息给用户客户端u;

用户客户端u接收到第一验证消息后,用户客户端对第一验证消息进行验证,如果验证未通过,则会话立即终止,否则,用户客户端返回第二验证消息给服务器s;

服务器s对第二验证消息进行验证,如果验证通过,则用户客户端u和服务器s之间允许使用共同的会话密钥来加密之后的通信信息;如果验证不通过,则会话立即终止。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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