CN116886403A - 加密方法、解密方法、通信方法及装置 - Google Patents

加密方法、解密方法、通信方法及装置 Download PDF

Info

Publication number
CN116886403A
CN116886403A CN202310977572.4A CN202310977572A CN116886403A CN 116886403 A CN116886403 A CN 116886403A CN 202310977572 A CN202310977572 A CN 202310977572A CN 116886403 A CN116886403 A CN 116886403A
Authority
CN
China
Prior art keywords
instruction
kth
block
encryption
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310977572.4A
Other languages
English (en)
Inventor
任宇霄
奚润开
徐国鹏
孙凯
全鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trina Solar Co Ltd
Original Assignee
Trina Solar Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Trina Solar Co Ltd filed Critical Trina Solar Co Ltd
Priority to CN202310977572.4A priority Critical patent/CN116886403A/zh
Publication of CN116886403A publication Critical patent/CN116886403A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种加密方法、解密方法、通信方法及装置。其中,加密方法包括:从第一指令的帧头至帧尾,划分第一指令为多个数据块;随机生成对第一指令加密时使用的第一初始化向量;基于第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块;基于各数据块的密文块生成第二指令。通过该加密方法,可以对不同通信控制指令,使用不同的初始化向量进行加密,使得每个通信控制指令可以生成与其它通信控制指令不同的密文块,消除了各通信控制指令之间的逻辑耦合性,对通信控制指令的帧结构形成较好的隐藏保护,安全性、保密性更高。并且,可以保证各通信控制指令的不可复用,从而可以避免对光伏跟踪发电系统的通信劫持或非法控制。

Description

