加解密方法、装置及系统与流程

文档序号:13938069阅读:391来源:国知局
加解密方法、装置及系统与流程
本发明涉及通信领域,尤其涉及加解密方法、装置及装置。
背景技术
:设备配置协议(英文:deviceprovisioningprotocol,缩写:dpp)通常用于发起端设备和响应端设备之间进行验证。其中,在执行验证的过程中,需要使用高级加密标准-综合初始向量(英文:advancedencryptionstandard-syntheticinitializationvector,缩写:aes-siv)机制。在aes-siv机制下,发起端设备至少利用和响应端设备的共享密钥、以及发起端设备生成的矢量(英文:vector)对明文进行加密,获得密文;响应端设备至少利用和发起端设备的共享密钥、以及响应端设备生成的矢量对密文进行解密,获得明文。其中,发起端设备和响应端设备均是至少利用发起端设备的媒体访问控制(英文:mediaaccesscontrol,缩写:mac)地址和响应端设备的mac地址生成矢量。然而,现有技术中,在发起端设备预先不知道响应端设备的mac地址的情况下,发起端设备仅通过扫描响应端设备的二维码获得响应端设备的公钥,进而利用该公钥生成共享密钥,无法获得响应端设备的mac地址,而响应端设备可以获得发起端设备的mac地址和响应端设备的mac地址,因此将导致发起端设备生成的矢量与响应端设备生成的矢量并不相同,从而将导致解密失败,进而导致验证失败。因此,如何在aes-siv机制下,在发起端设备预先不知道响应端设备的mac地址的情况下,完成发起端设备和响应端设备之间的验证,是目前亟待解决的问题。技术实现要素:本发明的实施例提供加解密方法、装置及系统,以至少解决现有的aes-siv机制下,在发起端设备预先不知道响应端设备的mac地址的情况下,无法完成发起端设备和响应端设备之间的验证的问题。一方面,本发明实施例提供一种配置过程中的加解密方法,该加解密方法应用于加解密系统,该方法包括:第一设备获取第二设备的第一公钥;该第一设备至少根据该第二设备的第一公钥,生成第一密钥key和第一公钥哈希hash值;该第一设备至少根据预设的媒体访问控制mac地址、以及该第一设备的mac地址生成第一矢量;该第一设备至少根据该第一key和该第一矢量对第一明文进行加密,生成该第一明文对应的第一密文;若该加解密系统不包含第三设备,该第一设备发送第一消息到该第二设备,该第一消息至少包含该第一密文,该第一公钥hash值和该第一设备的第一公钥;或者,若该加解密系统包含第三设备,该第一设备发送第二消息到第三设备,由该第三设备发送第三消息到该第二设备,该第二消息和该第三消息至少包含该第一密文,该第一公钥hash值和该第一设备的第一公钥。可选的,该第一明文至少包含:该第一设备生成的随机数,和/或,该第一设备的能力信息。基于本发明实施例提供的加解密方法,第一设备在仅获得第二设备的公钥并且不知道第二设备的mac地址的情况下,至少采用预设的mac地址以及第一设备的mac地址生成矢量,进而根据该矢量以及根据第二设备的公钥生成的密钥来实现aes-siv加密,使得第二设备按照同样的过程能生成相同的矢量,并根据该矢量以及根据第一设备的公钥生成的密钥来实现aes-siv解密,而不会因为获得的mac地址信息不同而生成不同矢量从而导致密aes-siv解密失败。在一种可能的设计中,该第一设备获取第二设备的第一公钥包括:该第一设备通过扫描二维码的方式获取该第二设备的第一公钥;或者,该第一设备通过近距离无线通信获取该第二设备的第一公钥;或者,该第一设备通过蓝牙方式获取该第二设备的第一公钥;或者,该第一设备通过临近感知网络nan通信获取该第二设备的第一公钥。在一种可能的设计中,该第一设备至少根据该第二设备的第一公钥,生成第一key,包括:该第一设备可以至少利用该第二设备的第一公钥和该第一设备的第一私钥,执行密钥交换算法生成共享密钥作为第一key;或者,该第一设备至少利用该第二设备的第一公钥和该第一设备的第一私钥,执行密钥交换算法生成共享密钥,进一步结合该共享密钥和第三明文生成衍生key作为第一key。示例性的,该密钥交换算法可以包括:dh算法,或者基于椭圆曲线的dh算法。在一种可能的设计中,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量,包括:若该第一设备未获取到该第二设备的mac地址,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量。在一种可能的设计中,该方法还包括:若该第一设备获取到该第二设备的mac地址,该第一设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成第一矢量。在一种可能的设计中,该第一设备获取该第二设备的mac地址,包括:该第一设备通过扫描二维码的方式获取该第二设备的mac地址;或者,该第一设备通过近距离无线通信获取该第二设备的mac地址;或者,该第一设备通过蓝牙方式获取该第二设备的mac地址;或者,该第一设备通过临近感知网络nan通信获取该第二设备的mac地址。在一种可能的设计中,该第一消息或者该第二消息和该第三消息还携带第一指示信息,该第一指示信息用于指示该第一设备是否获得了该第二设备的mac地址,或者,用于指示该第一设备生成该第一矢量的方式,其中,该第一设备生成该第一矢量的方式包括:该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成该第一矢量,或者,该第一设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成该第一矢量。这样,第二设备可以根据该第一指示信息确定用何种方式去生成第一矢量,进而使得第二设备可以解密成功。在一种可能的设计中,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量,包括:若该加解密系统不包含该第三设备,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量。在一种可能的设计中,该方法还包括:若该加解密系统包含该第三设备,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址和该第三设备的mac地址生成该第一矢量。在一种可能的设计中,该预设的mac地址为通配符地址,或者该预设的mac地址为预先设定的固定值。在一种可能的设计中,该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量,包括:该第一设备将该预设的mac地址、以及该第一设备的mac地址按照预设顺序排列,获得该第一矢量。在一种可能的设计中,该方法还包括:若该加解密系统不包含该第三设备,该第一设备接收该第二设备发送的第四消息,该第四消息携带第二密文、第三密文和该第二设备的第二公钥;或者,若该加解密系统包含该第三设备,该第一设备接收该第二设备向该第三设备发送第五消息后,由该第三设备发送的第六消息,该第五消息和该第六消息携带第二密文、第三密文和该第二设备的第二公钥;该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量;该第一设备至少根据该第一key和该第二矢量对该第二密文进行解密,生成第二明文;该第一设备至少根据该第二设备的第二公钥,生成第四key;该第一设备至少根据该第四key和该第二矢量对该第三密文进行解密,生成第二公钥hash值;该第二设备根据该第二明文验证该第二公钥hash值。优选的,该第二明文至少包含:该第一设备生成的随机数、以及该第二设备生成的随机数。在一种可能的设计中,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:该第一设备将该第一设备的mac地址、以及该第二设备的mac地址按照预设顺序排列,获得该第二矢量。在一种可能的设计中,该第一设备至少根据该第二设备的第二公钥,生成第四key,包括:该第一设备至少利用该第二设备的第二公钥、该第一设备的第一公钥和该第一设备的第一私钥,执行密钥交换算法生成共享密钥作为第四key;或者,该第二设备至少利用该第二设备的第二公钥、该第一设备的第一公钥和该第一设备的第一私钥,执行密钥交换算法生成共享密钥,进一步结合该共享密钥和该第二明文成衍生key作为第四key。在一种可能的设计中,该第四消息或者该第五消息和该第六消息还携带第二指示信息,该第二指示信息用于指示该第一设备是否获得了该第二设备的mac地址,或者,用于指示该第二设备生成该第二矢量的方式,其中,该第二设备生成该第二矢量的方式包括:该第二设备至少根据预设的mac地址、以及该第一设备的mac地址生成该第二矢量,或者,该第二设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成该第二矢量。这样,第一设备可以根据该第二指示信息确定用何种方式去生成第二矢量,进而使得第一设备可以解密成功。在一种可能的设计中,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:根据该第二指示信息,若该第一设备获取到该第二设备的mac地址,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量。在一种可能的设计中,该方法还包括:根据该第二指示信息,若该第一设备未获取到该第二设备的mac地址,该第一设备至少根据该预设的mac地址、以及该第二设备的mac地址生成第二矢量。在一种可能的设计中,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:若该加解密系统不包含该第三设备,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量。在一种可能的设计中,该方法还包括:若该加解密系统包含该第三设备,该第一设备至少根据该第一设备的mac地址、该第三设备的mac地址、以及该第二设备的mac地址生成第二矢量。另一方面,本发明实施例提供一种配置过程中的加解密方法,该加解密方法应用于加解密系统,该方法包括:若该加解密系统不包含第三设备,该第二设备接收该第一设备发送的第一消息该第一消息至少包含该第一密文,该第一公钥hash值和该第一设备的第一公钥;或者,若该加解密系统包含第三设备,该第二设备接收该第一设备向该第三设备发送第二消息后,由该第三设备发送的第三消息,该第二消息和该第三消息至少包含该第一密文,该第一公钥hash值和该第一设备的第一公钥;该第二设备至少根据该第二设备的第一公钥验证该第一公钥hash值;若验证成功,该第二设备至少根据预设的媒体访问控制mac地址、以及该第一设备的mac地址生成第一矢量;该第二设备至少根据该第一设备的第一公钥,生成第二密钥key;该第二设备至少根据该第二key和该第一矢量对该第一密文进行解密,生成该第一密文明文对应的第一明文。优选的,第一密文至少包含:该第一设备生成的随机数,和/或,该第一设备的能力信息。基于本发明实施例提供的加解密方法,第一设备在仅获得第二设备的公钥并且不知道第二设备的mac地址的情况下,至少采用预设的mac地址以及第一设备的mac地址生成矢量,进而根据该矢量以及根据第二设备的公钥生成的密钥来实现aes-siv加密,使得第二设备按照同样的过程能生成相同的矢量,并根据该矢量以及根据第一设备的公钥生成的密钥来实现aes-siv解密,而不会因为获得的mac地址信息不同而生成不同矢量从而导致密aes-siv解密失败。在一种可能的设计中,该第二设备至少根据该第一设备的第一公钥,生成第二key,包括:该第二设备至少利用该第一设备的第一公钥和该第二设备的第一私钥,执行密钥交换算法生成共享密钥作为第二key;或者,该第二设备至少利用该第一设备的第一公钥和该第二设备的第一私钥,执行密钥交换算法生成共享密钥,进一步结合该共享密钥和第三明文生成衍生key作为第二key。示例性的,该密钥交换算法包括:dh算法,或者基于椭圆曲线的dh算法。在一种可能的设计中,该第一消息或者该第二消息和该第三消息还携带第一指示信息,该第一指示信息用于指示该第一设备是否获得了该第二设备的mac地址,或者,用于指示该第一设备生成该第一矢量的方式,其中,该第一设备生成该第一矢量的方式包括:该第一设备至少根据预设的mac地址、以及该第一设备的mac地址生成该第一矢量,或者,该第一设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成该第一矢量。这样,第二设备可以根据该第一指示信息确定用何种方式去生成第一矢量,进而使得第二设备可以解密成功。比如:一种可能的设计中,该第二设备至少根据预设的媒体访问控制mac地址、以及该第一设备的mac地址生成第一矢量,包括:根据该第一指示信息,若该第一设备未获取到该第二设备的mac地址,该第二设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量。一种可能的设计中,该方法还包括:根据该第一指示信息,若该第一设备获取到该第二设备的mac地址,该第二设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成第一矢量。一种可能的设计中,该第二设备至少根据预设的媒体访问控制mac地址、以及该第一设备的mac地址生成第一矢量,包括:若该加解密系统不包含该第三设备,该第二设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量。一种可能的设计中,该方法还包括:若该加解密系统包含该第三设备,该第二设备至少根据预设的mac地址、以及该第一设备的mac地址和该第三设备的mac地址生成该第一矢量。一种可能的设计中,该预设的mac地址为通配符地址,或者该预设的mac地址为预先设定的固定值。一种可能的设计中,该第二设备至少根据预设的mac地址、以及该第一设备的mac地址生成第一矢量,包括:该第二设备将该预设的mac地址、以及该第一设备的mac地址按照预设顺序排列,获得该第一矢量。一种可能的设计中,该方法还包括:该第二设备至少根据该第一设备的第一公钥,生成第三key;该第二设备至少根据该第一设备生成的随机数以及该第二设备生成的随机数,生成第二公钥hash值;该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量;该第二设备至少根据该第二key和该第二矢量对第二明文进行加密,生成该第二明文对应的第二密文;以及,该第二设备至少根据该第三key和该第二矢量对该第二公钥hash值进行加密,生成该第二公钥hash值对应的第三密文;若该加解密系统不包含该第三设备,该第二设备向该第一设备发送第四消息,该第四消息携带第二密文、第三密文和该第二设备的第二公钥;或者,若该加解密系统包含该第三设备,该第二设备向该第三设备发送第五消息,由该第三设备向该第一设备发送第六消息,该第五消息和该第六消息携带第二密文、第三密文和该第二设备的第二公钥。优选的,该第二明文至少包含:该第一设备生成的随机数、以及该第二设备生成的随机数。一种可能的设计中,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:该第二设备将该第一设备的mac地址、以及该第二设备的mac地址按照预设顺序排列,获得该第二矢量。一种可能的设计中,该第二设备至少根据该第一设备的第一公钥,生成第三key,包括:该第二设备至少利用该第一设备的第一公钥、该第二设备的第一私钥以及该第二设备的第二私钥,执行密钥交换算法生成共享密钥作为第三key;或者,该第二设备至少利用该第一设备的第一公钥、该第二设备的第一私钥以及该第二设备的第二私钥,执行密钥交换算法生成共享密钥,进一步结合该共享密钥和第二明文生成衍生key作为第三key。一种可能的设计中,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:若该第一设备获取到该第二设备的mac地址,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量。一种可能的设计中,该方法还包括:若该第一设备未获取到该第二设备的mac地址,该第二设备至少根据该预设的mac地址、以及该第二设备的mac地址生成第二矢量。一种可能的设计中,该第四消息或者该第五消息和该第六消息还携带第二指示信息,该第二指示信息用于指示该第一设备是否获得了该第二设备的mac地址,或者,用于指示该第二设备生成该第二矢量的方式,其中,该第二设备生成该第二矢量的方式包括:该第二设备至少根据预设的mac地址、以及该第一设备的mac地址生成该第二矢量,或者,该第二设备至少根据该第二设备的mac地址、以及该第一设备的mac地址生成该第二矢量。这样,第一设备可以根据该第二指示信息确定用何种方式去生成第二矢量,进而使得第一设备可以解密成功。这样,第一设备可以根据该第二指示信息确定用何种方式去生成第二矢量,进而使得第一设备可以解密成功。一种可能的设计中,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量,包括:若该加解密系统不包含该第三设备,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第二矢量。一种可能的设计中,该方法还包括:若该加解密系统包含该第三设备,该第二设备至少根据该第一设备的mac地址、该第三设备的mac地址、以及该第二设备的mac地址生成第二矢量。又一方面,本发明实施例提供了一种第一设备,该第一设备具备实现上述方法实施例中第一设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个上述功能相应的模块。在一种可能的设计中,该第一设备的结构中包括处理器和收发器,该处理器被配置为支持该第一设备实现上述方法实施例中第一设备行为。该收发器用于支持该第一设备与其他网元之间的通信。该第一设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第一设备必要的程序指令和数据。又一方面,本发明实施例提供了一种第二设备,该第二设备具备实现上述方法实施例中第二设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。在一种可能的设计中,该第二设备的结构中包括处理器和收发器,该处理器被配置为支持该第二设备实现上述方法实施例中第二设备行为。该收发器用于支持该第二设备与其他网元之间的通信。该第二设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第二设备必要的程序指令和数据。又一方面,本发明实施例提供了一种加解密系统,该加解密系统包括上述方面所述的第一设备和上述方面所述的第二设备。又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第一设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第二设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。相较于现有技术,本发明实施例提供的技术方案中,第一设备在仅获得第二设备的公钥并且不知道第二设备的mac地址的情况下,至少采用预设的mac地址以及第一设备的mac地址生成矢量,进而根据该矢量以及根据第二设备的公钥生成的密钥来实现aes-siv加密,使得第二设备按照同样的过程能生成相同的矢量,并根据该矢量以及根据第一设备的公钥生成的密钥来实现aes-siv解密,而不会因为获得的mac地址信息不同而生成不同矢量从而导致密aes-siv解密失败。再一方面,本发明实施例提供一种加密方法,该加密方法应用于加解密系统,该加解密系统包括第一设备、第二设备和至少一个第三设备,其中,该第一设备通过该至少一个第三设备与第二设备通信,该方法包括:该第一设备与该第二设备之间获得共享密钥;该第一设备至少根据该第一设备的媒体访问控制mac地址、以及该第二设备的mac地址生成第一增加的验证数据aad;该第一设备至少根据该第一设备的mac地址生成第一随机数nonce;该第一设备至少根据该共享密钥、该第一aad、该第一随机数和第一明文,生成第一校验值mic;该第一设备至少根据该共享密钥、该第一aad、以及该第一随机数对该第一明文和该第一mic进行加密,生成第一密文;该第一设备向该至少一个第三设备中的其中一个第三设备发送第一消息,该第一消息携带该第一密文。本发明实施例提供了一种加解密方法,能够在ccmp机制下,使得relay设备不进行解密和加密也能实现安全高效的转发,并且使得响应端设备能对中转后的信息进行正确的解密。在一种可能的设计中,该第一设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第一aad,包括:该第一设备将计数器模式密码块链消息验证码协议ccmp机制定义的aad结构中的发送端地址ta和接收端地址ra区域删除或填写预定明文,在该aad结构中的源地址sa填写该第一设备的mac地址,在该aad结构中的目标地址da填写该第二设备的mac地址。在一种可能的设计中,该第一设备至少根据该第一设备的mac地址生成第一随机数nonce,包括:该第一设备将计数器模式密码块链消息验证码协议ccmp机制定义的随机数结构中的发送端地址ta修改为源地址sa,并且在该sa中填写该第一设备的mac地址。在一种可能的设计中,该第一消息中还携带第一指示信息,该第一指示信息用于指示该至少一个第三设备不执行加解密。再一方面,本发明实施例提供一种解密方法,该解密方法应用于加解密系统,该加解密系统包括第一设备、第二设备和至少一个第三设备,其中,该第一设备通过该至少一个第三设备与第二设备通信,该方法包括:该第二设备与该第一设备之间获得共享密钥;该第二设备接收该至少一个第三设备中的其中一个第三设备发送的第二消息,该第二消息携带第一密文;该第二设备至少根据该第一设备的媒体访问控制mac地址、以及该第二设备的mac地址生成第一增加的验证数据aad;该第二设备至少根据该第一设备的mac地址生成第一随机数nonce;该第二设备至少根据该共享密钥、该第一aad、以及该第一随机数nonce对该第一密文进行解密,生成第一明文和第一校验值mic;该第二设备至少根据该共享密钥、该第一aad、该第一随机数和该第一明文,验证该第一mic。本发明实施例提供了一种加解密方法,能够在ccmp机制下,使得relay设备不进行解密和加密也能实现安全高效的转发,并且使得响应端设备能对中转后的信息进行正确的解密。在一种可能的设计中,该第二设备至少根据该第一设备的mac地址、以及该第二设备的mac地址生成第一aad,包括:该第二设备将计数器模式密码块链消息验证码协议ccmp机制定义的aad结构中的发送端地址ta和接收端地址ra区域删除或填写预定明文,在该aad结构中的源地址sa填写该第一设备的mac地址,在该aad结构中的目标地址da填写该第二设备的mac地址。在一种可能的设计中,该第二设备至少根据该第一设备的mac地址生成第一随机数nonce,包括:该第一设备将计数器模式密码块链消息验证码协议ccmp机制定义的随机数结构中的发送端地址ta修改为源地址sa,并且在该sa中填写该第一设备的mac地址。又一方面,本发明实施例提供了一种第一设备,该第一设备具备实现上述方法实施例中第一设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。在一种可能的设计中,该第一设备的结构中包括处理器和收发器,该处理器被配置为支持该第一设备实现上述方法实施例中第一设备行为。该收发器用于支持该第一设备与其他网元之间的通信。该第一设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第一设备必要的程序指令和数据。又一方面,本发明实施例提供了一种第二设备,该第二设备具备实现上述方法实施例中第二设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。在一种可能的设计中,该第二设备的结构中包括处理器和收发器,该处理器被配置为支持该第二设备实现上述方法实施例中第二设备行为。该收发器用于支持该第二设备与其他网元之间的通信。该第二设备还可以包括存储器,该存储器用于与处理器耦合,其保存该第二设备必要的程序指令和数据。又一方面,本发明实施例提供了一种加解密系统,该加解密系统包括上述方面所述的第一设备和上述方面所述的第二设备。又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第一设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。又一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第二设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。相较于现有技术,本发明实施例提供的技术方案中,能够在ccmp机制下,使得relay设备不进行解密和加密也能实现安全高效的转发,并且使得响应端设备能对中转后的信息进行正确的解密。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有bss网络中的转发示意图;图2为本发明实施例提供的加解密系统的结构示意图;图3为本发明实施例提供的ap/sta的硬件结构示意图;图4为本发明实施例提供的一种加解密方法的交互示意图;图5为本发明实施例提供的另一种加解密方法的交互示意图;图6为本发明实施例提供的另一种加解密系统的结构示意图;图7为本发明实施例提供的又一种加解密方法的交互示意图;图8为本发明实施例提供的一种第一设备的结构示意图;图9为本发明实施例提供的一种第二设备的结构示意图;图10为本发明实施例提供的另一种第一设备或第二设备的结构示意图;图11为本发明实施例提供的又一种第一设备的结构示意图;图12为本发明实施例提供的又一种第二设备的结构示意图;图13为本发明实施例提供的又一种第一设备或第二设备的结构示意图。具体实施方式为了下述各实施例的描述清楚简洁,首先给出相关背景的简要介绍:一、无线保真(英文:wireless-fidelity,缩写:wi-fi)技术:wi-fi技术是一种短距离无线通信技术。wi-fi技术的基础标准是电气和电子工程师协会(英文:instituteofelectricalandelectronicsengineers,缩写:ieee)制定的802.11协议。wi-fi技术的常用结构是有一个中心节点,叫做接入点(英文:accesspoint,缩写:ap),它通过周期性发送信标(英文:beacon)帧,向外界宣告网络的存在,其他节点叫做站点(英文:station,缩写:sta),通过主动发送探测请求(英文:proberequest)然后接收到探测响应(英文:proberesponse)或者被动接收到beacon而知道ap的存在,然后通过跟ap进行消息交互而加入ap的网络。ap和sta组建的网络叫基本服务集合(英文:basicserviceset,缩写:bss),即,bss中包含ap设备和与ap建立连接的sta设备。sta与ap之间建立安全连接后,对数据进行加密传输。二.aes-siv机制:1、aes-siv定义的加密过程,以发起端设备为例:首先,发起端设备至少利用发起端设备的mac地址和响应端设备的mac地址生成矢量(英文:vector);或称为,发起端设备至少传递发送端设备的mac地址和响应端设备的mac地址到vector。其中,发起端设备的mac地址和响应端设备的mac地址可以称为关联数据(英文:vectorsofassociateddata)。vector与associateddata的关系为:vector包含了关联数据。具体生成或传递的过程为:按顺序排列至少发起端设备的mac地址,和响应端设备的mac地址以生成或传递vector。进而,发起端设备利用和响应端设备的共享密钥以及vector对明文(即待加密的数据)进行加密,生成明文对应的密文(英文:ciphertext)。需要说明的是,在一些描述中,aes-siv机制中的矢量vector也可以称之为增加的验证数据(英文:additionalauthenticationdata,缩写:aad))。为了方便说明,本发明实施例中统一用vector进行相关描述,其中,vector可以用aad进行替换,在此进行统一说明,以下不再赘述。2、aes-siv定义的解密过程,以响应端设备为例:首先,响应端设备至少利用响应端设备的mac地址和发起端设备的mac地址生成vector;或称为,发起端设备至少传递发送端设备的mac地址和响应端设备的mac地址到vector。其中,响应端设备的mac地址和发起端设备的mac地址可以称为关联数据(英文:vectorsofassociateddata)。vector与associateddata的关系为:vector包含了关联数据。具体生成或传递的过程为:按顺序排列至少响应端设备的mac地址,和发起端设备的mac地址以生成或传递vector。进而,响应端设备利用和发起端设备的共享密钥以及vector对密文(即待解密的数据)进行解密,生成密文对应的明文。三.dpp:dpp发生在发起端设备与响应端设备之间,用于设备之间进行验证(发起端设备验证响应端设备,或,响应端设备验证发起端设备,或者,互相验证)。验证通过后,由发起端设备向响应端设备发送加密的配置信息。其中,dpp设备在执行验证过程中,需要使用aes-siv机制,原因在于aes-siv解密过程本身具有验证作用。因为aes-siv在解密过程中会对解密的信息进行比较,如果匹配,就输出解密的明文,如果不匹配就输出fail,表示解密失败。具体比较过程为:将siv作为初始的计数器(英文:counter)来解密密文,解密过程中输出字符串(英文:stringtovector,缩写:s2v),s2v用于和siv进行比较,如果匹配,就输出解密明文,表示解密成功,如果不匹配就输出fail,表示解密失败。需要说明的是,在一些描述中,发起端设备也可以称之为配置器,响应端设备也可以称之为被配置器;或者,在一些描述中,发起端设备也可以称之为源设备,响应端设备也可以称之为目标设备。为了方便说明,本发明实施例中统一用发起端设备与响应端设备进行相关描述,其中,发起端设备可以用配置器或源设备进行替换,响应端设备可以用被配置器或目标设备进行替换,在此进行统一说明,以下不不再赘述。四、relay(中继)技术:如图1所示,在bss网络中,relay设备同时具备两种角色:对于ap来说,relay设备充当sta角色与ap关联;对于sta来说,relay设备充当ap角色与sta关联。首先,sta通过relay设备发送消息到ap时,消息格式如下:sta在发送的消息中的mac头中携带4个地址,如表一所示,分别是a1、a2、a3、a4地址。a1表示接收端地址(英文:receivingaddress,缩写:ra),为relay设备的地址;a2表示发送端地址(英文:transmittingaddress,缩写:ta),为sta的地址;a3表示目标端地址(英文:destinationaddress,缩写:da),为ap的地址;a4表示源地址(英文:sourceaddress,缩写:sa),为sta的地址。其中,a4地址为可选地址。表一relay设备staapstaa1a2a3a4relay设备接收消息时,根据消息中的地址信息进行转发:relay设备首先判断ra(a1)地址是不是发给自己的,如果不是,丢弃该消息。如果是,判断da(a3)地址是不是可达的目的地址,如果可达,relay设备进行转发。比如,a3地址如果是ap,relay设备判断可达,则向ap转发。其次,ap通过relay设备发送消息到sta时,消息格式如下:ap在发送的消息中的mac头中携带4个地址,如表二所示,分别是a1、a2、a3、a4地址。a1表示ra地址,为relay设备的地址;a2表示ta地址,为ap的地址;a3表示da地址,为ap的地址;a4表示sa地址,为ap的地址。其中,a4地址为可选地址。表二relay设备apstaapa1a2a3a4relay设备接收消息时,根据消息中的地址信息进行转发:relay设备首先判断ra(a1)地址是不是发给自己的,如果不是,丢弃该消息。如果是,判断da(a3)地址是不是可达的目的地址,如果可达,relay设备进行转发。比如,a3地址如果是sta,relay设备判断可达,则向sta转发。如
背景技术
中所述,现有技术中,在采用aes-siv进行ddp验证的过程中,在发起端设备预先不知道响应端设备的mac地址的情况下,发起端设备仅通过扫描响应端设备的二维码获得响应端设备的公钥,进而利用该公钥生成共享密钥,无法获得响应端设备的mac地址,而响应端设备可以获得发起端设备的mac地址和响应端设备的mac地址,因此将导致发起端设备生成的矢量与响应端设备生成的矢量并不相同,从而将导致解密失败,进而导致验证失败。因此,如何在aes-siv机制下,在发起端设备预先不知道响应端设备的mac地址的情况下,完成发起端设备和响应端设备之间的验证,是目前亟待解决的问题。为了解决该问题,本发明实施例提供加解密方法,装置及系统,能够在aes-siv机制下,在发起端设备预先不知道响应端设备的mac地址的情况下,完成发起端设备和响应端设备之间的验证。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。需要说明的是,本文中的“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。如本申请所使用的术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个数据包是指两个或两个以上的数据包。需要说明的是,本发明实施例中,除非另有说明,“至少”的含义是指除了所限定的信息,还可能包含其它的信息。例如,至少包含a是指除了包含a,还可能包含b或c等。需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。需要说明的是,本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。如图2所示,为本发明实施例提供的加解密系统20的架构示意图,包括:第一设备201和第二设备202。其中,第一设备201与第二设备202可能直接通信,也可能通过第三设备203的转发进行通信,本发明实施例对此不作具体限定。具体的,本发明实施例中的第三设备203为relay设备。第一设备201可以是发起端设备,第二设备202可以是响应端设备;或者,第一设备201可以是响应端设备,第二设备202可以是发起端设备;本发明实施例对此不作具体限定。示例性的,第一设备201可以为上述图1中的ap,第二设备202可以是上述图1中的sta;或者,第一设备201可以是上述图1中的sta,第二设备202可以是上述图1中的ap;或者,第一设备201可以是临近感知网络(英文:neighborawarenessnetwork,缩写:nan)设备,第二设备202可以是nan设备;或者,第一设备201可以是组长设备(英文:groupowner,缩写:go),第二设备202可以是客户设备(英文:client);或者,第一设备201可以是client,第二设备202可以是go,等等,本发明实施例对此不作具体限定。假设第一设备201为上述图1中的ap,第二设备202为上述图1中的sta,则如图3所示,为本发明实施例提供的ap或sta的硬件结构示意图,包括:处理器301、射频电路302、天线303、存储器304、基带电路305和总线306。其中,处理器301、射频电路302、天线303、存储器304和基带电路305通过总线306连接。存储器304可用于存储软件程序以及模块,处理器301通过运行存储在存储器304的软件程序以及模块,从而执行ap或sta的各种功能应用以及数据处理。基带电路305用于完成上下行基带数据处理功能。射频电路302可用于通过天线303接收和发送信号。通常,射频电路302包括但不限于至少一个放大器、收发信机、耦合器、低噪声放大器(英文:lownoiseamplifier,缩写:lna)、双工器等。此外,射频电路302还可以通过无线通信网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文:globalsystemofmobilecommunication,缩写:gsm)、通用分组无线服务(英文:generalpacketradioservice,缩写:gprs)、码分多址(英文:codedivisionmultipleaccess,缩写:cdma)、宽带码分多址(英文:widebandcodedivisionmultipleaccess,缩写:wcdma)、长期演进(英文:longtermevolution,缩写:lte)、电子邮件、短消息服务(英文:shortmessagingservice,缩写:sms)等。下面将基于图2所示的加解密系统和图3所示的ap或sta硬件结构,对本发明实施例提供的加解密方法进行介绍。假设在图2中,第一设备201为发起端设备,第二设备202为响应端设备,并且发起端设备预先不知道响应端设备的mac地址,则如图4所示,为本发明实施例提供的一种加解密方法的交互示意图,包括步骤s401-s410:s401、第一设备获取第二设备的第一公钥。具体的,第一设备可以通过扫描二维码的方式获得第二设备的第一公钥,即,二维码中包含了第二设备的第一公钥;或者,通过近距离无线通信(英文:nearfieldcommunication,缩写:nfc)获得第二设备的第一公钥;或者,通过蓝牙方式获得第二设备的第一公钥;或者,通过临近感知网络(英文:neighborawarenessnetwork,缩写:nan)通信获得第二设备的第一公钥。本发明实施例对第一设备如何获取第二设备的第一公钥的方式不作具体限定。s402、第一设备至少根据第二设备的第一公钥,生成第一密钥(英文:key)和第一公钥哈希(英文:hash)值。具体的,第一设备可以根据第二设备的第一公钥,采用hash算法生成第一公钥hash值。其中,哈希算法是业界共知的散列算法,本发明实施例在此不再赘述。具体的,第一设备可以至少利用第二设备的第一公钥和第一设备的第一私钥,执行密钥交换算法生成共享密钥作为第一key;或者,第一设备在利用第二设备的公钥和第一设备的第一私钥,执行密钥交换算法生成共享密钥之后,进一步结合共享密钥和第三明文生成衍生key,作为第一key。本发明实施例对第一设备根据第二设备的第一公钥,生成第一key的方式不作具体限定。其中,密钥交换算法可以为(diffie-hellman,缩写:dh)算法;或者,基于椭圆曲线的dh(英文:ellipticcurvecryptosystemsdiffie-hellman,缩写:ecdh)算法,本发明实施例对此不作具体限定。其中,第三明文是预设的信息,比如,第一中间密钥(英文:firstintermediatekey)。s403、第一设备至少根据预设的mac地址、以及第一设备的mac地址生成第一矢量。具体的,该预设的mac地址可以为通配符(英文:wildcard)地址,或者该预设的mac地址可以为预先设定的固定值。具体的,步骤s403具体可以包括:第一设备至少将预设的mac地址、以及第一设备的mac按照预设顺序排列,获得第一矢量。比如,假设预设的mac地址为wildcard地址,则第一矢量可以如表三所示:表三wildcard地址第一设备的mac地址需要说明的是,表三仅是示例性的给出一种排列方式,当然,也可以按照第一设备的mac地址在前,wildcard地址在后的方式排列,本发明实施例对此不作具体限定。s404、第一设备至少根据第一key和第一矢量对第一明文进行加密,生成第一明文对应的第一密文。具体的,第一明文至少可以包含:第一设备生成的随机数,和/或,第一设备的能力信息(英文:capabilities)。其中,该随机数可用于生成后续的第三key,该能力信息用于第一设备与第二设备之间确定设备角色,比如确定作为发起端设备,或,确定作为响应端设备。s405、第一设备向第二设备发送第一数据包,该第一数据包包括第一密文、第一公钥hash值和第一设备的第一公钥。如上所述,第一设备和第二设备可能直接通信,即第一设备直接向第二设备发送第一数据包;也可能通过第三设备与第二设备通信,即第一设备通过第三设备向第二设备转发第一数据包,本发明实施例对此不作具体限定。具体的,当第一设备和第二设备直接通信时,第一数据包可以通过第一消息携带,即步骤s405具体可以包括:第一设备向第二设备发送第一消息,第一消息中携带第一密文、第一公钥hash值和第一设备的第一公钥。其中,该第一消息为广播发送的消息,该第一消息的mac头中的ta为第一设备的mac地址,ra为广播地址。当第一设备通过第三设备与第二设备通信时,第一数据包首先通过第二消息发送给第三设备,再由第三设备通过第三消息发送给第二设备,即,步骤s405具体可以包括:第一设备向第三设备发送第二消息,第二消息中携带第一密文、第一公钥hash值和第一设备的第一公钥;进而,由第三设备向第二设备发送第三消息,第三消息中携带第一密文、第一公钥hash值和第一设备的第一公钥。其中,该第二消息的mac头中的ta为第一设备的mac地址,ra为第三设备的mac地址,可进一步设置sa为第一设备的mac地址,da为第二设备的mac地址。该第三消息为广播发送的消息,该第三消息的mac头中的ta为第三设备的mac地址,ra为广播地址,可进一步设置sa为第一设备的mac地址,da为第二设备的mac地址。需要说明的是,本发明实施例中,广播地址与通配符地址是同一个地址,因此当上述预设的mac地址具体为通配符地址时,第二设备可以根据第一消息或第三消息中的ra获得预设的mac地址;当上述预设的mac地址不是通配符地址时,需要提前在第二设备中配置预设的mac地址。具体的,上述第一消息、第二消息或第三消息的消息格式可以为action消息格式;或者,现有管理帧格式或控制帧格式;或者,新定义的消息格式;或者,其他新定义的帧格式,本发明实施例对此不作具体限定。示例性的,可以在action消息中携带dpp的信息元素(英文:informationelement,缩写:ie),包括:第一密文、第一公钥hash值和第一设备的第一公钥。s406、第二设备接收第一设备发送的第一数据包。具体的,如步骤s405中所述,当第一设备和第二设备直接通信时,第一数据包可以通过第一消息携带,相应的,步骤s406具体可以包括:第二设备接收第一设备发送的第一消息,第一消息中携带第一密文、第一公钥hash值和第一设备的第一公钥。具体的,如步骤s405中所述,当第一设备通过第三设备与第二设备通信时,第一数据包通过第二消息和第三消息携带,相应的,步骤s406具体可以包括:第二设备接收第三设备发送的第三消息,第三消息中携带第一密文、第一公钥hash值和第一设备的第一公钥。s407、第二设备验证第一公钥hash值。具体的,第二设备可以根据第二设备的第一公钥,采用hash算法生成相应的公钥hash值。然后,将自己生成的公钥hash值与第一数据包中携带的第一公钥hash值进行对比,如果相同,表示验证正确,继续执行后续的步骤s408;如果不同,表示验证不正确,丢弃该第一数据包,结束执行。s408、第二设备至少根据第一设备的第一公钥,生成第二key。具体的,第二设备可以至少利用第一设备的第一公钥和第二设备的第一私钥,执行密钥交换算法生成共享密钥作为第二key;或者,第二设备在利用第一设备的第一公钥和第二设备的第一私钥,执行密钥交换算法生成共享密钥之后,进一步结合共享密钥和第三明文生成衍生key,作为第二key。本发明实施例对第二设备根据第一设备的第一公钥,生成第二key的方式不作具体限定。其中,密钥交换算法和第三明文的相关描述具体可参考步骤s402中的描述,此处不再赘述。需要说明的是,由于第一设备在生成第一key和第二设备在生成第二key时均采用了密钥交换算法,根据密钥交换算法自身的特性可以得出,第一key和第二key是相同的。s409、第二设备至少根据预设的mac地址、以及第一设备的mac地址生成第一矢量。具体的,第二设备生成第一矢量的方式具体可参考步骤s403中第一设备生成第一矢量的描述,此处不再赘述。s410、第二设备至少根据第二key和第一矢量对第一密文进行解密,生成第一密文对应的第一明文。具体的,解密的信息(即第一密文)与上述的第一明文的信息相对应,即通常至少包含:第一设备生成的随机数,和/或,第一设备的能力信息(英文:capabilities)。其中,该随机数可用于生成后续的第三key,该能力信息用于第一设备与第二设备之间确定设备角色,比如确定作为发起端设备,或,确定作为响应端设备。在第二设备判断解密成功后,即实现了发起端设备预先不知道响应端设备的mac地址的情况下,响应端设备对发起端设备的验证,此时,第二设备已经获知第一设备的mac地址,第一阶段的dpp配置完成,进而可以继续执行后续的第二阶段的dpp配置步骤。其中,如图4所示,本发明实施例可选的步骤包括s411-s421:s411、第二设备至少根据第一设备的第一公钥,生成第三key。具体的,第二设备可以至少利用第一设备的第一公钥、第二设备的第一私钥以及第二设备的第二私钥,执行密钥交换算法生成共享密钥作为第三key。或者,第二设备在至少利用第一设备的第一公钥、第二设备的第一私钥以及第二设备的第二私钥,执行密钥交换算法生成共享密钥之后,进一步结合共享密钥和第二明文生成衍生key,作为第三key。本发明实施例对第二设备根据第一设备的第一公钥,生成第三key的方式不作具体限定。其中,密钥交换算法具体可参考步骤s402中的描述,此处不再赘述。其中,第二明文至少可以包含:第一设备生成的随机数、以及第二设备生成的随机数。s412、第二设备至少根据第一设备生成的随机数以及第二设备生成的随机数,生成第二公钥hash值。s413、第二设备至少根据第一设备的mac地址、以及第二设备的mac地址生成第二矢量。具体的,步骤s413具体可以包括:第二设备至少将第一设备的mac地址、以及第二设备的mac地址按照预设顺序排列,获得第二矢量。比如,第二矢量可以如表四所示:表四第二设备的mac地址第一设备的mac地址需要说明的是,表四仅是示例性的给出一种排列方式,当然,也可以按照第一设备的mac地址在前,第二设备的mac地址在后的方式排列,本发明实施例对此不作具体限定。s414、第二设备至少根据第二key和第二矢量对第二明文进行加密,生成第二明文对应的第二密文;以及,第二设备至少根据第三key和第二矢量对第二公钥hash值进行加密,生成第二公钥hash值对应的第三密文。具体的,第二明文的相关内容可参考步骤s411,此处不再赘述。s415、第二设备向第一设备发送第二数据包,该第二数据包包含第二密文、第三密文和第二设备的第二公钥。如上所述,第一设备和第二设备可能直接通信,即第二设备直接向第一设备发送第二数据包;也可能通过第三设备与第一设备通信,即第二设备通过第三设备向第一设备转发第二数据包,本发明实施例对此不作具体限定。具体的,当第一设备和第二设备直接通信时,第二数据包可以通过第四消息携带,即步骤s415具体可以包括:第二设备向第一设备发送第四消息,第四消息中携带第二密文、第三密文和第二设备的第二公钥。其中,该第四消息的mac头中的ta为第二设备的mac地址,ra为第一设备的mac地址。当第二设备通过第三设备与第一设备通信时,第二数据包首先通过第五消息发送给第三设备,再由第三设备通过第六消息发送给第一设备,即,步骤s415具体可以包括:第二设备向第三设备发送第五消息,第五消息中携带第二密文、第三密文和第二设备的第二公钥;进而,由第三设备向第一设备发送第六消息,第六消息中携带第二密文、第三密文和第二设备的第二公钥。其中,第五消息的mac头中的ta为第二设备的mac地址,ra为第三设备的mac地址,可进一步设置sa为第二设备的mac地址,da为第一设备的mac地址;第六消息的mac头中的ta为第三设备的mac地址,ra为第一设备的mac地址,可进一步设置sa为第二设备的mac地址,da为第一设备的mac地址。具体的,上述第四消息、第五消息或第六消息的消息格式可以为action消息格式;或者,现有管理帧格式或控制帧格式;或者,新定义的消息格式;或者,其他新定义的帧格式,本发明实施例对此不作具体限定。示例性的,可以在action消息中携带dpp的ie,包括:第二密文、第三密文和第二设备的第二公钥。s416、第一设备接收第二设备发送的第二数据包。具体的,如步骤s415中所述,当第一设备和第二设备直接通信时,第二数据包可以通过第四消息携带,相应的,步骤s416具体可以包括:第一设备接收第二设备发送的第四消息,第四消息中携带第二密文、第三密文和第二设备的第二公钥。具体的,如步骤s415中所述,当第一设备通过第三设备与第二设备通信时,第二数据包通过第五消息和第六消息携带,相应的,步骤s416具体可以包括:第一设备接收第三设备发送的第六消息,第六消息中携带第二密文、第三密文和第二设备的第二公钥。s417、第一设备至少根据第一设备的mac地址、以及第二设备的mac地址生成第二矢量。具体的,第一设备生成第二矢量的方式具体可参考步骤s413中第二设备生成第二矢量的方式,本发明实施例在此不再赘述。s418、第一设备至少根据第一key和第二矢量对第二密文进行解密,生成第二明文。s419、第一设备至少根据第二设备的第二公钥,生成第四key。具体的,第一设备至少可以利用第二设备的第二公钥、第一设备的第一公钥和第一设备的第一私钥,执行密钥交换算法生成共享密钥作为第四key;或者,第二设备在利用第二设备的第二公钥、第一设备的第一公钥和第一设备的第一私钥,执行密钥交换算法生成共享密钥之后,进一步结合共享密钥和第二明文成衍生key,作为第四key。本发明实施例对第一设备根据第二设备的第二公钥,生成第四key的方式不作具体限定。其中,密钥交换算法可以为(diffie-hellman,缩写:dh)算法;或者,基于椭圆曲线的dh(英文:ellipticcurvecryptosystemsdiffie-hellman,缩写:ecdh)算法,本发明实施例对此不作具体限定。其中,密钥交换算法具体可参考步骤s402中的描述,此处不再赘述。需要说明的是,由于第一设备在生成第四key和第二设备在生成第三key时均采用了密钥交换算法,根据密钥交换算法自身的特性可以得出,第三key和第四key是相同的。s420、第一设备至少根据第四key和第二矢量对第三密文进行解密,生成第二公钥hash值。s421、第一设备验证第二公钥hash值。具体的,第一设备可以根据第二明文中包含的第一设备生成的随机数、以及第二设备生成的随机数,采用hash算法生成相应的公钥hash值。然后,将自己生成的公钥hash值与解密后的第二公钥hash值进行对比,如果相同,表示验证正确,进而可以执行后续的dpp配置流程;如果不同,表示验证失败,结束执行后续的dpp配置流程。可选的,在上述第二阶段的dpp配置过程中,第二设备还可以不用执行步骤s413中生成第二矢量的步骤,在加密时,第二设备根据第二key和第一矢量对第二明文进行加密,生成第二明文对应的第二密文;以及,根据第三key和第一矢量对第二公钥hash值进行加密,生成第二公钥hash值对应的第三密文。第一设备也可以不用执行步骤s417中生成第二矢量的步骤,在解密时,第一设备根据第一key和第一矢量对第二密文进行解密,生成第二明文;以及,根据第四key和第一矢量对第三密文进行解密,生成第二公钥hash值。本发明实施例提供一种加解密方法,第一设备在仅获得第二设备的公钥并且不知道第二设备的mac地址的情况下,至少采用预设的mac地址以及第一设备的mac地址生成矢量,进而根据该矢量以及根据第二设备的公钥生成的密钥来实现aes-siv加密,使得第二设备按照同样的过程能生成相同的矢量,并根据该矢量以及根据第一设备的公钥生成的密钥来实现aes-siv解密,而不会因为获得的mac地址信息不同而生成不同矢量从而导致密aes-siv解密失败。可选的,本发明实施例中,第二设备还可以预先获得第一设备的mac地址。比如,第一设备可以通过扫描二维码的方式获得第二设备的mac地址,即,二维码中包含了第二设备的mac地址;或者,通过nfc获得第二设备的mac地址;或者,通过蓝牙方式获得第二设备的mac地址;或者,通过nan通信获得第二设备的mac地址,等等,本发明实施例对此不作具体限定。若第一设备预先获得第一设备的mac地址,则可以按照现有的aes-siv机制进行加解密操作,本发明实施例在此不再赘述。进一步的,第一设备还可以在上述的第一消息、第二消息和第三消息中携带第一指示信息,该第一指示信息用于指示第一设备是否获得了第二设备的mac地址,或者,用于指示第一设备生成第一矢量的方式。该第一设备生成第一矢量的方式可以包括:第一设备至少根据预设的mac地址、以及第一设备的mac地址生成第一矢量;或者,第一设备至少根据第二设备的mac地址、以及第一设备的mac地址生成第一矢量。这样,第二设备在接收到第一消息和第三消息之后,可以获得该第一指示信息,进一步的根据该第一指示信息确定是至少根据预设的mac地址、以及第一设备的mac地址生成第一矢量,还是至少根据第二设备的mac地址、以及第一设备的mac地址生成第一矢量。可选的,第二设备还可以在上述的第四消息、第五消息和第六消息中携带第二指示信息,该第二指示信息用于指示第二设备生成第二矢量的方式。该第二设备生成第二矢量的方式可以包括:第二设备至少根据预设的mac地址、以及第一设备的mac地址生成第二矢量;或者,第二设备至少根据第二设备的mac地址、以及第一设备的mac地址生成第二矢量。这样,第一设备在接收到第四消息和第六消息之后,可以获得该第二指示信息,进一步的根据该第二指示信息确定是至少根据预设的mac地址、以及第一设备的mac地址生成第二矢量,还是至少根据第二设备的mac地址、以及第一设备的mac地址生成第二矢量。可选的,假设在图2中,第一设备201通过一个第三设备203与第二设备202通信,第一设备201为发起端设备,第二设备202为响应端设备,并且发起端设备预先不知道响应端设备的mac地址,则如图5所示,本发明实施例还提供一种加解密方法,包括步骤s501-s525:s501、第一设备获取第二设备的第一公钥。具体的,第一设备获取第二设备的第一公钥的方式可参考图4中步骤s401的相关描述,此处不再赘述。s502、第一设备至少根据第二设备的第一公钥,生成第一key和第一公钥hash值。具体的,第一设备根据第二设备的第一公钥,生成第一key和第一公钥hash值的方式可参考图4中步骤s402的相关描述,此处不再赘述。s503、第一设备至少根据预设的mac地址、第一设备的mac地址、以及第三设备的mac地址生成第一矢量。具体的,该预设的mac地址可以为通配符(英文:wildcard)地址,或者该预设的mac地址可以为预先设定的固定值。具体的,步骤s503具体可以包括:第一设备至少将预设的mac地址、第一设备的mac地址、以及第三设备的mac地址按照预设顺序排列,获得第一矢量。比如,假设预设的mac地址为wildcard地址,则第一矢量可以如表五所示:表五wildcard地址第一设备的mac地址第三设备的mac地址需要说明的是,表五仅是示例性的给出一种排列方式,当然,也可以按照第一设备的mac地址、wildcard地址、第三设备的mac地址的方式排列,本发明实施例对此不作具体限定。s504、第一设备至少根据第一key和第一矢量对第一明文进行加密,生成第一明文对应的第一密文。具体的,第一明文的相关内容可参考图4中步骤s404的相关描述,此处不再赘述。s505、第一设备向第三设备发送第二消息,该第二消息携带第一密文、第一公钥hash值和第一设备的第一公钥。具体的,第二消息的格式可参考图4步骤s405中第二消息的相关描述,此处不再赘述。其中,第二消息的mac头中的ta为第一设备的mac地址,ra为第三设备的mac地址,可进一步设置sa为第一设备的mac地址,da为第二设备的mac地址。s506、第三设备接收第一设备发送的第二消息。由于第二消息中携带第一密文、第一公钥hash值和第一设备的第一公钥,因此,在第三设备接收到第一设备发送的第二消息之后,可以获得第一密文、第一公钥hash值和第一设备的第一公钥。s507、第三设备向第二设备发送第三消息,该第三消息携带第一密文、第一公钥hash值和第一设备的第一公钥。具体的,第三消息的格式可参考图4步骤s405中第三消息的相关描述,此处不再赘述。其中,第三消息的mac头中的ta为第三设备的mac地址,ra为广播地址,可进一步设置sa为第一设备的mac地址,da为第二设备的mac地址。需要说明的是,本发明实施例中,广播地址与通配符地址是同一个地址,因此当上述预设的mac地址具体为通配符地址时,第二设备可以根据第三消息中的ra获得预设的mac地址;当上述预设的mac地址不是通配符地址时,需要提前在第二设备中配置预设的mac地址。s508、第二设备接收第三设备发送的第三消息。由于第三消息中携带第一密文、第一公钥hash值和第一设备的第一公钥,因此,在第二设备接收到第三设备发送的第三消息之后,可以获得第一密文、第一公钥hash值和第一设备的第一公钥。s509、第二设备验证第一公钥hash值。具体的,第二设备可以根据第二设备的第一公钥,采用hash算法生成相应的公钥hash值。然后,将自己生成的公钥hash值与第三消息中携带的第一公钥hash值进行对比,如果相同,表示验证正确,继续执行后续的步骤s510;如果不同,表示验证不正确,丢弃该第三消息,结束执行。s510、第二设备至少根据第一设备的第一公钥,生成第二key。具体的,第二设备至少根据第一设备的第一公钥,生成第二key的方式可参考图4中步骤s408的相关描述,此处不再赘述。s511、第二设备至少根据预设的mac地址、第一设备的mac地址以及第三设备的mac地址生成第一矢量。具体的,第二设备生成第一矢量的方式具体可参考步骤s503中第一设备生成第一矢量的描述,此处不再赘述。s512、第二设备至少根据第二key和第一矢量对第一密文进行解密,生成第一密文对应的第一明文。具体的,第一密文的相关内容可参考图4中步骤s410的相关描述,此处不再赘述。在第二设备判断解密成功后,即实现了发起端设备预先不知道响应端设备的mac地址的情况下,响应端设备对发起端设备的验证,此时,第二设备已经获知第一设备的mac地址,第一阶段的dpp配置完成,进而可以继续执行后续的第二阶段的dpp配置步骤。其中,如图5所示,本发明实施例可选的步骤包括s513-s521:s513、第二设备至少根据第一设备的第一公钥,生成第三key。具体的,第二设备至少根据第一设备的第一公钥,生成第三key的方式可参考图4中步骤s411的相关描述,此处不再赘述。s514、第二设备至少根据第一设备生成的随机数以及第二设备生成的随机数,生成第二公钥hash值。s515、第二设备至少根据第一设备的mac地址、第二设备的mac地址、以及第三设备的mac地址生成第二矢量。具体的,步骤s515具体可以包括:第二设备至少将第一设备的mac地址、第二设备的mac地址、以及第三设备的mac地址按照预设顺序排列,获得第二矢量。比如,第二矢量可以如表六所示:表六第二设备的mac地址第一设备的mac地址第三设备的mac地址需要说明的是,表六仅是示例性的给出一种排列方式,当然,也可以按照第一设备的mac地址、第二设备的mac地址、第三设备的mac地址的方式排列,本发明实施例对此不作具体限定。s516、第二设备至少根据第二key和第二矢量对第二明文进行加密,生成第二明文对应的第二密文;以及,第二设备至少根据第三key和第二矢量对第二公钥hash值进行加密,生成第二公钥hash值对应的第三密文。具体的,第二明文的相关内容可参考图4中步骤s411的相关描述,此处不再赘述。s517、第二设备向第三设备发送第五消息,该第五消息携带第二密文、第三密文和第二设备的第二公钥。具体的,第五消息的格式可参考图4步骤s415中第五消息的相关描述,此处不再赘述。其中,第五消息的mac头中的ta为第二设备的mac地址,ra为第三设备的mac地址,可进一步设置sa为第二设备的mac地址,da为第一设备的mac地址。s518、第三设备接收第二设备发送的第五消息。由于第五消息中携带第二密文、第三密文和第二设备的第二公钥,因此,在第三设备接收到第二设备发送的第五消息之后,可以获得第二密文、第三密文和第二设备的第二公钥。s19、第三设备向第一设备发送第六消息,该第六消息携带第二密文、第三密文和第二设备的第二公钥。具体的,第六消息的格式可参考图4步骤s415中第六消息的相关描述,此处不再赘述。其中,第六消息的mac头中的ta为第三设备的mac地址,ra为第一设备的mac地址,可进一步设置sa为第二设备的mac地址,da为第一设备的mac地址。s520、第一设备接收第三设备发送的第六消息。由于第六消息中携带第二密文、第三密文和第二设备的第二公钥,因此,在第一设备接收到第三设备发送的第六消息之后,可以获得第二密文、第三密文和第二设备的第二公钥。s521、第一设备至少根据第一设备的mac地址、第二设备的mac地址、以及第三设备的mac地址生成第二矢量。具体的,第一设备生成第二矢量的方式具体可参考步骤s515中第二设备生成第二矢量的方式,本发明实施例在此不再赘述。s522、第一设备至少根据第一key和第二矢量对第二密文进行解密,生成第二明文。s523、第一设备至少根据第二设备的第二公钥,生成第四key。具体的,第一设备生成第四key的方式可参考图4中步骤s419的相关描述,此处不再赘述。s524、第一设备至少根据第四key和第二矢量对第三密文进行解密,生成第二公钥hash值。s525、第一设备验证第二公钥hash值。具体的,第一设备可以根据第二明文中包含的第一设备生成的随机数、以及第二设备生成的随机数,采用hash算法生成相应的公钥hash值。然后,将自己生成的公钥hash值与解密后的第二公钥hash值进行对比,如果相同,表示验证正确,进而可以执行后续的dpp配置流程;如果不同,表示验证失败,结束执行后续的dpp配置流程。可选的,在上述第二阶段的dpp配置过程中,第二设备还可以不用执行步骤s515中生成第二矢量的步骤,在加密时,第二设备根据第二key和第一矢量对第二明文进行加密,生成第二明文对应的第二密文;以及,根据第三key和第一矢量对第二公钥hash值进行加密,生成第二公钥hash值对应的第三密文。第一设备也可以不用执行步骤s521中生成第二矢量的步骤,在解密时,第一设备根据第一key和第一矢量对第二密文进行解密,生成第二明文;以及,根据第四key和第一矢量对第三密文进行解密,生成第二公钥hash值。需要说明的是,图5所示的实施例仅适用于第一设备与第二设备之间仅包含一个第三设备的场景,当第一设备与第二设备之间包含多个第三设备时,图5所示的实施例并不适用,图4所示的实施例依然适用。本发明实施例提供一种加解密方法,在第一设备与第二设备通过第三设备通信时,第一设备在仅获得第二设备的公钥并且不知道第二设备的mac地址的情况下,至少采用预设的mac地址、第一设备的mac地址以及第三设备的mac地址生成矢量,进而根据该矢量以及根据第二设备的公钥生成的密钥来实现aes-siv加密,使得第二设备按照同样的过程能生成相同的矢量,并根据该矢量以及根据第一设备的公钥生成的密钥来实现aes-siv解密,而不会因为获得的mac地址信息不同而生成不同矢量从而导致密aes-siv解密失败。可选的,本发明实施例中,若第一设备预先获得第一设备的mac地址,则可以按照现有的aes-siv机制进行加解密操作,本发明实施例在此不再赘述。进一步的,第一设备还可以在上述的第二消息和第三消息中携带第一指示信息,该第一指示信息用于指示第一设备是否获得了第二设备的mac地址,或者,用于指示第一设备生成第一矢量的方式。该第一设备生成第一矢量的方式可以包括:第一设备至少根据预设的mac地址、第三设备的mac地址、以及一设备的mac地址生成第一矢量;或者,第一设备至少根据第二设备的mac地址、第三设备的mac地址以及第一设备的mac地址生成第一矢量。这样,第二设备在接收到第三消息之后,可以获得该第一指示信息,进一步的根据该第一指示信息确定是至少根据预设的mac地址、第三设备的mac地址以及第一设备的mac地址生成第一矢量,还是至少根据第二设备的mac地址、第三设备的mac地址以及第一设备的mac地址生成第一矢量。可选的,第二设备还可以在上述的第五消息和第六消息中携带第二指示信息,该第二指示信息用于指示第二设备生成第二矢量的方式。该第二设备生成第二矢量的方式可以包括:第二设备至少根据预设的mac地址、第三设备的mac地址以及第一设备的mac地址生成第二矢量;或者,第二设备至少根据第二设备的mac地址、第三设备的mac地址以及第一设备的mac地址生成第二矢量。这样,第一设备在接收到第六消息之后,可以获得该第二指示信息,进一步的根据该第二指示信息确定是至少根据预设的mac地址、第三设备的mac地址以及第一设备的mac地址生成第二矢量,还是至少根据第二设备的mac地址、第三设备的mac地址以及第一设备的mac地址生成第二矢量。上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如第一设备、第二设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。本发明实施例可以根据上述方法示例对第一设备和第二设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在采用对应各个功能划分各个功能模块的情况下,图8示出了上述实施例中所涉及的第一设备80的一种可能的结构示意图,第一设备80包括:获取单元801、生成单元802和发送单元803;可选的包括接收单元804和验证单元805。获取单元801用于支持第一设备80执行图4中的过程s401和图5中的过程s501。生成单元802用于支持第一设备80执行图4中的过程s402、s403、s404、s417、s418、s419、s420和图5中的过程s502、s503、s504、s521-s524。发送单元803用于支持第一设备80执行图4中的过程s405和图5中的过程s505。接收单元804用于支持第一设备80执行图4中的过程s416和图5中的过程s520。验证单元805用于支持第一设备80执行图4中的过程s421和图5中的过程s525。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的第二设备90的一种可能的结构示意图,第二设备90包括:接收单元901、验证单元902、生成单元903;可选的包括发送单元904。接收单元901用于支持第二设备90执行图4中的过程s406和图5中的过程s508。验证单元902用于支持第二设备90执行图4中的过程s407和图5中的过程s509。生成单元903用于支持第二设备90执行图4中的过程s408、s409、s410、s411、s412、s413、s414和图5中的过程s510、s511、s512、s513、s514、s515和s516。发送单元904用于支持第二设备90执行图4中的过程s415和图5中的过程s517。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在采用集成的单元的情况下,图10示出了上述实施例中所涉及的第一设备或第二设备的一种可能的结构示意图。第一设备或第二设备100包括:处理模块1002和通信模块1003。处理模块1002用于对第一设备或第二设备的动作进行控制管理,例如,当为第一设备时,处理模块1002用于支持第一设备执行图4中的过程s401-s404、s417-s421和图5中的过程s501-s504、s521-s525,和/或用于本文所描述的技术的其它过程。通信模块1003用于支持第一设备与其他网络实体的通信,例如与图4或图5中示出的功能模块或网络实体之间的通信。当为第二设备时,处理模块1002用于支持第二设备执行图4中的过程s407-s414和图5中的过程s509-s516,和/或用于本文所描述的技术的其它过程。通信模块1003用于支持第二设备与其他网络实体的通信,例如与图4或图5中示出的功能模块或网络实体之间的通信。第一设备或第二设备100还可以包括存储模块1001,用于存储第一设备100的程序代码和数据。其中,处理模块1002可以是处理器或控制器,例如可以是图3中的处理器301,也可以是通用处理器,数字信号处理器(英文:digitalsignalprocessor,缩写:dsp),专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),现场可编程门阵列(英文:fieldprogrammablegatearray,缩写:fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1003可以是图3中的射频电路302,也可以是收发电路或通信接口等。存储模块1001可以是存储器。当处理模块1002为处理器,通信模块1003为射频电路时,本发明实施例所涉及的第一设备或第二设备可以如图3所示,具体可参见图3部分的相关描述,此处不再赘述。结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。上述各实施例均是针对aes-siv机制下加解密方法的改进,本发明实施例还可以针对wifi中最常用的加密/解密技术—计数器模式密码块链消息验证码协议(英文:countermodewithcipher-blockchainingmessageauthenticationcodeprotocol,缩写:ccmp)机制进行改进。首先,ccmp机制通常用于发起端设备预先知道响应端设备的mac地址的情况下。其次,给出ccmp机制的简要介绍。1、ccmp定义的加密过程,以发送端为例:首先,发送端利用发送的消息中的mac头构建增加的验证数据(英文:additionalauthenticationdata,缩写:aad)。具体为:如表七所示,至少利用fc,a1,a2,a3,sc,qc按顺序排列构成aad。表七fca1a2a3sca4qc2字节6字节6字节6字节2字节6字节2字节其中,a1表示ra,a2表示ta,a3表示da,a4表示sa,fc表示mac头中的帧控制(英文:framecontrol)字段,携带消息控制信息,qc表示mac头中的服务(英文:qualityofservice,缩写:qos)控制字段,携带服务信息,sc表示mac头中的序列控制(英文:sequencecontrol)字段,携带序列值,用于对消息进行排序。其次,发送端利用包序列号(英文:packetnumber,缩写:pn)构建出随机数(英文:nonce)。具体为:如表八所示,至少利用随机数标识,a2,pn按顺序排列生成nonce,a2表示ta,随机数标识携带一些优先级和管理信息。表八随机数标识a2pn2字节6字节6字节进而,发送端利用和接收端共享的临时密钥(英文:temporalkey,缩写:tk)、aad以及nonce对明文(即待加密的数据,比如,data)进行加密,生成明文对应的密文(英文:ciphertext)。2、ccmp定义的解密过程,以接收端为例:首先,接收端利用发送的消息中的mac头构建aad,过程同发送端,此处不不再赘述。其次,接收端利用pn构建出nonce,过程同发送端,此处不再赘述。进而,接收端利用和接收端共享的tk、aad以及nonce对密文(即待解密的数据)进行解密,生成密文对应的明文。然而,现有技术中,当发起端设备和响应端设备之间存在relay设备时,利用上述ccmp机制,需要relay设备进行解密和加密,从而导致加解密过程效率低并且relay设备费电。如果relay设备直接转发发送端的加密消息,不执行相应的修改机制也会存在问题,即:发送端利用发送端和relay设备之间的mac地址去生成加密的参数aad,其中发送端地址作为ta,relay设备不进行解密和加密后直接转发加密消息到响应端设备,响应端设备按现有的机制生成加密的参数aad利用的是relay设备作为ta。这样响应端设备生成的aad就不等于发起端设备生成的aad,从而导致解密失败。同样,nonce的生成也存在类似问题,响应端设备生成的nonce也不等于发起端设备生成的nonce,从而导致解密失败。因此,如何在ccmp机制下,使得relay设备不进行解密和加密也能实现安全的转发,并且使得响应端设备能对中转后的信息进行正确的解密,成为目前亟待解决的问题。为了解决该问题,本发明实施例提供加解密方法,装置及系统,能够在ccmp机制下,使得relay设备不进行解密和加密也能实现安全高效的转发,并且使得响应端设备能对中转后的信息进行正确的解密。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。如图6所示,为本发明实施例提供的加解密系统60的架构示意图,包括第一设备601、第二设备602和n个第三设备(包括第三设备6031、……、第三设备603n,n为正整数),其中,第一设备601通过n个第三设备与第二设备602通信。具体的,本发明实施例中的第一设备601可以是上述图1中的ap,第二设备602可以是上述图1中的sta,第三设备可以是上述图1中的relay设备;或者,第一设备601可以是上述图1中的sta,第二设备602可以是上述图1中的ap,第三设备可以是上述图1中的relay设备;或者,第一设备601可以是临近感知网络(英文:neighborawarenessnetwork,缩写:nan)设备,第二设备可以是nan设备,第三设备可以是relay设备;或者,第一设备可以是组长设备(英文:groupowner,缩写:go),第二设备可以是客户设备(英文:client),第三设备可以是relay设备;或者,第一设备可以是client,第二设备是go,第三设备可以是relay设备,等等,本发明实施例对此不作具体限定。假设第一设备601为上述图1中的ap,第二设备602为上述图1中的sta,则如图3所示,为本发明实施例提供的ap或sta的硬件结构示意图,具体可参考上述实施例中的描述,此处不再赘述。下面将基于图6所示的加解密系统和图3所示的ap或sta硬件结构,对本发明实施例提供的加解密方法进行介绍。如图7所示,为本发明实施例提供的一种加解密方法的交互示意图,包括步骤s701-s713:s701、第一设备与第二设备之间获得共享密钥。该共享密钥具体可以是tk。s702、第一设备至少根据第一设备的mac地址和第二设备的mac地址生成第一aad。具体的,可以将现有ccmp机制中构建的aad进行修改以获得第一aad,比如,将表五中的a1区域和a2区域删除,或者,填写预定明文(比如:全为1,或,0,或,wildcard,或,预定的值);a3区域填写第二设备的mac地址;a4区域填写第一设备的mac地址。其中,该第一aad不包含第三设备的mac地址,具体可以如表九所示:表九fc预定明文预定明文a3sca4qc2字节6字节6字节6字节2字节6字节2字节s703、第一设备至少根据第一设备的mac地址生成第一nonce。具体的,可以将现有ccmp机制中构建的nonce进行修改,如表十所示,第一设备至少利用随机数标识,a4,pn按顺序排列生成第一nonce,a4表示sa,随机数标识携带一些优先级和管理信息。表十随机数标识a4pn2字节6字节6字节s704、第一设备至少根据共享密钥、第一aad、第一nonce、以及第一明文,生成校验值(英文:messageintegritycode,缩写:mic)。具体的,本发明实施例中,第一明文可以包括:发送消息中的data信息。s705、第一设备根据共享密钥、第一aad、以及第一nonce对第一明文和mic进行加密,生成第一明文对应的第一密文。s706、第一设备向第三设备发送第一消息,第一消息携带第一密文,以及,可选的携带指示信息,该指示信息用于指示第三设备不解密第一密文。具体的,第一消息的mac头中ra填写第三设备的mac地址,ta填写第一设备的mac地址,da填写第二设备的mac地址。具体的,上述指示信息可以在第一消息的mac头中的keyid域增加。可选的,第三设备中可能预先配置了指示第三设备不解密第一密文的指示信息,此时,第一消息中可以不携带指示信息。s707、第三设备接收第一设备发送的第一消息。具体的,第三设备在接收第一消息之后,若第一消息中携带指示信息,可以根据指示信息确定不解密第一密文;若第一消息中不携带指示信息,可以根据预先配置的指示信息确定不解密第一密文。需要说明的是,本发明实施例步骤s706和s707中的第三设备是与第一设备直接通信的第三设备。s708、第三设备向第二设备发送第一密文。如上所述,第一设备通过n个第三设备与第二设备通信,n为正整数。其中,n=1时,步骤s706和s707中的第三设备直接与第二设备通信,该第三设备向第二设备发送第一密文具体可以包括:第三设备向第二设备发送第二消息,第二消息携带第一密文。其中,第二消息的mac头中ra填写第二设备的mac地址,ta填写第三设备的mac地址,sa填写第一设备的mac地址,da填写第二设备的mac地址。n≠1时,步骤s706和s707中的第三设备(可视为当前第三设备)通过另外n-1个第三设备与第二设备通信。假设当前第三设备为第三设备1,第三设备1的下一跳为第三设备2,以此类推,直至第三设备n,则第三设备向第二设备发送第一密文具体可以包括:第三设备1向第三设备2发送第三消息,第三消息携带第一密文。其中,第三消息的mac头中ra填写第三设备2的mac地址,ta填写第三设备1的mac地址,sa填写第一设备的mac地址,da填写第二设备的mac地址。第三设备2在接收第三消息后,向第三设备3发送第四消息,第四消息携带第一密文。其中,第四消息的mac头中ra填写第三设备3的mac地址,ta填写第三设备2的mac地址,sa填写第一设备的mac地址,da填写第二设备的mac地址。依次类推,直至第三设备n接收第(n+1)消息,第三设备n再向第二设备发送第(n+2)消息,该第(n+2)消息携带第一密文。其中,该第(n+2)消息的mac头中ra填写第二设备的mac地址,ta填写第三设备n的mac地址,sa填写第一设备的mac地址,da填写第二设备的mac地址。s709、第二设备接收第三设备发送的第一密文。s710、第二设备至少根据第一设备的mac地址和第二设备的mac地址生成第一aad。具体的,第二设备生成第一aad的方式可参考步骤s702中的相关描述,此处不再赘述。s711、第二设备至少根据第一设备的mac地址生成第一nonce。具体的,第二设备生成第一nonce的方式可参考步骤s703中的相关描述,此处不再赘述。s712、第二设备至少根据共享密钥、第一aad、以及第一nonce对第一密文进行解密,生成第一明文和第一mic。s713、第二设备验证第一mic。具体的,第二设备可以根据共享密钥、第一aad、第一nonce、以及第一明文,生成mic。然后,将该mic与第一mic进行对比,如果相同,表示验证正确;如果不同,表示验证不正确。需要说明的是,图7所示的加解密方法可以用于dpp配置。即,在采用aes-siv完成图4或图5所述的第二阶段的dpp配置步骤之后,可以采用本发明实施例提供的ccmp机制的加解密方法进行后续的dpp配置。当然,图7所示的加解密方法还可以适用于其它场景下的加解密,本发明实施例对此不作具体限定。本发明实施例提供了一种加解密方法,能够在ccmp机制下,使得relay设备不进行解密和加密也能实现安全高效的转发,并且使得响应端设备能对中转后的信息进行正确的解密。上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如第一设备、第二设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。本发明实施例可以根据上述方法示例对第一设备和第二设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的第一设备110的一种可能的结构示意图,第一设备110包括:获取单元1101、生成单元1102和发送单元1103。获取单元1101用于支持第一设备110执行图7中的过程s701。生成单元1102用于支持第一设备110执行图7中的过程s702-s705。发送单元1103用于支持第一设备110执行图7中的过程s706。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在采用对应各个功能划分各个功能模块的情况下,图12示出了上述实施例中所涉及的第二设备120的一种可能的结构示意图,第二设备120包括:接收单元1201、验证单元1202、生成单元1203、以及获取单元1204。获取单元1204用于支持第二设备120执行图7中的过程s701。接收单元1201用于支持第二设备120执行图7中的过程s709。生成单元1203用于支持第二设备120执行图7中的过程s710-s712。验证单元1202用于支持第二设备120执行图7中的过程s713。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在采用集成的单元的情况下,图13示出了上述实施例中所涉及的第一设备或第二设备的一种可能的结构示意图。第一设备或第二设备130包括:处理模块1302和通信模块1303。处理模块1302用于对第一设备或第二设备的动作进行控制管理,例如,当为第一设备时,处理模块1302用于支持第一设备执行图7中的过程s701-s705,和/或用于本文所描述的技术的其它过程。通信模块1303用于支持第一设备与其他网络实体的通信,例如与图7中示出的功能模块或网络实体之间的通信。当为第二设备时,处理模块1302用于支持第二设备执行图7中的过程s701、s710-s713,和/或用于本文所描述的技术的其它过程。通信模块1303用于支持第二设备与其他网络实体的通信,例如与图4或图5中示出的功能模块或网络实体之间的通信。第一设备或第二设备130还可以包括存储模块1301,用于存储第一设备130的程序代码和数据。其中,处理模块1302可以是处理器或控制器,例如可以是图3中的处理器301,也可以是通用处理器,数字信号处理器(英文:digitalsignalprocessor,缩写:dsp),专用集成电路(英文:application-specificintegratedcircuit,缩写:asic),现场可编程门阵列(英文:fieldprogrammablegatearray,缩写:fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块1303可以是图3中的射频电路302,也可以是收发电路或通信接口等。存储模块1301可以是存储器。当处理模块1302为处理器,通信模块1303为射频电路时,本发明实施例所涉及的第一设备或第二设备可以如图3所示,具体可参见图3部分的相关描述,此处不再赘述。本申请还提供了如下实施例,如下实施例的编号仅为了此处表述方便,与前文的实施例编号之间可以不连续:29、一种第一设备,所述第一设备应用于配置过程中的加解密系统,其特征在于,所述第一设备包括获取单元、生成单元和发送单元;所述获取单元,用于获取第二设备的第一公钥;所述生成单元,用于至少根据所述第二设备的第一公钥,生成第一密钥key和第一公钥哈希hash值;所述生成单元,还用于至少根据预设的媒体访问控制mac地址、以及所述第一设备的mac地址生成第一矢量;所述生成单元,还用于至少根据所述第一key和所述第一矢量对第一明文进行加密,生成所述第一明文对应的第一密文;所述发送单元,用于若所述加解密系统不包含第三设备,发送第一消息到所述第二设备,所述第一消息至少包含所述第一密文,所述第一公钥hash值和所述第一设备的第一公钥;或者,所述发送单元,用于若所述加解密系统包含第三设备,发送第二消息到第三设备,由所述第三设备发送第三消息到所述第二设备,所述第二消息和所述第三消息至少包含所述第一密文,所述第一公钥hash值和所述第一设备的第一公钥。30、根据实施例29所述的第一设备,其特征在于,所述生成单元具体用于:若所述获取单元未获取到所述第二设备的mac地址,至少根据预设的mac地址、以及所述第一设备的mac地址生成第一矢量。31、根据实施例30所述的第一设备,其特征在于,所述生成单元,还用于若所述获取单元获取到所述第二设备的mac地址,至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成第一矢量。32、根据实施例31所述的第一设备,其特征在于,所述第一消息或者所述第二消息和所述第三消息还携带第一指示信息,所述第一指示信息用于指示所述第一设备是否获得了所述第二设备的mac地址,或者,用于指示所述第一设备生成所述第一矢量的方式,其中,所述第一设备生成所述第一矢量的方式包括:所述第一设备至少根据预设的mac地址、以及所述第一设备的mac地址生成所述第一矢量,或者,所述第一设备至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成所述第一矢量。33、根据实施例29所述的第一设备,其特征在于,所述生成单元具体用于:若所述加解密系统不包含所述第三设备,至少根据预设的mac地址、以及所述第一设备的mac地址生成第一矢量。34、根据实施例33所述的第一设备,其特征在于,所述生成单元,还用于若所述加解密系统包含所述第三设备,至少根据预设的mac地址、以及所述第一设备的mac地址和所述第三设备的mac地址生成所述第一矢量。35、根据实施例29-34任一项所述的第一设备,其特征在于,所述预设的mac地址为通配符地址,或者所述预设的mac地址为预先设定的固定值。36、根据实施例29-35任一项所述的第一设备,其特征在于,所述生成单元具体用于:将所述预设的mac地址、以及所述第一设备的mac地址按照预设顺序排列,获得所述第一矢量。37、根据实施例29-35任一项所述的第一设备,其特征在于,所述第一设备还包括接收单元和验证单元;所述接收单元,用于所述加解密系统不包含所述第三设备,接收所述第二设备发送的第四消息,所述第四消息携带第二密文、第三密文和所述第二设备的第二公钥;或者,所述接收单元,用于若所述加解密系统包含所述第三设备,接收所述第二设备向所述第三设备发送第五消息后,由所述第三设备发送的第六消息,所述第五消息和所述第六消息携带第二密文、第三密文和所述第二设备的第二公钥;所述生成单元,还用于至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量;所述生成单元,还用于至少根据所述第一key和所述第二矢量对所述第二密文进行解密,生成第二明文;所述生成单元,还用于至少根据所述第二设备的第二公钥,生成第四key;所述生成单元,还用于根据所述第四key和所述第二矢量对所述第三密文进行解密,生成第二公钥hash值;所述验证单元,用于根据所述第二明文验证所述第二公钥hash值。38、根据实施例37所述的第一设备,其特征在于,所述第四消息或者所述第五消息和所述第六消息还携带第二指示信息,所述第二指示信息用于指示所述第一设备是否获得了所述第二设备的mac地址,或者,用于指示所述第二设备生成所述第二矢量的方式,其中,所述第二设备生成所述第二矢量的方式包括:所述第二设备至少根据预设的mac地址、以及所述第一设备的mac地址生成所述第二矢量,或者,所述第二设备至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成所述第二矢量。39、根据实施例38所述的第一设备,其特征在于,所述生成单元具体用于:根据所述第二指示信息,若所述第一设备获取到所述第二设备的mac地址,至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量。40、根据实施例39所述的第一设备,其特征在于,所述生成单元,还用于根据所述第二指示信息,若所述第一设备未获取到所述第二设备的mac地址,至少根据所述预设的mac地址、以及所述第二设备的mac地址生成第二矢量。41、根据实施例37所述的第一设备,其特征在于,所述生成单元具体用于:若所述加解密系统不包含所述第三设备,至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量。42、根据实施例41所述的第一设备,其特征在于,所述生成单元,还用于若所述加解密系统包含所述第三设备,至少根据所述第一设备的mac地址、所述第三设备的mac地址、以及所述第二设备的mac地址生成第二矢量。43、一种第二设备,所述第二设备应用于配置过程中的加解密系统,其特征在于,所述第二设备包括:接收单元、验证单元和生成单元;所述接收单元,用于若所述加解密系统不包含第三设备,接收所述第一设备发送的第一消息所述第一消息至少包含所述第一密文,所述第一公钥hash值和所述第一设备的第一公钥;或者,所述接收单元,用于若所述加解密系统包含第三设备,接收所述第一设备向所述第三设备发送第二消息后,由所述第三设备发送的第三消息,所述第二消息和所述第三消息至少包含所述第一密文,所述第一公钥hash值和所述第一设备的第一公钥;所述验证单元,用于至少根据所述第二设备的第一公钥验证所述第一公钥hash值;所述生成单元,用于若验证成功,至少根据预设的媒体访问控制mac地址、以及所述第一设备的mac地址生成第一矢量;所述生成单元,还用于至少根据所述第一设备的第一公钥,生成第二密钥key;所述生成单元,还用于至少根据所述第二key和所述第一矢量对所述第一密文进行解密,生成所述第一密文明文对应的第一明文。44、根据实施例43所述的第二设备,其特征在于,所述第一消息或者所述第二消息和所述第三消息还携带第一指示信息,所述第一指示信息用于指示所述第一设备是否获得了所述第二设备的mac地址,或者,用于指示所述第一设备生成所述第一矢量的方式,其中,所述第一设备生成所述第一矢量的方式包括:所述第一设备至少根据预设的mac地址、以及所述第一设备的mac地址生成所述第一矢量,或者,所述第一设备至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成所述第一矢量。45、根据实施例44所述的第二设备,其特征在于,所述生成单元具体用于:根据所述第一指示信息,若所述第一设备未获取到所述第二设备的mac地址,至少根据预设的mac地址、以及所述第一设备的mac地址生成第一矢量。46、根据实施例45所述的第二设备,其特征在于,所述生成单元,还用于根据所述第一指示信息,若所述第一设备获取到所述第二设备的mac地址,至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成第一矢量。47、根据实施例43所述的第二设备,其特征在于,所述生成单元具体用于:若所述加解密系统不包含所述第三设备,至少根据预设的mac地址、以及所述第一设备的mac地址生成第一矢量。48、根据实施例47所述的第二设备,其特征在于,所述生成单元,还用于若所述加解密系统包含所述第三设备,至少根据预设的mac地址、以及所述第一设备的mac地址和所述第三设备的mac地址生成所述第一矢量。49、根据实施例43-48任一项所述的第二设备,其特征在于,所述预设的mac地址为通配符地址,或者所述预设的mac地址为预先设定的固定值。50、根据实施例43-49任一项所述的第二设备,其特征在于,所述生成单元具体用于:将所述预设的mac地址、以及所述第一设备的mac地址按照预设顺序排列,获得所述第一矢量。51、根据实施例43-50任一项所述的第二设备,其特征在于,所述第二设备还包括发送单元;所述生成单元,还用于至少根据所述第一设备的第一公钥,生成第三key;所述生成单元,还用于至少根据所述第一设备生成的随机数以及所述第二设备生成的随机数,生成第二公钥hash值;所述生成单元,还用于至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量;所述生成单元,还用于至少根据所述第二key和所述第二矢量对第二明文进行加密,生成所述第二明文对应的第二密文;以及,所述生成单元,还用于至少根据所述第三key和所述第二矢量对所述第二公钥hash值进行加密,生成所述第二公钥hash值对应的第三密文;所述发送单元,用于若所述加解密系统不包含所述第三设备,向所述第一设备发送第四消息,所述第四消息携带第二密文、第三密文和所述第二设备的第二公钥;或者,所述发送单元,用于若所述加解密系统包含所述第三设备,向所述第三设备发送第五消息,由所述第三设备向所述第一设备发送第六消息,所述第五消息和所述第六消息携带第二密文、第三密文和所述第二设备的第二公钥。52、根据实施例51所述的第二设备,其特征在于,所述生成单元具体用于:若所述第一设备获取到所述第二设备的mac地址,至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量。53、根据实施例52所述的第二设备,其特征在于,所述生成单元,还用于若所述第一设备未获取到所述第二设备的mac地址,至少根据所述预设的mac地址、以及所述第二设备的mac地址生成第二矢量。54、根据实施例53所述的第二设备,其特征在于,所述第四消息或者所述第五消息和所述第六消息还携带第二指示信息,所述第二指示信息用于指示所述第一设备是否获得了所述第二设备的mac地址,或者,用于指示所述第二设备生成所述第二矢量的方式,其中,所述第二设备生成所述第二矢量的方式包括:所述第二设备至少根据预设的mac地址、以及所述第一设备的mac地址生成所述第二矢量,或者,所述第二设备至少根据所述第二设备的mac地址、以及所述第一设备的mac地址生成所述第二矢量。55、根据实施例51所述的第二设备,其特征在于,所述生成单元具体用于:若所述加解密系统不包含所述第三设备,至少根据所述第一设备的mac地址、以及所述第二设备的mac地址生成第二矢量。56、根据实施例55所述的第二设备,其特征在于,所述生成单元,还用于若所述加解密系统包含所述第三设备,至少根据所述第一设备的mac地址、所述第三设备的mac地址、以及所述第二设备的mac地址生成第二矢量。本发明各方法实施例之间相关部分可以相互参考;各装置实施例所提供的装置用于执行对应的方法实施例所提供的方法,故各装置实施例可以参考相关的方法实施例中的相关部分进行理解。本发明各实施例之间相关部分均可以相互参考。本发明各装置实施例中给出的装置结构图仅示出了对应的装置的简化设计。在实际应用中,该装置可以包含任意数量的发射器,接收器,收发器,处理器,存储器等,以实现本发明各装置实施例中该装置所执行的功能或操作,而所有可以实现本申请的装置都在本申请的保护范围之内。本发明各实施例中提供的消息/帧/指示信息、模块或单元等的名称仅为示例,可以使用其他名称,只要消息/帧/指示信息、模块或单元等的作用相同即可。结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(readonlymemory,rom)、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1