1.一种远程医疗认证方法,其特征在于包括如下步骤:
患者与医疗服务器,医生与医疗服务器之间进行双向认证:
将患者的身份和医生的身份进行匿名化:
患者进行就诊:
医生进行诊断;
患者查询诊断结果;
所述患者与医疗服务器,医生与医疗服务器之间进行双向认证的方法如下:
1)患者提取时间戳TP,同时将时间戳TP和诊断请求Query一起发给医生;
2)医生在接收到来自患者请求认证的消息后,产生一个随机数S,然后将医生身份码DID,时间戳TP以及随机数S,进行串联运算,经HASH函数加密生成M1=H(DID‖TP‖S);时间戳TP与随机数S进行异或运算生成M2=TP⊕S,最后将(M1,M2,S)一起发给患者;
3)患者收到医生发回的应答消息后,计算S’=M2⊕TP,判断S’是否等于S,若不相等则判定医生非法,终止通信;若相等则利用患者身份码PID、之前生成的时间戳TP和随机数S串联,经HASH函数加密计算生成M3=H(PID‖TP‖S),完成后将(M1,M3,TP,S)值发给医疗服务器;
4)医疗服务器收到来自患者的认证数据后,提取本地时间TS,计算△T=TS‑TP;与最远距离患者认证所需时间△T’相比较,如果△T相较于△T’过大,则认定系统在认证中遭受了攻击,终止通信;若无异常则利用本地时间TS与时间戳TP进行异或运算生成M4=TP⊕TS,将M4发回给患者;
5)患者接收到M4后,计算M5=M4⊕TP,将M5返回给医疗服务器;
6)医疗服务器收到M5后与本地时间TS相比,若相等,则利用之前接收的时间戳TP和随机数S遍历医疗服务器,查看是否存在相应的患者标识符PID’使得H(PID’‖TP‖S)=M3,若有则证明患者合法,继续验证医生;否则终止通信;患者验证成功后,根据得到的时间戳TP和随机数S遍历医疗服务器,查看是否存在相应的医生标识符DID’使得H(DID’‖TP‖S)=M1,若存在则医生认证成功,计算M6=H(PID’‖TS),M7=H(DID’‖TS),将(M6,M7)发送给患者;否则认证失败,终止通信;
7)患者利用之前接收到的M5计算H(PID‖M5),判断是否等于M6,若相等则患者对于医疗服务器认证成功,然后将(M7,M5)发送给医生;否则认证失败,终止通信;医生根据得到的M5与自身的DID值计算H(DID‖M5)与得到M7进行比较;若两者一致,则认证成功开始通信;否则,认证失败终止通信。
2.如权利要求1所述的远程医疗认证方法,其特征在于,将患者的和医生的身份进行匿名化,包括:医疗服务器为患者分配临时身份码TID,使用医疗服务器公钥PKSID加密{TID,PID},得到并在本地保存 然后计算h=H(TID,BID),将{M8,SS}发送给患者;患者接收到{M8,SS}后,使用自身私钥SKPID解密M8得到TID,BID,接着计算h=H(TID,BID),并使用医疗服务器公钥PKSID验证签名 如果签名验证通过,说明患者的临时身份码TID与医生临时身份码BID确实来自医疗服务器,继续认证过程,否则舍弃信息TID与BID;
医疗服务器为医生分配临时身份码BID,使用医疗服务器公钥PKSID加密{BID,DID},得到 并在本地保存 然后计算 将{M9,SS}发送给医生;
医生接收到{M9,SS}后,使用自身私钥SKDID解密M9得到TID,BID,接着计算h=H(TID,BID),并使用服务器公钥PKSID验证签名 如果签名验证通过,说明TID与BID确实来自医疗服务器,继续认证过程,否则舍弃信息TID与BID。
3.如权利要求2所述的远程医疗认证方法,其特征在于,所述患者进行就诊的方法如下:患者利用临时身份码TID向接收到的医生临时身份码BID发起就诊请求,患者用医生公钥PKBID加密{TID,data},得到 将M10发送给医生。
4.如权利要求3所述的远程医疗认证方法,其特征在于,所述医生进行诊断的方法如下:医生接收到M10后,用医生临时身份私钥SKBID解密 获取患者临时身份码
TID,与自身接收的TID对比,如果一致,证明消息来自患者本人,医生读取数据data,并做出诊断结果result,最后,医生使用患者临时身份公钥PKTID加密result,得到 使用PKSID加密 得到 并将M11发送给医疗服务器;
医疗服务器收到M11后,用自身私钥SKSID解密,获取TID,BID, 与自身存储的医生临时身份码BID进行对比,如果一致,证明消息来自医生本人,医疗服务器查询本地存储的{TID,PID},确定result所属的患者真实身份PID,然后使用患者身份公钥PKPID加密得到 最终将M12传输给患者PID。
5.如权利要求4所述的远程医疗认证方法,其特征在于,所述患者查询诊断结果的方法如下:患者接收到M12后,使用患者私钥SKPID解密 得到 再使用患者
临时身份私钥SKTID解密 得到医生诊断结果result,至此完成一次远程医疗问诊。