加密方法、解密方法、通信方法及装置
技术领域
本申请涉及安全通信技术领域,尤其涉及一种加密方法、解密方法、通信方法及装置。
背景技术
随着光伏发电技术不断发展,光伏跟踪发电系统得到了广泛应用。在光伏跟踪发电系统中,单个光伏子阵的主机和从机之间数据交互的安全性、保密性,以及不同通信控制指令之间的脱耦性等,对于保护光伏跟踪发电系统各项参数的私密性,预防外部通信劫持、非法控制等至关重要。
所以,如何对光伏跟踪发电系统的通信控制指令进行加密保护,以保证单个光伏子阵的主机和从机之间数据交互的安全性、保密性,以及不同通信控制指令之间的脱耦性,成为本领域技术人员亟待解决的技术问题。
发明内容
为了解决如何对光伏跟踪发电系统的通信控制指令进行加密保护,以保证单个光伏子阵的主机和从机之间数据交互的安全性、保密性,以及不同通信控制指令之间的脱耦性的问题,本申请提供了一种加密方法、解密方法、通信方法及装置。
第一方面,本申请实施例提供了一种加密方法,该方法包括:从第一指令的帧头至帧尾,划分所述第一指令为多个数据块;随机生成第一初始化向量,所述第一初始化向量为对所述第一指令进行加密时使用的初始化向量;基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块;基于所述各数据块的密文块生成第二指令,所述第二指令为所述第一指令加密后的指令。
一种可能的实现方式中,基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,包括:生成加盐数据;对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
一种可能的实现方式中,所述多个数据块包括N个数据块;N为大于或等于2的整数;所述基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块,包括:对所述初始密文块与所述N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;通过所述第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
一种可能的实现方式中,基于所述第1个数据块的密文块和所述第一密钥,加密生成第M个数据块的密文块,包括:对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
一种可能的实现方式中,所述第一指令为用于光伏子阵的通信控制指令;基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块之前,所述方法还包括:基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
第二方面,本申请实施例还提供了一种解密方法,该方法包括:从第二指令的帧尾至帧头,划分所述第二指令为多个数据块;所述第二指令为第一指令加密后得到的指令;随机生成第一初始化向量,所述第一初始化向量为对所述第一指令加密时使用的初始化向量;基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块;所述第一密钥为对所述第一指令加密时使用的密钥;基于所述多个数据块中各数据块的明文块生成所述第一指令。
一种可能的实现方式中,所述多个数据块的最后一个数据块为初始密文块;所述初始密文块为对所述第一指令加密时,基于所述第一初始化向量、加盐数据和所述第一密钥,加密生成的密文块;所述基于所述多个数据块中各数据块的明文块生成所述第一指令,包括:基于所述多个数据块中除所述初始密文块之外的数据块的明文块生成所述第一指令。
第三方面,本申请实施例还提供了一种通信方法,该方法包括:生成第K个控制指令,所述第K个控制指令包括第K个通信序号;K为正整数;生成第K个加密指令,所述第K个加密指令是指将所述第K个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;发送所述第K个加密指令。
一种可能的实现方式中,发送所述第K个加密指令后,所述方法还包括:如果在预设时长内接收到回复信息,生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;发送所述第K+1个加密指令。
一种可能的实现方式中,所述方法还包括:如果在所述预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
第四方面,本申请实施例还提供了一种通信方法,该方法包括:接收第K个加密指令;K为正整数;生成第K个控制指令,所述第K个控制指令是指将所述第K个加密指令作为第二指令,通过权利要求6或7所述的解密方法生成的第一指令;从所述第K个控制指令中获取第K个通信序号;确定所述第K个通信序号是否大于第K-1个通信序号,所述第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号;如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令;发送回复信息,所述回复信息用于指示所述第K个控制指令已被执行。
一种可能的实现方式中,所述方法还包括:如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
第五方面,本申请实施例还提供了一种加密装置,该装置包括:划分模块,用于从第一指令的帧头至帧尾,划分所述第一指令为多个数据块;第一生成模块,用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令进行加密时使用的初始化向量;加密模块,用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块;第二生成模块,用于基于所述各数据块的密文块生成第二指令,所述第二指令为所述第一指令加密后的指令。
一种可能的实现方式中,所述加密模块用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,具体为:所述加密模块用于:生成加盐数据;对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
一种可能的实现方式中,所述多个数据块包括N个数据块;N为大于或等于2的整数;所述加密模块用于基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块,具体为:所述加密模块用于:对所述初始密文块与所述N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;通过所述第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
一种可能的实现方式中,所述加密模块用于基于所述第1个数据块的密文块和所述第一密钥,加密生成第M个数据块的密文块,具体为:所述加密模块用于:对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
一种可能的实现方式中,所述第一指令为用于光伏子阵的通信控制指令;所述装置还包括:第三生成模块,用于基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
第六方面,本申请实施例还提供了一种解密装置,该装置包括:划分模块,用于从第二指令的帧尾至帧头,划分所述第二指令为多个数据块;所述第二指令为第一指令加密后得到的指令;第一生成模块,用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令加密时使用的初始化向量;解密模块,用于基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块;所述第一密钥为对所述第一指令加密时使用的密钥;第二生成模块,用于基于所述多个数据块中各数据块的明文块生成所述第一指令。
一种可能的实现方式中,所述多个数据块的最后一个数据块为初始密文块;所述初始密文块为对所述第一指令加密时,基于所述第一初始化向量、加盐数据和所述第一密钥,加密生成的密文块;所述第二生成模块用于基于所述多个数据块中各数据块的明文块生成所述第一指令,具体为:所述第二生成模块用于基于所述多个数据块中除所述初始密文块之外的数据块的明文块生成所述第一指令。
第七方面,本申请实施例还提供了一种通信装置,该装置包括:第一生成模块,用于生成第K个控制指令,所述第K个控制指令包括第K个通信序号;K为正整数;第二生成模块,用于生成第K个加密指令,所述第K个加密指令是指将所述第K个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;发送模块,用于发送所述第K个加密指令。
一种可能的实现方式中,发送所述第K个加密指令后,所述第一生成模块还用于如果在预设时长内接收到回复信息,生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;所述第二生成模块还用于生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;所述发送模块还用于发送所述第K+1个加密指令。
一种可能的实现方式中,所述装置还包括:处理模块,用于如果在所述预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
第八方面,本申请实施例还提供了一种通信装置,该装置包括:接收模块,用于接收第K个加密指令;K为正整数;生成模块,用于生成第K个控制指令,所述第K个控制指令是指将所述第K个加密指令作为第二指令,通过权利要求6或7所述的解密方法生成的第一指令;获取模块,用于从所述第K个控制指令中获取第K个通信序号;确定模块,用于确定所述第K个通信序号是否大于第K-1个通信序号,所述第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号;执行模块,用于如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令;发送模块,用于发送回复信息,所述回复信息用于指示所述第K个控制指令已被执行。
一种可能的实现方式中,所述发送模块还用于:如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
第九方面,本申请实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面、第二方面、第三方面或第四方面的方法。
第十方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述第一方面、第二方面、第三方面或第四方面的方法的计算机程序。
本申请实施例提供了一种加密方法、解密方法、通信方法及装置。通过本申请提供的加密方法,可以将第一指令,按照从帧头至帧尾的顺序,划分为多个数据块,然后可以随机生成仅为第一指令加密使用的第一初始化向量,之后,可以基于第一初始化向量和第一密钥对前述多个数据块进行加密,得到各数据块的密文块,最后,可以基于各数据块的密文块生成第二指令,即得到第一指令加密后的指令。
其中,由于随机生成了仅为第一指令加密使用的第一初始化向量,使得不同通信控制指令可以使用不同的初始化向量进行加密,进而使得每个通信控制指令的各数据块加密时,可以生成与其它通信控制指令不同的密文块,很好的消除了各通信控制指令之间的逻辑耦合性,对通信控制指令的帧结构形成较好的隐藏保护,安全性、保密性更高。并且,每个通信控制指令使用不同的初始化向量加密,使得各通信控制指令之间保持了较高的独立性,可以保证各通信控制指令的不可复用,从而可以避免对光伏跟踪发电系统的通信劫持或非法控制。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种加密方法的流程示意图。
图2A为本申请实施例提供的一种应用场景示意图。
图2B为本申请实施例提供的另一种应用场景示意图。
图2C为本申请实施例提供的另一种应用场景示意图。
图2D为本申请实施例提供的另一种应用场景示意图。
图3为本申请实施例提供的一种解密方法的流程示意图。
图4为本申请实施例提供的一种通信方法的流程示意图。
图5为本申请实施例提供的另一种通信方法的流程示意图。
图6为本申请实施例提供的一种加密装置的结构框图。
图7为本申请实施例提供的一种解密装置的结构框图。
图8为本申请实施例提供的一种通信装置的结构框图。
图9为本申请实施例提供的另一种通信装置的结构框图。
图10为本申请实施例提供的一种计算机设备的结构框图。
具体实施方式
下面通过附图和实施例对本申请进一步详细说明。通过这些说明,本申请的特点和优点将变得更为清楚明确。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
此外,下面所描述的本申请不同实施方式中涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
为了便于理解,下面先对本申请提供的技术方案的应用场景进行说明。
随着光伏发电技术不断发展,光伏跟踪发电系统得到了广泛应用。在光伏跟踪发电系统中,单个光伏子阵的主机和从机之间数据交互的安全性、保密性,以及不同通信控制指令之间的脱耦性等,对于保护光伏跟踪发电系统各项参数的私密性,预防外部通信劫持、非法控制等至关重要。
通常,单个光伏子阵的主机和从机之间的通信控制指令,从帧结构划分,可以划分为动态控制指令和静态控制指令。其中,动态控制指令的各项参数可以实时更新或变化。静态控制指令则不会随着时间的变化而变化。
对于动态控制指令,在通信过程中,需要保证高度的保密性、安全性和去耦性,尽可能降低数据帧与数据帧之间的逻辑关联,以及数据帧本身的反破译性能,以免泄露光伏跟踪发电系统中各项关键参数。
对于静态控制指令,由于其帧结构较为固定,在保证高度的保密性、安全性和去耦性之外,还需要保证相同通信控制指令较高的独立性,以使通信控制指令不可复用,避免对光伏跟踪发电系统的通信劫持或非法控制。
基于此,本申请提供了一种加密方法、解密方法、通信方法及装置。通过本申请的加密方法、解密方法、通信方法及装置,可以将第一指令(该第一指令可以为光伏跟踪发电系统的通信控制指令),按照从帧头至帧尾的顺序,划分为多个数据块,然后可以随机生成仅为第一指令加密使用的第一初始化向量,之后,可以基于第一初始化向量和第一密钥对前述多个数据块进行加密,得到各数据块的密文块,最后,可以基于各数据块的密文块生成第二指令,即得到第一指令加密后的指令。
其中,由于随机生成了仅为第一指令加密使用的第一初始化向量,使得不同通信控制指令可以使用不同的初始化向量进行加密,进而使得每个通信控制指令的各数据块加密时,可以生成与其它通信控制指令不同的密文块,很好的消除了各通信控制指令之间的逻辑耦合性,对通信控制指令的帧结构形成较好的隐藏保护,安全性、保密性更高。并且,每个通信控制指令使用不同的初始化向量加密,使得各通信控制指令之间保持了较高的独立性,可以保证各通信控制指令的不可复用,从而可以避免对光伏跟踪发电系统的通信劫持或非法控制。
下面结合附图,对本申请提供的加密方法的实施例进行说明。
参见图1,图1为本申请实施例提供的一种加密方法的流程示意图。该方法可以应用于终端设备、服务器、光伏跟踪发电系统中光伏子阵的主机等,下面以光伏子阵的主机(后续简称为主机)为例,对本申请实施例提供的加密方法进行说明。如图1所示,该方法可以包括以下步骤:
步骤S101、从第一指令的帧头至帧尾,划分所述第一指令为多个数据块。
其中,第一指令可以为用于光伏子阵的通信控制指令,例如,第一指令可以为主机生成的通信控制指令。需要说明的是,第一指令还可以为其它需要加密的指令或数据帧,本申请对此不进行限制。
可选地,主机在生成第一指令后,可以按照预设划分长度,从第一指令的帧头至帧尾,将第一指令划分为多个长度相同的数据块。其中,预设划分长度可以根据实际应用场景的需求设置。例如,可以将预设划分长度设置为16字节等。
步骤S102、随机生成第一初始化向量。
其中,第一初始化向量为对第一指令进行加密时使用的初始化向量。也就是说,第一初始化向量仅用于第一指令的加密过程中。对于主机生成的第一指令之外的其它指令,不会直接使用第一初始化向量进行加密。
步骤S103、基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块。
其中,第一密钥是指对第一指令进行加密时使用的密钥。
一种可能的实现方式中,当第一指令为用于光伏子阵的通信控制指令时,主机在执行步骤S103之前,可以先生成第一密钥。
可选地,主机生成第一密钥,可以按照下述方式实现:基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
需要说明的是,还可以基于其它编号或能够增加安全性的信息,生成第一密钥。示例性地,对于安全等级要求较高的通信场景,还可以基于发送端设备的编号或标识,和/或,接收端设备的编号或标识,生成第一密钥。例如,可以基于光伏子阵中主机的编号或标识,和/或,从机的编号或标识,生成第一密钥。这样的话,主机与从机之间的通信更加安全,私密性和稳定性更高。
一种可能的实现方式中,第一指令划分得到的多个数据块可以包括N个数据块;N为大于或等于2的整数。
一种可能的实现方式中,基于第一初始化向量和第一密钥加密生成第一指令的多个数据块中各数据块的密文块,可以按照下述方式实现:对所述第一初始化向量与所述N个数据块中第1个数据块进行异或运算,生成第1个数据块对应的异或数据块;通过所述第一密钥对所述第1个数据块对应的异或数据块进行加密,生成第1个数据块的密文块;对第1个数据块的密文块与所述N个数据块中第2个数据块进行异或运算,生成第2个数据块对应的异或数据块;通过所述第一密钥对所述第2个数据块对应的异或数据块进行加密,生成第2个数据块的密文块;对第2个数据块的密文块与所述N个数据块中第3个数据块进行异或运算,生成第3个数据块对应的异或数据块;通过所述第一密钥对所述第3个数据块对应的异或数据块进行加密,生成第3个数据块的密文块;以此类推,生成所述N个数据块中第N-1个数据块的密文块后,对第N-1个数据块的密文块与所述N个数据块中第N个数据块进行异或运算,生成第N个数据块对应的异或数据块;通过所述第一密钥对所述第N个数据块对应的异或数据块进行加密,生成所述第N个数据块的密文块。
按照此种实施方式对第一指令进行加密,由于第一初始化向量的随机性,即使第一指令与其它指令存在完全相同或部分相同的数据块,在加密后也可以形成与其它指令不同的密文块,安全性更高,指令的单调性也更高。尤其对于静态控制指令,在安全性,稳定性,指令的单调性等方面的较高要求,均可以满足,适用性较好。
例如,参见图2A至图2D分别示出的应用场景示意图。如图2A所示,假设指令1可以划分为明文块1、明文块2和明文块3,在不使用随机生成的第一初始化向量对这3个明文块进行加密后,可以得到图2A所示的密文块1、密文块2和密文块3。其中,密文块1由明文块1加密后得到,密文块2由明文块2加密后得到,密文块3由明文块3加密后得到。
如图2B所示,假设指令2可以划分为明文块4、明文块5和明文块6。在不使用随机生成的第一初始化向量对这3个明文块进行加密后,可以得到图2B所示的密文块4、密文块5和密文块6。其中,密文块4由明文块4加密后得到,密文块5由明文块5加密后得到,密文块6由明文块6加密后得到。
结合图2A和图2B可知,其中,明文块1和明文块4相同,明文块1加密后得到的密文块1和明文块4加密后得到的密文块4也相同。可见,没有使用第一初始化向量加密时,当指令1和指令2有相同的数据块时,加密后可能得到相同的密文块,不同指令之间的逻辑耦合性较高,结合通信系统(例如光伏跟踪发电系统)的实际情况,容易被分析得到指令的结构数据,安全性、稳定性、指令的单调性均较低。
如图2C所示,假设指令3可以划分为明文块7、明文块8和明文块9。在使用随机生成的第一初始化向量对这3个明文块进行加密后,可以得到图2C所示的密文块7、密文块8和密文块9。其中,密文块7由明文块7加密后得到,密文块8由明文块8加密后得到,密文块9由明文块9加密后得到。
如图2D所示,假设指令4可以划分为明文块10、明文块11和明文块12。在使用随机生成的第一初始化向量对这3个明文块进行加密后,可以得到图2D所示的密文块10、密文块11和密文块12。其中,密文块10由明文块10加密后得到,密文块11由明文块11加密后得到,密文块12由明文块12加密后得到。
结合图2C和图2D可知,明文块7、明文块8、明文块9分别与明文块10、明文块11、明文块12相同。密文块7与密文块10不同,密文块8与密文块11不同,密文块9与密文块12不同。可见,在分别使用随机生成的第一初始化向量对指令3、指令4加密后,即使指令3与指令4相同,加密后得到的密文也不同,安全性、稳定性、指令的单调性更高。
一种可能的实现方式中,基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,可以按照下述方式实现:生成加盐数据;对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
可选地,加盐数据可以为主机随机生成的数据块,即,加盐数据仅用于对第一指令加密时使用。可选地,加盐数据还可以为主机固定生成的数据块,即,加盐数据除了用于对第一指令进行加密,还可以用于对主机生成的其它指令进行加密。
一种可能的实现方式中,基于初始密文块和第一密钥,加密生成第一指令的多个数据块中各数据块的密文块,可以按照下述方式实现:对初始密文块与N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;通过第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
一种可能的实现方式中,基于第1个数据块的密文块和第一密钥,加密生成第M个数据块的密文块,可以按照下述方式实现:对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
也就是说,主机生成N个数据块中第1个数据块的密文块后,可以对第1个数据块的密文块与N个数据块中第2个数据块进行异或运算,生成第2个异或数据块;然后,主机可以通过第一密钥对第2个异或数据块进行加密,生成第2个数据块的密文块。
之后,主机可以对第2个数据块的密文块与N个数据块中第3个数据块进行异或运算,生成第3个异或数据块;然后,主机可以通过第一密钥对第3个异或数据块进行加密,生成第3个数据块的密文块。
以此类推,主机在得到第N-1个数据块的密文块之后,可以对第N-1个数据块的密文块与N个数据块中第N个数据块进行异或运算,生成第N个异或数据块;然后,主机可以通过第一密钥对第N个异或数据块进行加密,生成第N个数据块的密文块。
按照此种实施方式对第一指令进行加密,由于引入了加盐数据和第一初始化向量,在对第一指令划分的多个数据块加密之前,增加了一个初始密文块,对第一指令的帧结构进行了较好的隐藏,指令的安全性更高。且由于第一初始化向量的随机性,即使第一指令与其它指令存在完全相同或部分相同的数据块,在加密后也可以形成与其它指令不同的密文块,安全性更高,指令的单调性也更高。
步骤S104、基于所述各数据块的密文块生成第二指令。
主机生成第一指令包括的多个数据块中各数据块的密文块之后,可以将得到的所有密文块重新合成为一个数据帧,将该数据帧记为第二指令。即,第二指令为第一指令加密后的指令。
一种可能的实现方式中,第二指令可以包括所述多个数据块中各数据块的密文块。
一种可能的实现方式中,第二指令可以包括初始密文块和所述多个数据块中各数据块的密文块。
本申请实施例提供的加密方法,可以将第一指令(该第一指令可以为光伏跟踪发电系统的通信控制指令),按照从帧头至帧尾的顺序,划分为多个数据块,然后可以随机生成仅为第一指令加密使用的第一初始化向量,之后,可以基于第一初始化向量和第一密钥对前述多个数据块进行加密,得到各数据块的密文块,最后,可以基于各数据块的密文块生成第二指令,即得到第一指令加密后的指令。
其中,由于随机生成了仅为第一指令加密使用的第一初始化向量,使得不同通信控制指令可以使用不同的初始化向量进行加密,进而使得每个通信控制指令的各数据块加密时,可以生成与其它通信控制指令不同的密文块,很好的消除了各通信控制指令之间的逻辑耦合性,对通信控制指令的帧结构形成较好的隐藏保护,安全性、保密性更高。并且,每个通信控制指令使用不同的初始化向量加密,使得各通信控制指令之间保持了较高的独立性,可以保证各通信控制指令的不可复用,从而可以避免对光伏跟踪发电系统的通信劫持或非法控制。
下面结合附图,对本申请提供的解密方法的实施例进行说明。
参见图3,图3为本申请实施例提供的一种解密方法的流程示意图。该方法可以应用于终端设备、服务器、光伏跟踪发电系统中光伏子阵的从机等,下面以光伏子阵的从机(后续简称为从机)为例,对本申请实施例提供的解密方法进行说明。如图3所示,该方法可以包括以下步骤:
步骤S201、从第二指令的帧尾至帧头,划分所述第二指令为多个数据块。
其中,第二指令为第一指令加密后得到的指令。第一指令的具体内容可以参考前述实施例的内容,此处不再赘述。
可选地,主机在对第一指令加密得到第二指令后,可以将第二指令发送给从机。从机接收到主机发送的第二指令后,可以按照预设划分长度,从第二指令的帧尾至帧头,将第二指令划分为多个长度相同的数据块。其中,对于预设划分长度的内容,从机可以通过协议与主机约定,或者,主机还可以通过消息,将预设划分长度发送给从机,本申请对此不进行限制。
步骤S202、随机生成第一初始化向量。
其中,第一初始化向量为对第一指令加密时使用的初始化向量。具体内容可以参考前述实施例的内容,此处不再赘述。
可选地,从机可以通过协议与主机约定或协商第一初始化向量的生成方式。可选地,主机还可以通过消息,指示从机第一初始化向量的生成方式。可选地,从机还可以接收主机发送的第一初始化向量。本申请对此不进行限制。
步骤S203、基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块。
其中,第一密钥为对第一指令加密时使用的密钥。第一密钥的具体内容可以参考前述实施例的内容,此处不再赘述。
可选地,从机可以通过协议与主机约定或协商第一密钥的生成方式。可选地,主机还可以通过消息,指示从机第一密钥的生成方式。可选地,从机还可以接收主机发送的第一密钥。本申请对此不进行限制。
一种可能的实现方式中,第二指令包括第一指令的多个数据块中各数据块的密文块,第一指令的多个数据块可以包括N个数据块,则第二指令的多个数据块也可以包括N个数据块。
此种应用场景中,基于第一初始化向量和第一密钥解密生成第二指令的多个数据块中各数据块的明文块,可以按照下述方式实现:通过第一密钥对第二指令的N个数据块中的第1个数据块进行解密,得到第1个数据块对应的解密数据块;对第1个数据块对应的解密数据块与该N个数据块中第2个数据块进行异或运算,生成第1个数据块的明文块;通过第一密钥对第2个数据块进行解密,得到第2个数据块对应的解密数据块;对第2个数据块对应的解密数据块与该N个数据块中第3个数据块进行异或运算,生成第2个数据块的明文块;通过第一密钥对第3个数据块进行解密,得到第3个数据块的解密数据块;对第3个数据块的解密数据块与该N个数据块中第4个数据块进行异或运算,生成第3个数据块的明文块;以此类推,通过第一密钥对该N个数据块中的第N-1个数据块进行解密,得到第N-1个数据块对应的解密数据块;对第N-1个数据块对应的解密数据块与第N个数据块进行异或运算,生成第N-1个数据块的明文块;之后,通过第一密钥对第N个数据块进行解密,得到第N个数据块对应的解密数据块;对第N个数据块对应的解密数据块与第一初始化向量进行异或运算,生成第N个数据块的明文块。
按照此种实施方式对第二指令进行解密,只要确保主机与从机之间通信的连续性与稳定性,便可以保证指令的较高安全性、稳定性和单调性,适用性较好。
一种可能的实现方式中,第二指令可以包括第一指令的多个数据块中各数据块的密文块和初始密文块,该初始密文块是指对第一指令加密时,基于第一初始化向量、加盐数据和第一密钥,加密生成的密文块。第一指令的多个数据块可以包括N个数据块,则第二指令的多个数据块可以包括N+1个数据块。其中,初始密文块为第二指令的多个数据块中的最后一个数据块,即,初始密文块为第二指令的N+1个数据块中的第N+1个数据块。
此种应用场景中,基于第一初始化向量和第一密钥解密生成第二指令的多个数据块中各数据块的明文块,可以按照下述方式实现:通过第一密钥对第二指令的N+1个数据块中的第1个数据块进行解密,得到第1个数据块对应的解密数据块;对第1个数据块对应的解密数据块与该N+1个数据块中第2个数据块进行异或运算,生成第1个数据块的明文块;通过第一密钥对第2个数据块进行解密,得到第2个数据块对应的解密数据块;对第2个数据块对应的解密数据块与该N+1个数据块中第3个数据块进行异或运算,生成第2个数据块的明文块;通过第一密钥对第3个数据块进行解密,得到第3个数据块的解密数据块;对第3个数据块的解密数据块与该N+1个数据块中第4个数据块进行异或运算,生成第3个数据块的明文块;以此类推,通过第一密钥对该N+1个数据块中的第N个数据块进行解密,得到第N个数据块对应的解密数据块;对第N个数据块对应的解密数据块与初始密文块进行异或运算,生成第N个数据块的明文块;之后,通过第一密钥对第N+1个数据块(即初始密文块)进行解密,得到第N+1个数据块对应的解密数据块;对第N+1个数据块对应的解密数据块与第一初始化向量进行异或运算,生成第N+1个数据块的明文块。
按照此种实施方式对第二指令进行解密,由于解密得到的最后一个明文块是加盐数据对应的明文块,即使主机与从机之间出现通信问题,例如丢包等通信问题,从机无法正确生成第一初始化向量,初始密文块解密失败,也不会对主机发送给从机的通信控制指令造成影响,通信控制指令的安全性、稳定性更好。
步骤S204、基于所述多个数据块中各数据块的明文块生成第一指令。
从机解密得到第二指令的多个数据块中各数据块的明文块之后,可以基于得到的明文块重新合成一个数据帧,将该数据帧记为第一指令。第一指令可以理解为由主机生成且需要从机执行的指令。
一种可能的实现方式中,第二指令包括第一指令的多个数据块中各数据块的密文块时,从机可以基于第二指令的多个数据块中各数据块的明文块生成第一指令。
一种可能的实现方式中,第二指令包括第一指令的多个数据块中各数据块的密文块和初始密文块时,从机可以基于第二指令包括的多个数据块中除初始密文块之外的数据块的明文块生成第一指令。
本申请提供的解密方法,可以基于随机生成的第一初始化向量对第二指令进行解密,基于与本申请上述加密方法的同一发明构思,可以得到相应的有益效果,可以保证通信控制指令的安全性、保密性和独立性,适用性较好。
下面结合附图,对本申请提供的通信方法的实施例进行说明。
参见图4,图4为本申请实施例提供的一种通信方法的流程示意图。该方法可以应用于发送端设备,例如光伏跟踪发电系统中光伏子阵的主机(后续简称为主机)。下面以主机为例,对本申请实施例提供的通信方法进行说明。如图4所示,该方法可以包括以下步骤:
步骤S301、生成第K个控制指令,所述第K个控制指令包括第K个通信序号。
其中,K为正整数。可选地,第K个通信序号可以根据实际应用场景的需求设置。例如,第K个通信序号可以设置为任意一个整数,或者,第K个通信序号还可以设置为任意一个自然数。可以理解,第K个通信序号还可以设置为其它可以区分大小的数值,本申请对此不进行限制。
步骤S302、生成第K个加密指令。
其中,第K个加密指令是指将所述第K个控制指令做为第一指令,通过本申请上述任意一个实施例提供的加密方法生成的第二指令。
步骤S303、发送所述第K个加密指令。
主机生成第K个加密指令后,可以向从机发送第K个加密指令。
一种可能的实现方式中,主机发送第K个加密指令后,如果在预设时长内接收到回复信息,可以生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过本申请上述任意一个实施例提供的加密方法生成的第二指令;发送所述第K+1个加密指令。其中,预设时长可以根据实际应用场景的需求设置,例如预设时长可以设置为5秒、10秒、20秒或30秒等。
一种可能的实现方式中,主机发送第K个加密指令后,如果在预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
也就是说,主机在与任一一个从机通信时,主机生成第1个控制指令后,可以在第1个控制指令的数据包中携带第1个通信序号,然后主机可以通过本申请上述任意一个实施例提供的加密方法,对第1个控制指令进行加密,得到第1个控制指令被加密后的指令,将该指令记为第1个加密指令。然后主机可以将第1个加密指令发送给从机。
之后,如果主机在预设时长内接收到回复信息,根据该回复信息确定第1个控制指令被执行。则主机可以继续生成第2个控制指令,且在第2个控制指令的数据包中携带第2个通信序号,第2个通信序号大于第1个通信序号。然后,主机可以通过本申请的上述任意一个实施例提供的加密方法,对第2个控制指令进行加密,得到第2个控制指令被加密后的指令,将该指令记为第2个加密指令。然后,主机可以将第2个加密指令发送给从机。或者,
如果主机在预设时长内没有接收到回复信息,则主机会重新发送第1个加密指令,如果第2次发送第1个加密指令后,在预设时长内接收到回复信息,则主机可以继续生成第3个控制指令,且在第3个控制指令的数据包中携带第3个通信序号,第3个通信序号大于第2个通信序号。然后,主机可以通过本申请上述任意一个实施例提供的加密方法,对第3个控制指令进行加密,得到第3个控制指令被加密后的指令,将该指令记为第3个加密指令。然后,主机可以将第3个加密指令发送给从机。或者,
如果第2次发送第1个加密指令后,主机在预设时长内仍然没有接收到回复信息,则主机可以第3次发送第1个加密指令。
以此类推,直到主机第F1次发送第1个加密指令后,在预设时长内接收到回复信息,生成第2个控制指令,并对第2个控制指令加密得到第2个加密指令后,发送第2个加密指令。或者,
直到主机第F2次发送第1个加密指令后,在预设时长内没有接收到回复信息,则进行报错处理。
以此类推,主机可以依次发送第2个加密指令、第3个加密指令、……,第K个加密指令等。
其中,F2的取值可以根据实际应用场景的需求设置。例如,可以将F2的值设置为3、4、5等。
本申请提供的通信方法,在对控制指令加密的同时,还会在控制指令中携带一个通信序号,且后生成的控制指令中携带的通信序号大于先生成的控制指令中携带的通信序号。并且,只有在前一个控制指令被执行后,才会生成下一个控制指令。在保证通信安全的前提下,还保证了控制指令的不可复用和高效执行,通信效率更加高效安全,适用性更好。
参见图5,图5为本申请实施例提供的另一种通信方法的流程示意图。该方法可以应用于接收端设备,例如光伏跟踪发电系统中光伏子阵的从机(后续简称为从机)。下面以从机为例,对本申请实施例提供的通信方法进行说明。如图5所示,该方法可以包括以下步骤:
步骤S401、接收第K个加密指令。
其中,K为正整数。第K个加密指令的内容可以参考前述实施例的内容,此处不再赘述。
步骤S402、生成第K个控制指令。
从机接收到第K个加密指令后,可以将第K个加密指令作为第二指令,通过本申请上述任意一个实施例提供的解密方法生成第一指令,将该第一指令记为第K个控制指令。
步骤S403、从所述第K个控制指令中获取第K个通信序号。
由前述实施例可知,主机在生成第K个控制指令时,在第K个控制指令中携带第K个通信序号。从机接收到第K个加密指令,解密得到第K个控制指令后,可以从第K个控制指令中获取第K个通信序号。
步骤S404、确定所述第K个通信序号是否大于第K-1个通信序号。
其中,第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号。
步骤S405、如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令。
从机确定第K个通信序号大于第K-1个通信序号后,可以执行第K个控制指令。
步骤S406、发送回复信息。
其中,回复信息用于指示第K个控制指令已被执行。
从机执行完第K个控制指令后,会向主机发送回复信息,通过该回复信息,告知主机第K个控制指令已经被执行。
步骤S407、如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
如果第K个通信序号小于或等于第K-1个通信序号,从机不会再执行第K个控制指令,而是直接向主机发送回复信息。
一种可能的实现方式中,从机获取到第K个通信序号后,会存储第K个通信序号。
本申请提供的通信方法,从机在接收到加密指令,解密后得到控制指令,并且从控制指令中获取到控制指令的通信序号后,会比较该通信序号与之前得到的通信序号的大小,只有在该通信序号大于之前得到的通信序号的情况下,才会执行该控制指令,并且在执行控制指令后会向主机发送回复信息,或者,在确定该通信序号小于或等于之前得到的通信序号后,也会发送回复信息,通过该回复信息告知主机该控制指令已经被执行,以便主机生成下一个控制指令。在保证通信安全的前提下,还保证了控制指令的不可复用和高效执行,通信效率更加高效安全,适用性更好。
可以理解的是,上述实施例仅为示例,实际实施时可以对上述实施例进行变形,本领域技术人员可以理解,上述实施例不用付出创造性劳动的变形方法均落入本申请的保护范围,实施例中不再赘述。
基于同一发明构思,本申请实施例还提供一种加密装置、解密装置、通信装置,由于加密装置、解密装置、通信装置所解决问题的原理与前述加密方法、解密方法、通信方法相似,因此加密装置、解密装置、通信装置的实施可以参见前述加密方法、解密方法、通信方法的实施,重复之处不再赘述。
参见图6,图6为本申请实施例提供的一种加密装置的结构框图。如图6所示,该加密装置600可以包括:划分模块601、第一生成模块602、加密模块603和第二生成模块604。其中,
所述划分模块601,可以用于从第一指令的帧头至帧尾,划分所述第一指令为多个数据块。
所述第一生成模块602,可以用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令进行加密时使用的初始化向量。
所述加密模块603,可以用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块。
所述第二生成模块604,可以用于基于所述各数据块的密文块生成第二指令,所述第二指令为所述第一指令加密后的指令。
一种可能的实现方式中,所述加密模块603用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,具体为:所述加密模块603用于:生成加盐数据;对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
一种可能的实现方式中,所述多个数据块包括N个数据块;N为大于或等于2的整数;所述加密模块603用于基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块,具体为:所述加密模块603用于:对所述初始密文块与所述N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;通过所述第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
一种可能的实现方式中,所述加密模块603用于基于所述第1个数据块的密文块和所述第一密钥,加密生成第M个数据块的密文块,具体为:所述加密模块603用于:对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
一种可能的实现方式中,所述第一指令为用于光伏子阵的通信控制指令;所述装置还包括:第三生成模块,用于基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
参见图7,图7为本申请实施例提供的一种解密装置的结构框图。如图7所示,该解密装置700可以包括:划分模块701、第一生成模块702、解密模块703和第二生成模块704。
其中,所述划分模块701,可以用于从第二指令的帧尾至帧头,划分所述第二指令为多个数据块;所述第二指令为第一指令加密后得到的指令。
所述第一生成模块702,可以用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令加密时使用的初始化向量。
所述解密模块703,可以用于基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块;所述第一密钥为对所述第一指令加密时使用的密钥。
所述第二生成模块704,可以用于基于所述多个数据块中各数据块的明文块生成所述第一指令。
一种可能的实现方式中,所述多个数据块的最后一个数据块为初始密文块;所述初始密文块为对所述第一指令加密时,基于所述第一初始化向量、加盐数据和所述第一密钥,加密生成的密文块;所述第二生成模块704用于基于所述多个数据块中各数据块的明文块生成所述第一指令,具体为:所述第二生成模块704用于基于所述多个数据块中除所述初始密文块之外的数据块的明文块生成所述第一指令。
参见图8,图8为本申请实施例提供的一种通信装置的结构框图。如图8所示,该通信装置800可以包括:第一生成模块801、第二生成模块802、和发送模块803。其中,
所述第一生成模块801,可以用于生成第K个控制指令,所述第K个控制指令包括第K个通信序号;K为正整数。
所述第二生成模块802,可以用于生成第K个加密指令,所述第K个加密指令是指将所述第K个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令。
所述发送模块803,可以用于发送所述第K个加密指令。
一种可能的实现方式中,发送所述第K个加密指令后,所述第一生成模块801还可以用于如果在预设时长内接收到回复信息,生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;所述第二生成模块802还可以用于生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;所述发送模块803还可以用于发送所述第K+1个加密指令。
一种可能的实现方式中,所述通信装置800还可以包括:处理模块,用于如果在所述预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
参见图9,图9为本申请实施例提供的另一种通信装置的结构框图。如图9所示,该通信装置900可以包括:接收模块901、生成模块902、获取模块903、确定模块904、执行模块905和发送模块906。其中,
所述接收模块901,可以用于接收第K个加密指令;K为正整数。
所述生成模块902,可以用于生成第K个控制指令,所述第K个控制指令是指将所述第K个加密指令作为第二指令,通过权利要求6或7所述的解密方法生成的第一指令。
所述获取模块903,可以用于从所述第K个控制指令中获取第K个通信序号。
所述确定模块904,可以用于确定所述第K个通信序号是否大于第K-1个通信序号,所述第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号。
所述执行模块905,可以用于如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令。
所述发送模块906,可以用于发送回复信息,所述回复信息用于指示所述第K个控制指令已被执行。
一种可能的实现方式中,所述发送模块906还可以用于:如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
参见图10,图10为本申请实施例提供的一种计算机设备的结构框图。如图10所示,该计算机设备1000可以包括处理器1001和存储器1002;存储器1002可以耦合到处理器1001中。值得注意的是,该图10是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一种可能的实现方式中,加密装置600、解密装置700、通信装置800或通信装置900的功能可以被集成到处理器1001中。
一种可能的实现方式中,加密装置600、解密装置700、通信装置800或通信装置900可以与处理器1001分开配置,例如可以将加密装置600、解密装置700、通信装置800或通信装置900配置为与处理器1001连接的芯片,通过处理器1001的控制来实现加密、解密或通信。
此外,在一些可选的实现方式中,该计算机设备1000还可以包括:通信模块、输入单元、音频处理器、显示器、电源等。值得注意的是,计算机设备1000也并不是必须要包括图10中所示的所有部件;此外,计算机设备1000还可以包括图10中没有示出的部件,可以参考现有技术。
在一些可选的实现方式中,处理器1001有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器1001接收输入并控制计算机设备1000的各个部件的操作。
其中,存储器1002,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与加密装置600、解密装置700、通信装置800或通信装置900有关的信息,此外还可存储执行有关信息的程序。并且处理器1001可执行该存储器1002存储的该程序,以实现信息存储或处理等。
输入单元可以向处理器1001提供输入。该输入单元例如为按键或触摸输入装置。电源可以用于向计算机设备1000提供电力。显示器可以用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
存储器1002可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器1002还可以是某种其它类型的装置。存储器1002包括缓冲存储器(有时被称为缓冲器)。存储器1002可以包括应用/功能存储部,该应用/功能存储部用于存储应用程序和功能程序或用于通过处理器1001执行计算机设备1000的操作的流程。
存储器1002还可以包括数据存储部,该数据存储部用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器1002的驱动程序存储部可以包括计算机设备的用于通信功能和/或用于执行计算机设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块即为经由天线发送和接收信号的发送机/接收机。通信模块(发送机/接收机)耦合到处理器1001,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一计算机设备中,可以设置有多个通信模块,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)还经由音频处理器耦合到扬声器和麦克风,以经由扬声器提供音频输出,并接收来自麦克风的音频输入,从而实现通常的电信功能。音频处理器可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器还耦合到处理器1001,从而使得可以通过麦克风能够在本机上录音,且使得可以通过扬声器来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的加密方法、解密方法或通信方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的加密方法、解密方法或通信方法的全部步骤。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本申请并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本申请的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。
以上结合了优选的实施方式对本申请进行了说明,不过这些实施方式仅是范例性的,仅起到说明性的作用。在此基础上,可以对本申请进行多种替换和改进,这些均落入本申请的保护范围内。

