本发明涉及计算机
技术领域:
,特别涉及一种数据交互方法、装置、设备及介质。
背景技术:
:ssd(solidstatedisk,固态硬盘)因其具有读写速度快、低功耗、无噪音等优点,从而在市场在得到了较为广泛的应用。但是,在现有技术中,ssd在和主机通过sata(serialadvancedtechnologyattachment,串行硬盘)协议进行数据交互时,一般都是通过明文进行数据交互,这样就会导致ssd和主机的信息交互过程存在极大的安全隐患。目前,针对这一技术问题,还没有较为有效的解决办法。由此可见,如何提高主机在和ssd进行数据交互时的安全性,是本领域技术人员亟待解决的技术问题。技术实现要素:有鉴于此,本发明的目的在于提供一种数据交互方法、装置、设备及介质,以提高主机在和ssd进行数据交互时的安全性。其具体方案如下:一种数据交互方法,应用于主机,包括:和ssd进行身份认证;若所述ssd和所述主机均通过对方的身份认证,则对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥;利用所述会话密钥对目标数据进行加密,得到目标加密数据,并利用所述目标加密数据和所述ssd进行数据交互。优选的,所述和ssd进行身份认证的过程,包括:生成第一随机数,并对所述第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据;将所述第一签名数据和所述第一加密数据发送至所述ssd;其中,当所述ssd接收到所述第一签名数据和所述第一加密数据时,则对所述第一加密数据进行解密,得到第一解密数据,并利用所述第一签名数据对所述第一解密数据进行验签,若验签成功,则判定所述主机通过所述ssd的身份认证,生成第二随机数,并对所述第二随机数进行签名与加密,分别得到第二签名数据和第二加密数据,将所述第二签名数据和所述第二加密数据发送至所述主机;当接收到所述第二签名数据和所述第二加密数据时,则对所述第二加密数据进行解密,得到第二解密数据,并利用所述第二签名数据对所述第二解密数据进行验签,若验签成功,则判定所述ssd通过所述主机的身份认证;相应的,所述对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥的过程,包括:对所述第一随机数和所述第二随机数进行运算生成所述会话密钥。优选的,所述生成第一随机数的过程,包括:利用物理噪声源生成所述第一随机数。优选的,还包括:预先利用sm2算法生成相互配对的第一公钥和第一私钥,并将所述第一公钥发送至所述ssd;获取所述ssd的第二公钥;其中,所述第二公钥为所述ssd利用所述sm2算法所生成相互配对第二私钥与所述第二公钥中的公钥。优选的,所述对所述第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据的过程,包括:利用所述第一私钥对所述第一随机数进行签名,得到所述第一签名数据,并利用所述第二公钥对所述第一随机数进行加密,得到所述第一加密数据;相应的,所述对所述第一加密数据进行解密,得到第一解密数据,并利用所述第一签名数据对所述第一解密数据进行验签的过程,包括:利用所述第二私钥对所述第一加密数据进行解密,得到所述第一解密数据,并利用所述第一公钥和所述第一签名数据对所述第一解密数据进行验签。优选的,所述利用所述第一私钥对所述第一随机数进行签名,得到所述第一签名数据的过程,包括:对所述第一随机数进行哈希运算,得到目标哈希值;基于所述sm2算法,利用所述第一私钥对所述目标哈希值进行签名,得到所述第一签名数据;相应的,所述利用所述第一签名数据对所述第一解密数据进行验签的过程,包括:计算与所述第一签名数据相对应的目标随机数;基于所述sm2算法,利用所述第一公钥判断所述目标随机数是否与所述第一随机数一致;若是,则验签成功。优选的,还包括:当所述ssd接收到所述目标加密数据时,则对所述目标加密数据进行解密,得到目标解密数据,并利用hmac算法对所述目标解密数据的完整性进行校验。相应的,本发明还公开了一种数据交互装置,应用于主机,包括:身份认证模块,用于和ssd进行身份认证;密钥生成模块,用于当所述ssd和所述主机均通过对方的身份认证,则对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥;数据发送模块,用于利用所述会话密钥对目标数据进行加密,得到目标加密数据,并利用所述目标加密数据和所述ssd进行数据交互。相应的,本发明还公开了一种数据交互设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如前述所公开的一种数据交互方法的步骤。相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所公开的一种数据交互方法的步骤。可见,在本发明所提供的数据交互方法中,主机首先是和ssd进行身份认证,如果ssd和主机均通过对方的身份认证,则对主机和ssd各自所产生的随机数进行运算生成会话密钥,并利用会话密钥对目标数据进行加密,得到目标加密数据,然后,再利用目标加密数据和ssd进行数据交互。显然,相较于现有技术而言,因为本发明所提供ssd与主机的数据交互方法中,增加了主机和ssd的身份校验过程以及传输数据的加密过程,所以,利用该方法就可以显著提高主机在和ssd进行数据交互时的安全性。相应的,本发明所提供的一种数据交互装置、设备及介质,同样具有上述有益效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例所提供的一种数据交互方法的流程图;图2为本发明实施例所提供的主机与ssd进行数据交互时的示意图;图3为本发明实施例所提供的一种数据交互装置的结构图;图4为本发明实施例所提供的一种数据交互设备的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参见图1,图1为本发明实施例所提供的一种数据交互方法的流程图,该数据交互方法包括:步骤s11:和ssd进行身份认证;步骤s12:若ssd和主机均通过对方的身份认证,则对主机和ssd各自所产生的随机数进行运算生成会话密钥;步骤s13:利用会话密钥对目标数据进行加密,得到目标加密数据,并利用目标加密数据和ssd进行数据交互。在本实施例中,是提供了一种数据交互方法,通过该数据交互方法可以显著提高ssd在和主机进行数据交互时的安全性。在该数据交互方法中,是以主机为执行主体进行说明。当主机在向ssd发送目标数据时,主机和ssd首先是对对方的身份进行身份认证,也即,主机需要判断ssd的身份是否合法,ssd需要判断主机的身份是否合法。如果ssd和主机均通过对方的身份认证,则说明ssd和主机的身份均合法,在此情况下,主机和ssd则对各自所生成的随机数进行运算,生成会话密钥,然后,主机再利用会话密钥对目标数据进行加密,得到目标加密数据,并利用目标加密数据和ssd进行数据交互。其中,主机利用目标加密数据和ssd进行数据交互,既包括主机利用目标加密数据向ssd写入数据,也包括主机利用目标加密数据从ssd中读取数据。具体的,在实际应用中,主机在和ssd进行身份认证时,可以是通过预先所设置好的口令进行身份认证,也即,主机在和ssd进行数据交互之前,主机和ssd事先以约定好的预设口令进行身份认证,如果主机在和ssd进行数据交互时,主机可以向ssd出示预设口令,并且,ssd也可以向主机出示预设口令,则说明主机和ssd的身份均合法;或者,主机在和ssd进行身份认证时,还可以是通过持有预先约定好的密钥对进行身份认证,也即,主机在和ssd进行数据交互时,如果ssd能够利用自己持有的密钥将主机所发送的加密数据进行解密,则说明主机能够通过ssd的身份认证,如果主机能够利用自己持有的密钥将ssd所发送的加密数据进行解密,则说明ssd能够通过主机的身份认证。当然,在实际应用中,还可以利用其它的身份认证方法来对主机和ssd的身份进行认证,此处不作具体赘述。能够想到的是,因为利用主机和ssd各自所生成的随机数来生成会话密钥,相比于其它会话密钥的生成方法而言,具有更高的安全系数,所以,在本实施例中,是利用主机和ssd各自所生成的随机数来生成会话密钥。可以理解的是,相较于现有技术而言,因为本实施例所提供ssd与主机的数据交互方法中,不仅增加了主机和ssd的身份校验过程,而且,主机还对向ssd所发送的目标数据进行了加密,所以,利用该方法就可以显著提高主机在和ssd进行数据交互时的安全性。需要说明的是,本实施例所提供的数据交互方法,适用于主机在和ssd以任意一种通信连接方式进行数据交互时的应用场景。比如:主机在和ssd是以sata或pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)或ahci(advancedhostcontrollerinterface,高级主机控制器接口)或nvme(non-volatilememoryexpress,非易失性内存主机控制器接口规范)进行数据交互时,均可以利用本申请所提供的方法来进一步保证主机在和ssd进行数据交互时的安全性。可见,在本实施例所提供的数据交互方法中,主机首先是和ssd进行身份认证,如果ssd和主机均通过对方的身份认证,则对主机和ssd各自所产生的随机数进行运算生成会话密钥,并利用会话密钥对目标数据进行加密,得到目标加密数据,然后,再利用目标加密数据和ssd进行数据交互。显然,相较于现有技术而言,因为本实施例所提供ssd与主机的数据交互方法中,增加了主机和ssd的身份校验过程以及传输数据的加密过程,所以,利用该方法就可以显著提高主机在和ssd进行数据交互时的安全性。基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:和ssd进行身份认证的过程,包括:生成第一随机数,并对第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据;将第一签名数据和第一加密数据发送至ssd;其中,当ssd接收到第一签名数据和第一加密数据时,则对第一加密数据进行解密,得到第一解密数据,并利用第一签名数据对第一解密数据进行验签,若验签成功,则判定主机通过ssd的身份认证,生成第二随机数,并对第二随机数进行签名与加密,分别得到第二签名数据和第二加密数据,将第二签名数据和第二加密数据发送至主机;当接收到第二签名数据和第二加密数据时,则对第二加密数据进行解密,得到第二解密数据,并利用第二签名数据对第二解密数据进行验签,若验签成功,则判定ssd通过主机的身份认证;相应的,对主机和ssd各自所产生的随机数进行运算生成会话密钥的过程,包括:对第一随机数和第二随机数进行运算生成会话密钥。具体的,在本实施例中,当主机和ssd进行数据交互时,首先是生成第一随机数,并对第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据,并将第一签名数据和第一加密数据发送至ssd。其中,主机可以利用蒙特卡罗法、冯诺依曼算法或者是其它算法来生成第一随机数。当ssd接收到主机所发送的第一签名数据和第一加密数据时,首先会对第一加密数据进行解密,得到第一解密数据,也即,第一随机数,并利用第一签名数据对第一解密数据进行验签,如果验签成功的话,说明主机的身份合法,此时,ssd就会生成第二随机数,并会对第二随机数进行签名与加密,分别得到第二签名数据和第二加密数据,然后,会将第二签名数据和第二加密数据发送至主机。当主机接收到第二签名数据和第二加密数据时,主机首先会对第二加密数据进行解密,得到第二解密数据,也即,第二随机数,并利用第二签名数据对第二解密数据进行验签,如果主机利用第二签名数据对第二解密数据验签成功的话,则说明ssd的身份合法,在此情况下,主机就会利用第一随机数和第二随机数生成会话密钥,也即,在主机和ssd的身份都合法的情况下,主机会根据ssd所生成的第一随机数和自身所生成的第二随机数协商出一个对目标数据进行加密的会话密钥。之后,再利用协商出的会话密钥对目标数据进行加密,得到目标加密数据,并利用目标加密数据和ssd进行数据交互。能够想到的是,相比于现有技术中ssd在和主机进行数据交互是通过明文进行传输而言,因为通过本实施例所提供的数据交互方法,增加了ssd和主机身份相互校验的过程,以及在ssd和主机身份相互校验之后共同协商会话密钥,并利用会话密钥对传输数据进行加密的过程,所以,通过该方法就可以避免非法分子伪造身份与ssd进行数据交互的现象,由此就可以显著提高主机在和ssd进行数据交互时的安全性。基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述步骤:生成第一随机数的过程,包括:利用物理噪声源生成第一随机数。在本实施例中,主机是利用物理噪声源来生成第一随机数,因为物理噪声源是自然界中所存在的一种物理熵源,相比于利用计算机算法来生成随机数而言,能够有效避免随机数在产生过程中所具有的周期性和可预测性问题,所以,当利用物理噪声源来产生第一随机数时,就可以保证第一随机数在生成过程中的可靠性。需要说明的是,在实际应用中,ssd也可以利用物理噪声源来生成第二随机数,其生成过程与第一随机数的生成方法一致,此处不作具体赘述。基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述数据交互方法还包括:预先利用sm2算法生成相互配对的第一公钥和第一私钥,并将第一公钥发送至ssd;获取ssd的第二公钥;其中,第二公钥为ssd利用sm2算法所生成相互配对第二私钥与第二公钥中的公钥。可以理解的是,因为主机在生成第一随机数之后,需要对第一随机数进行签名与加密,所以,在本实施例中,为了保证后续流程的成功运行,是提供了一种对第一随机数进行签名与加密的具体实施方法。具体的,主机在对第一随机数进行签名与加密之前,首先是利用sm2算法生成相互配对的第一公钥与第一私钥,然后,再将第一公钥发送至ssd;同理,ssd也需要利用sm2算法来生成相互配对的第二公钥与第二私钥,之后,ssd再将第二公钥发送至主机。也即,主机在与ssd进行数据交互之前,主机持有第一私钥和ssd所发送的第二公钥,而ssd持有第二私钥与主机所发送的第一公钥。显然,因为sm2算法具有密码复杂度高、处理速度快和机器能耗小的优点,所以,通过本实施例所提供的技术方案,就可以相对提高第一公钥和第一私钥在生成过程中的生成速率。作为一种优选的实施方式,上述步骤:对第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据的过程,包括:利用第一私钥对第一随机数进行签名,得到第一签名数据,并利用第二公钥对第一随机数进行加密,得到第一加密数据;相应的,对第一加密数据进行解密,得到第一解密数据,并利用第一签名数据对第一解密数据进行验签的过程,包括:利用第二私钥对第一加密数据进行解密,得到第一解密数据,并利用第一公钥和第一签名数据对第一解密数据进行验签。在本实施例中,当主机持有自身所生成的第一私钥与ssd所发送的第二公钥,ssd持有自身所生成的第二私钥与主机所发送的第一公钥之后,主机会利用第一私钥对第一随机数进行签名,得到第一签名数据,并利用ssd所发送的第二公钥对第一随机数进行加密,得到第一加密数据。那么,ssd为了与主机对第一随机数进行签名与加密的过程相适应,当ssd接收到主机所发送的第一签名数据和第一加密数据时,ssd会利用自身所生成的第二私钥对第一加密数据进行解密,得到第一解密数据,并会利用主机所发送的第一公钥和第一签名数据对第一解密数据进行验签。也即,当ssd利用第二私钥对第一加密数据进行解密之后,会得到第一随机数,同时,ssd会利用第一公钥对第一签名数据进行解密,如果解密得到的目标字符与第一随机数一致,则说明ssd对主机的验签成功。作为一种优选的实施方式,上述步骤:利用第一私钥对第一随机数进行签名,得到第一签名数据的过程,包括:对第一随机数进行哈希运算,得到目标哈希值;基于sm2算法,利用第一私钥对目标哈希值进行签名,得到第一签名数据;相应的,利用第一签名数据对第一解密数据进行验签的过程,包括:计算与第一签名数据相对应的目标随机数;基于sm2算法,利用第一公钥判断目标随机数是否与第一随机数一致;若是,则验签成功。在本实施例中,为了进一步增加非法破译者的难度,还对第一随机数进行了哈希运算,将第一随机数转换为与其相对应的目标哈希值。能够想到的是,当对第一随机数进行了哈希运算之后,非法分子在没有获得相应密钥的情况下,很难推测出主机所生成的第一随机数具体是什么字符串,在此情况下,也就很难对主机所发送的目标数据进行篡改,这样就可以显著提高主机在与ssd在进行数据交互时的安全性。当主机对第一随机数进行哈希运算,得到目标哈希值之后,主机是基于sm2算法,利用第一私钥对目标哈希值进行签名,得到第一签名数据。能够想到的是,因为sm2算法不仅具有较强的抗攻击性,而且,sm2算法还具有资源消耗量小、加密速度快的优点,所以,当基于sm2算法,并利用第一私钥对目标哈希值进行签名时,就可以进一步保证第一签名数据的安全性。相应的,当ssd接收到主机所发送的第一签名数据和第一加密数据时,就会先利用第二私钥对第一加密数据进行解密,得到第一解密数据,也即,第一随机数,之后,再会计算与第一签名数据相对应的目标随机数,同时基于sm2算法,利用第一公钥对目标随机数进行解密,然后,判断解密之后的随机数是否与第一随机数一致,如果一致,则说明主机的身份合法,并对主机的验签完毕。显然,通过本实施例所提供的技术方案,可以进一步增加非法分子对主机和ssd进行数据交互时的破译难度。作为一种优选的实施方式,上述步骤:利用第一随机数和第二随机数生成会话密钥的过程,包括:基于sm4-ecb算法,利用第一随机数对第二随机数进行加密,得到会话密钥。在本实施例中,是提供了一种ssd和主机协商会话密钥的具体实现方法,也即,当主机获取得到第一随机数和第二随机数之后,主机和ssd会将第一随机数作为密钥对第二随机数进行sm4-ecb加密,从而得到会话密钥。可以理解的是,因为sm4算法不仅具有较强的加密可靠性,而且,sm4相比于同类加密算法而言,还具有实现简单的优点,所以,当利用sm4-ecb算法来获取会话密钥时,就可以相对降低会话密钥的获取难度。或者,在实际应用中,还可以以其它方式来对第一随机数和第二随机数进行运算来得到会话密钥,比如:md5(md5message-digestalgorithm,消息摘要)算法、哈希算法、des(dataencryptionstandard,数据加密标准)算法等等,此处不作具体赘述。基于上述实施例,本实施例对技术方案作进一步的说明与优化,作为一种优选的实施方式,上述数据交互方法还包括:当ssd接收到目标加密数据时,则对目标加密数据进行解密,得到目标解密数据,并利用hmac算法对目标解密数据的完整性进行校验。在本实施例中,当ssd接收到主机所发送的目标加密数据时,会对目标加密数据进行解密,得到目标解密数据,并会利用hmac(hash-basedmessageauthenticationcode,散列消息鉴别码)算法来对目标解密数据进行校验,如果目标解密数据通过hmac算法的校验,则说明目标解密数据是完整的,没有发生缺失或丢包的现象;如果目标解密数据没有通过hmac算法的校验,则说明目标解密数据不完整,其在传输过程中发生了丢包或遭到非法分子篡改的现象,在此情况下,ssd就可以拒绝对目标解密数据进行响应。显然,通过本实施例所提供的技术方案,就可以进一步提高主机在和ssd进行数据交互时的安全性与可靠性。基于上述实施例所公开的技术内容,本实施例通过一个应用场景实施例对其进行详细说明。请参见图2,图2为本发明实施例所提供的主机与ssd进行数据交互时的示意图。主机在生产时会在芯片内部预置一个sm2的身份密钥对,也即,第一公钥与第一私钥,该身份密钥对为主机的身份信任根,同理,ssd也会预先存储一个有关sm2的身份密钥对,也即,第二公钥和第二私钥。之后,ssd和主机会对对方身份密钥的公钥进行互导,以获取得到对方身份密钥对中的公钥,也即,主机获取ssd所持有的第二公钥,ssd获取主机所持有的第一公钥。当主机获取到ssd所持有的第二公钥,ssd获取得到主机所持有的第一公钥之后,主机首先会产生一个随机数randoma,并对randoma进行签名后,得到签名a,然后,使用第二公钥对随机数randoma和签名a进行加密,得到第一加密数据,并将第一加密数据发送给ssd,也即,主机会向ssd发送安全通道建立请求。当ssd接收到主机所发送的第一加密数据时,会对第一加密数据进行解密,获取随机数randoma和签名之后的随机数randoma,并使用第一公钥对ssd所发送的签名数据进行验签,如果验签通过,ssd会保存随机数randoma。同时,ssd会生成随机数randomb,并使用第二私钥对随机数randomb进行签名,得到签名b,然后,使用第一公钥对随机数randoma、随机数randomb和签名b进行加密,得到第二加密数据,并将第二加密数据发送给主机,也即,ssd相当于是对ssd所发送的安全通道建立请求进行了响应。当主机接收到ssd所发送的第二加密数据时,会对第二加密数据进行解密,并比较解密之后的随机数是否与随机数randoma一致,以及使用第二公钥对签名b进行验签,如果验签通过。主机和ssd会将随机数randoma作为密钥对随机数randomb进行sm4-ecb加密,并将得到的密文作为主机和ssd进行数据交互时的会话密钥s。之后,主机和ssd就会利用协商好的会话密钥s进行数据传输,也即,相当于是在主机和ssd之间建立了可靠传输数据的安全通道。请参见表1和表2,表1为现有技术中ssd的securitysetpassword命令在不经过安全通道时,ssd与主机进行数据传输时的密钥均为明文,表2为利用本发明所提供方法建立安全通道后,ssd的securitysetpassword命令在经过安全通道与主机进行数据交互时均为密文。表1command:datacontent:worddescription000h1..16key(32bytes)---此时key为明文17useridentifier18..255reserved表2command:datacontent:worddescription000h1..16key-enc(32bytes)---此时为采用会话密钥加密后的密文17useridentifier18..33key-hmac(32bytes)---key的hmac值34..255reserved显然,相较于现有技术而言,因为本实施例所提供ssd与主机的数据交互方法中,增加了主机和ssd的身份校验过程以及传输数据的加密过程,所以,利用该方法就可以显著提高主机在和ssd进行数据交互时的安全性。请参见图3,图3为本发明实施例所提供的一种数据交互装置的结构图,该数据交互装置包括:身份认证模块21,用于和ssd进行身份认证;密钥生成模块22,用于当ssd和主机均通过对方的身份认证,则对主机和ssd各自所产生的随机数进行运算生成会话密钥;数据发送模块23,用于利用会话密钥对目标数据进行加密,得到目标加密数据,并利用目标加密数据和ssd进行数据交互。本发明实施例所提供的一种数据交互装置,具有前述所公开的一种数据交互方法所具有的有益效果。请参见图4,图4为本发明实施例所提供的一种数据交互设备的结构图,该数据交互设备包括:存储器31,用于存储计算机程序;处理器32,用于执行计算机程序时实现如前述所公开的一种数据交互方法的步骤。本发明实施例所提供的一种数据交互设备,具有前述所公开的一种数据交互方法所具有的有益效果。相应的,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述所公开的一种数据交互方法的步骤。本发明实施例所提供的一种计算机可读存储介质,具有前述所公开的一种数据交互方法所具有的有益效果。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。以上对本发明所提供的一种数据交互方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
技术特征:1.一种数据交互方法,其特征在于,应用于主机,包括:
和ssd进行身份认证;
若所述ssd和所述主机均通过对方的身份认证,则对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥;
利用所述会话密钥对目标数据进行加密,得到目标加密数据,并利用所述目标加密数据和所述ssd进行数据交互。
2.根据权利要求1所述的数据交互方法,其特征在于,所述和ssd进行身份认证的过程,包括:
生成第一随机数,并对所述第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据;
将所述第一签名数据和所述第一加密数据发送至所述ssd;其中,当所述ssd接收到所述第一签名数据和所述第一加密数据时,则对所述第一加密数据进行解密,得到第一解密数据,并利用所述第一签名数据对所述第一解密数据进行验签,若验签成功,则判定所述主机通过所述ssd的身份认证,生成第二随机数,并对所述第二随机数进行签名与加密,分别得到第二签名数据和第二加密数据,将所述第二签名数据和所述第二加密数据发送至所述主机;
当接收到所述第二签名数据和所述第二加密数据时,则对所述第二加密数据进行解密,得到第二解密数据,并利用所述第二签名数据对所述第二解密数据进行验签,若验签成功,则判定所述ssd通过所述主机的身份认证;
相应的,所述对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥的过程,包括:
对所述第一随机数和所述第二随机数进行运算生成所述会话密钥。
3.根据权利要求2所述的数据交互方法,其特征在于,所述生成第一随机数的过程,包括:
利用物理噪声源生成所述第一随机数。
4.根据权利要求2所述的数据交互方法,其特征在于,还包括:
预先利用sm2算法生成相互配对的第一公钥和第一私钥,并将所述第一公钥发送至所述ssd;
获取所述ssd的第二公钥;其中,所述第二公钥为所述ssd利用所述sm2算法所生成相互配对第二私钥与所述第二公钥中的公钥。
5.根据权利要求4所述的数据交互方法,其特征在于,所述对所述第一随机数进行签名与加密,分别得到第一签名数据和第一加密数据的过程,包括:
利用所述第一私钥对所述第一随机数进行签名,得到所述第一签名数据,并利用所述第二公钥对所述第一随机数进行加密,得到所述第一加密数据;
相应的,所述对所述第一加密数据进行解密,得到第一解密数据,并利用所述第一签名数据对所述第一解密数据进行验签的过程,包括:
利用所述第二私钥对所述第一加密数据进行解密,得到所述第一解密数据,并利用所述第一公钥和所述第一签名数据对所述第一解密数据进行验签。
6.根据权利要求5所述的数据交互方法,其特征在于,所述利用所述第一私钥对所述第一随机数进行签名,得到所述第一签名数据的过程,包括:
对所述第一随机数进行哈希运算,得到目标哈希值;
基于所述sm2算法,利用所述第一私钥对所述目标哈希值进行签名,得到所述第一签名数据;
相应的,所述利用所述第一签名数据对所述第一解密数据进行验签的过程,包括:
计算与所述第一签名数据相对应的目标随机数;
基于所述sm2算法,利用所述第一公钥判断所述目标随机数是否与所述第一随机数一致;
若是,则验签成功。
7.根据权利要求1至6任一项所述的数据交互方法,其特征在于,还包括:
当所述ssd接收到所述目标加密数据时,则对所述目标加密数据进行解密,得到目标解密数据,并利用hmac算法对所述目标解密数据的完整性进行校验。
8.一种数据交互装置,其特征在于,应用于主机,包括:
身份认证模块,用于和ssd进行身份认证;
密钥生成模块,用于当所述ssd和所述主机均通过对方的身份认证,则对所述主机和所述ssd各自所产生的随机数进行运算生成会话密钥;
数据发送模块,用于利用所述会话密钥对目标数据进行加密,得到目标加密数据,并利用所述目标加密数据和所述ssd进行数据交互。
9.一种数据交互设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的一种数据交互方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种数据交互方法的步骤。
技术总结本申请公开了一种数据交互方法,包括:和SSD进行身份认证;若SSD和主机均通过对方的身份认证,则对主机和SSD各自所产生的随机数进行运算生成会话密钥;利用会话密钥对目标数据进行加密,得到目标加密数据,并利用目标加密数据和SSD进行数据交互。显然,相较于现有技术而言,因为本申请所提供SSD与主机的数据交互方法中,增加了主机和SSD的身份校验过程以及传输数据的加密过程,所以,利用该方法就可以显著提高主机在和SSD进行数据交互时的安全性。相应的,本申请所提供的一种数据交互装置、设备及介质,同样具有上述有益效果。
技术研发人员:曾伟
受保护的技术使用者:江苏国科微电子有限公司
技术研发日:2020.12.16
技术公布日:2021.03.12