发明名称 一种基于口令的远程认证协议方法
摘要 本发明涉及一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户U<sub>A</sub>通过用户注册子协议进行注册,选择身份标识和用户口令PW<sub>A</sub>;步骤3:用户U<sub>A</sub>希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识ID<sub>A</sub>和用户口令PW<sub>A</sub>,然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK。
申请公布号 CN103905437B 申请公布日期 2017.02.22
申请号 CN201410108353.3 申请日期 2014.03.22
申请人 哈尔滨工程大学 发明人 马春光;付韬;崔振山;苗俊峰
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 代理人
主权项 一种基于口令的远程认证协议方法,其特征在于:基于椭圆曲线密码算法实现,包括如下步骤:步骤1:在系统初始化子协议中,用户同服务器协商好以后认证需要使用的椭圆曲线密码系统参数;步骤2:新用户U<sub>A</sub>通过用户注册子协议进行注册,选择身份标识和用户口令PW<sub>A</sub>;具体包括:服务器S收到新用户U<sub>A</sub>注册提交的身份标识ID<sub>A</sub>和用户口令PW<sub>A</sub>后,进行计算<img file="FDA0001164276810000011.GIF" wi="546" he="63" />然后把数据(ID<sub>A</sub>,W<sub>A</sub>)保存在服务器的认证数据库中,前述式中,d<sub>S</sub>表示服务器的私钥,h表示单向哈希函数;步骤3:用户U<sub>A</sub>希望登陆系统并进行会话密钥协商时,首先输入自己的身份标识ID<sub>A</sub>和用户口令PW<sub>A</sub>,然后通过身份认证和密钥协商子协议,与服务器进行双向认证并且协商在以后通信中使用的密钥SK;具体包括以下步骤,步骤3.1:用户U<sub>A</sub>首先输入自己的身份标识ID<sub>A</sub>和用户口令PW<sub>A</sub>;用户自由选择一个随机数r<sub>1</sub>,r<sub>1</sub>∈Z<sup>*</sup><sub>n</sub>,Z<sup>*</sup><sub>n</sub>表示整数模n的剩余类,然后进行运算R<sub>1</sub>=r<sub>1</sub>·P,P表示群G的生成元,把消息<ID<sub>A</sub>,R<sub>1</sub>>发送给服务器S;步骤3.2:服务器S接收到上一步来自用户U<sub>A</sub>的消息<ID<sub>A</sub>,R<sub>1</sub>>后,根据自己的认证数据库中存储的数据对用户ID<sub>A</sub>进行合法性检验;如果在数据库中未找到该ID<sub>A</sub>,则服务器S终止协议的进程;否则,服务器S进行如下运算,选择随机数r<sub>2</sub>,r<sub>2</sub>∈Z<sup>*</sup><sub>n</sub>,计算R<sub>2</sub>=r<sub>2</sub>·P,K<sub>S</sub>=r<sub>2</sub>·R<sub>1</sub>,R<sub>3</sub>=d<sub>S</sub>·R<sub>1</sub>,h<sub>1</sub>=h(S||ID<sub>A</sub>||R<sub>1</sub>||R<sub>2</sub>||R<sub>3</sub>||K<sub>S</sub>),式中S表示服务器的身份标识,最后由服务器S把消息<R<sub>2</sub>,h<sub>1</sub>>发送到用户U<sub>A</sub>;步骤3.3:当用户U<sub>A</sub>接收到来上一步来自服务器S的消息<R<sub>2</sub>,h<sub>1</sub>>后,进行运算K<sub>U</sub>=r<sub>1</sub>·R<sub>2</sub>=r<sub>1</sub>·r<sub>2</sub>·P,以及计算h<sub>1</sub><sup>*</sup>=h(S||ID<sub>A</sub>||R<sub>1</sub>||R<sub>2</sub>||r<sub>1</sub>·P<sub>S</sub>||K<sub>U</sub>),其中P<sub>s</sub>代表公钥,验证h<sub>1</sub><sup>*</sup>与收到来自服务器的h<sub>1</sub>是否保持一致,如果不一致,则用户U<sub>A</sub>终止进行协议进程;否则,用户U<sub>A</sub>计算h<sub>2</sub>=h(ID<sub>A</sub>||S||r<sub>1</sub>·P<sub>S</sub>||K<sub>U</sub>||PW<sub>A</sub>),然后将h<sub>2</sub>发送给服务器S,并且用户U<sub>A</sub>计算一个密钥SK=h(ID<sub>A</sub>||S||R<sub>1</sub>||R<sub>2</sub>||r<sub>1</sub>·P<sub>S</sub>||K<sub>U</sub>||PW<sub>A</sub>);步骤3.4:服务器S从本地认证数据库中提取步骤2中计算获得的W<sub>A</sub>,并进行计算<img file="FDA0001164276810000021.GIF" wi="358" he="63" />得到服务器端计算得到的PW<sub>A</sub><sup>*</sup>,然后计算h(ID<sub>A</sub>||S||R<sub>3</sub>||K<sub>S</sub>||PW<sub>A</sub><sup>*</sup>),得到的计算结果与上一步中收到的h<sub>2</sub>进行对比验证,看是否保持一致,如果不一致,则用户U<sub>A</sub>对服务器的认证请求失败,终止协议;否则,服务器S认可用户U<sub>A</sub>的合法身份,并且服务器S计算一个密钥SK=h(ID<sub>A</sub>||S||R<sub>1</sub>||R<sub>2</sub>||R<sub>3</sub>||K<sub>S</sub>||PW<sub>A</sub><sup>*</sup>)。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室