Claims (26)

1.一种加密方法,其特征在于,所述方法包括:
从第一指令的帧头至帧尾,划分所述第一指令为多个数据块;
随机生成第一初始化向量,所述第一初始化向量为对所述第一指令进行加密时使用的初始化向量;
基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块;
基于所述各数据块的密文块生成第二指令,所述第二指令为所述第一指令加密后的指令。
2.如权利要求1所述的方法,其特征在于,基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,包括:
生成加盐数据;
对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;
通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;
基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
3.如权利要求2所述的方法,其特征在于,所述多个数据块包括N个数据块;N为大于或等于2的整数;
所述基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块,包括:
对所述初始密文块与所述N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;
通过所述第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;
基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
4.如权利要求3所述的方法,其特征在于,基于所述第1个数据块的密文块和所述第一密钥,加密生成第M个数据块的密文块,包括:
对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;
通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
5.如权利要求1所述的方法,其特征在于,所述第一指令为用于光伏子阵的通信控制指令;
基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块之前,所述方法还包括:
基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
6.一种解密方法,其特征在于,所述方法包括:
从第二指令的帧尾至帧头,划分所述第二指令为多个数据块;所述第二指令为第一指令加密后得到的指令;
随机生成第一初始化向量,所述第一初始化向量为对所述第一指令加密时使用的初始化向量;
基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块;所述第一密钥为对所述第一指令加密时使用的密钥;
基于所述多个数据块中各数据块的明文块生成所述第一指令。
7.如权利要求6所述的方法,其特征在于,所述多个数据块的最后一个数据块为初始密文块;所述初始密文块为对所述第一指令加密时,基于所述第一初始化向量、加盐数据和所述第一密钥,加密生成的密文块;
所述基于所述多个数据块中各数据块的明文块生成所述第一指令,包括:
基于所述多个数据块中除所述初始密文块之外的数据块的明文块生成所述第一指令。
8.一种通信方法,其特征在于,所述方法包括:
生成第K个控制指令,所述第K个控制指令包括第K个通信序号;K为正整数;
生成第K个加密指令,所述第K个加密指令是指将所述第K个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;
发送所述第K个加密指令。
9.如权利要求8所述的方法,其特征在于,发送所述第K个加密指令后,所述方法还包括:
如果在预设时长内接收到回复信息,生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;
生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;
发送所述第K+1个加密指令。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
如果在所述预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
11.一种通信方法,其特征在于,所述方法包括:
接收第K个加密指令;K为正整数;
生成第K个控制指令,所述第K个控制指令是指将所述第K个加密指令作为第二指令,通过权利要求6或7所述的解密方法生成的第一指令;
从所述第K个控制指令中获取第K个通信序号;
确定所述第K个通信序号是否大于第K-1个通信序号,所述第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号;
如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令;
发送回复信息,所述回复信息用于指示所述第K个控制指令已被执行。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:
如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
13.一种加密装置,其特征在于,所述装置包括:
划分模块,用于从第一指令的帧头至帧尾,划分所述第一指令为多个数据块;
第一生成模块,用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令进行加密时使用的初始化向量;
加密模块,用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块;
第二生成模块,用于基于所述各数据块的密文块生成第二指令,所述第二指令为所述第一指令加密后的指令。
14.如权利要求13所述的装置,其特征在于,所述加密模块用于基于所述第一初始化向量和第一密钥加密生成所述多个数据块中各数据块的密文块,具体为:
所述加密模块用于:
生成加盐数据;
对所述第一初始化向量与所述加盐数据进行异或运算,生成初始异或数据块;
通过所述第一密钥对所述初始异或数据块进行加密,生成初始密文块;
基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块。
15.如权利要求14所述的装置,其特征在于,所述多个数据块包括N个数据块;N为大于或等于2的整数;
所述加密模块用于基于所述初始密文块和所述第一密钥,加密生成所述多个数据块中各数据块的密文块,具体为:
所述加密模块用于:
对所述初始密文块与所述N个数据块中第1个数据块进行异或运算,生成第1个异或数据块;
通过所述第一密钥对所述第1个异或数据块进行加密,生成所述第1个数据块的密文块;
基于所述第1个数据块的密文块和所述第一密钥,加密生成所述N个数据块中第2至N个数据块的密文块。
16.如权利要求15所述的装置,其特征在于,所述加密模块用于基于所述第1个数据块的密文块和所述第一密钥,加密生成第M个数据块的密文块,具体为:
所述加密模块用于:
对目标密文块与所述第M个数据块进行异或运算,生成第M个异或数据块;所述第M个数据块为所述第2至N个数据块中任意一个数据块,M为大于或等于2,且小于或等于N的整数;所述目标密文块为第M-1个数据块的密文块;M等于2时,所述目标密文块为所述第1个数据块的密文块;
通过所述第一密钥对所述第M个异或数据块进行加密,生成第M个数据块的密文块。
17.如权利要求13所述的装置,其特征在于,所述第一指令为用于光伏子阵的通信控制指令;
所述装置还包括:
第三生成模块,用于基于第一编号和第二编号生成所述第一密钥;所述第一编号为所述光伏子阵所在属地的编号;所述第二编号为所述光伏子阵的编号。
18.一种解密装置,其特征在于,所述装置包括:
划分模块,用于从第二指令的帧尾至帧头,划分所述第二指令为多个数据块;所述第二指令为第一指令加密后得到的指令;
第一生成模块,用于随机生成第一初始化向量,所述第一初始化向量为对所述第一指令加密时使用的初始化向量;
解密模块,用于基于所述第一初始化向量和第一密钥解密生成所述多个数据块中各数据块的明文块;所述第一密钥为对所述第一指令加密时使用的密钥;
第二生成模块,用于基于所述多个数据块中各数据块的明文块生成所述第一指令。
19.如权利要求18所述的装置,其特征在于,所述多个数据块的最后一个数据块为初始密文块;所述初始密文块为对所述第一指令加密时,基于所述第一初始化向量、加盐数据和所述第一密钥,加密生成的密文块;
所述第二生成模块用于基于所述多个数据块中各数据块的明文块生成所述第一指令,具体为:
所述第二生成模块用于基于所述多个数据块中除所述初始密文块之外的数据块的明文块生成所述第一指令。
20.一种通信装置,其特征在于,所述装置包括:
第一生成模块,用于生成第K个控制指令,所述第K个控制指令包括第K个通信序号;K为正整数;
第二生成模块,用于生成第K个加密指令,所述第K个加密指令是指将所述第K个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;
发送模块,用于发送所述第K个加密指令。
21.如权利要求20所述的装置,其特征在于,发送所述第K个加密指令后,所述第一生成模块还用于如果在预设时长内接收到回复信息,生成第K+1个控制指令,所述第K+1个控制指令包括第K+1个通信序号;所述回复信息用于指示所述第K个控制指令已被执行;所述第K+1个通信序号大于所述第K个通信序号;
所述第二生成模块还用于生成第K+1个加密指令,所述第K+1个加密指令是指将所述第K+1个控制指令做为第一指令,通过权利要求1至5中任意一项所述的加密方法生成的第二指令;
所述发送模块还用于发送所述第K+1个加密指令。
22.如权利要求21所述的装置,其特征在于,所述装置还包括:
处理模块,用于如果在所述预设时长内没有接收到所述回复信息,重新执行发送所述第K个加密指令的步骤,直至第F1次执行发送所述第K个加密指令的步骤后,如果在预设时长内接收到所述回复信息,执行生成第K+1个控制指令的步骤及后续步骤;或者,在第F2次执行发送所述第K个加密指令的步骤后,如果在预设时长内没有接收到所述回复信息,则进行报错处理;F1和F2均为正整数,F1大于或等于2,且小于或等于F2。
23.一种通信装置,其特征在于,所述装置包括:
接收模块,用于接收第K个加密指令;K为正整数;
生成模块,用于生成第K个控制指令,所述第K个控制指令是指将所述第K个加密指令作为第二指令,通过权利要求6或7所述的解密方法生成的第一指令;
获取模块,用于从所述第K个控制指令中获取第K个通信序号;
确定模块,用于确定所述第K个通信序号是否大于第K-1个通信序号,所述第K-1个通信序号为已经生成的第K-1个控制指令包括的通信序号;
执行模块,用于如果所述第K个通信序号大于所述第K-1个通信序号,执行所述第K个控制指令;
发送模块,用于发送回复信息,所述回复信息用于指示所述第K个控制指令已被执行。
24.如权利要求23所述的装置,其特征在于,所述发送模块还用于:
如果所述第K个通信序号小于或等于所述第K-1个通信序号,发送所述回复信息。
25.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-5中任意一项所述的方法,或6-7中任意一项所述的方法,或8-10中任意一项所述的方法,或11-12中任意一项所述的方法。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5中任意一项所述的方法,或6-7中任意一项所述的方法,或8-10中任意一项所述的方法,或11-12中任意一项所述的方法。
CN202310977572.4A 2023-08-04 2023-08-04 加密方法、解密方法、通信方法及装置 Pending CN116886403A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310977572.4A CN116886403A (zh) 2023-08-04 2023-08-04 加密方法、解密方法、通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310977572.4A CN116886403A (zh) 2023-08-04 2023-08-04 加密方法、解密方法、通信方法及装置

Publications (1)

Publication Number Publication Date
CN116886403A true CN116886403A (zh) 2023-10-13

Family

ID=88262143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310977572.4A Pending CN116886403A (zh) 2023-08-04 2023-08-04 加密方法、解密方法、通信方法及装置

Country Status (1)

Country Link
CN (1) CN116886403A (zh)

Similar Documents

Publication Publication Date Title
CN106416121B (zh) 用于签名产生和加密/解密的共模rsa密钥对
CN113411345B (zh) 一种安全会话的方法和装置
US8472620B2 (en) Generation of device dependent RSA key
EP2996280A1 (en) Public key encryption communication method and apparatus
CN112118098B (zh) 后量子安全增强数字信封方法、装置及系统
US20100061550A1 (en) Data processing apparatus
EP3086585B1 (en) Method and system for securing data communicated in a network
CN105208028A (zh) 一种数据传输方法和相关装置及设备
CN113987583A (zh) 一种隐匿查询方法及系统
CN108848413B (zh) 视频的防重放攻击系统、方法、装置及存储介质
CN111788836B (zh) 数据传输的方法和ble设备
CN113987584A (zh) 一种隐匿查询方法及系统
US20120027198A1 (en) System and method for cryptographic communications using permutation
CN113612746B (zh) 基于Android系统的敏感信息存储方法及系统
CN114117406A (zh) 一种数据处理方法、装置、设备及存储介质
JP6203798B2 (ja) 車載制御システム、車両、管理装置、車載コンピュータ、データ共有方法、及びコンピュータプログラム
CN109617676B (zh) 一种密码同步方法、通信节点、电子设备和可读存储介质
CN116886403A (zh) 加密方法、解密方法、通信方法及装置
CN111064570A (zh) 共享密钥处理方法、装置、存储介质和电子设备
CN116455572A (zh) 数据加密方法、装置及设备
CN115378592A (zh) 密码服务调用方法和系统
KR20220000537A (ko) 차량 네트워크 기반의 데이터 송수신 시스템 및 그 방법
CN115225334B (zh) 防重放方法及装置
EP4080813B1 (en) Communication method and electronic device
WO2018076671A1 (zh) 一种语音数据处理装置、方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination