本申请提供了一种基于国密SM9的船舶岸基航行控制指令保护方法及系统,该方法包括以下步骤:密钥生成端接收安全参数,输出主密钥和公开参数;密钥生成端接收主密钥、公开参数、客户端标识,输出客户端密钥;岸基控制端接收公开参数,岸基控制端标识,岸基控制端密钥,船舶驾驶端标识以及航行指令,输出离线和在线签密密文;船舶驾驶端接收在线签密密文,公开参数,岸基控制端标识,船舶驾驶端标识以及船舶驾驶端密钥,输出明文和签名。本申请的优势在于:可以同时进行加密和签名操作,在实现航行控制指令隐私保护的同时能降低计算开销。
1.一种基于国密SM9的船舶岸基航行控制指令保护方法,包括:
步骤S1:密钥生成端接收安全参数,输出主密钥和公开参数;
步骤S2:密钥生成端接收主密钥、公开参数和客户端标识,输出客户端密钥;
步骤S3:岸基控制端接收岸基控制端标识、船舶驾驶端标识、公开参数以及岸基控制端密钥,输出离线签密密文;
步骤S4:岸基控制端接收航行指令,输出在线签密密文;
步骤S5:船舶驾驶端接收在线签密密文、船舶驾驶端密钥以及岸基控制端标识;若解签密结果是一个由岸基控制端产生的有效签名数据,则输出航行指令明文和签名;否则,输出拒绝信息。
2.根据权利要求1所述的基于国密SM9的船舶岸基航行控制指令保护方法,其特征在于,所述步骤S1包括:
步骤S11:密钥生成端接收安全参数,生成一个双线性配对元组,其中,分别表示阶为的乘法循环群;双线性映射将群和群上的元素映射为群上的元素,即;为一个大素数,,是的绝对值;密钥生成端随机选取的生成元,的生成元;密钥生成端定义算法,将群中的元素映射为群中的元素;
步骤S12:密钥生成端随机选取,;计算,;
步骤S13:密钥生成端选取三个密码哈希函数,,;其中,将上的元素映射为上的元素;将和上的元素以及大素数映射为上的元素;将上的元素映射为上的元素;表示任意长度的字符串,表示消息的长度,表示长度为的字符串;最后,密钥生成端随机选取1比特密钥生成函数标识;
步骤S14:密钥生成端输出主密钥和公开参数。
3.根据权利要求2所述的基于国密SM9的船舶岸基航行控制指令保护方法,其特征在于,所述步骤S2包括:
步骤S21:密钥生成端接收客户端标识,主密钥以及公开参数;
步骤S22:密钥生成端计算客户端密钥;若,则密钥生成端重新选取主公钥并计算客户端密钥;
步骤S23:密钥生成端输出客户端密钥。
4.根据权利要求3所述的基于国密SM9的船舶岸基航行控制指令保护方法,其特征在于,所述步骤S3包括:
步骤S31:岸基控制端接收公开参数,岸基控制端密钥,岸基控制端标识以及船舶驾驶端标识;
步骤S32:岸基控制端计算群中的元素;
步骤S33:岸基控制端选取随机值,计算,,,;
步骤S34:岸基控制端输出离线签密密文。
5.根据权利要求4所述的基于国密SM9的船舶岸基航行控制指令保护方法,其特征在于,所述步骤S4包括:
步骤S41:岸基控制端接收离线签密密文,公开参数,岸基控制端标识,航行指令,以及船舶驾驶端标识;
步骤S42:岸基控制端计算,以及;其中表示异或运算;
步骤S43:岸基控制端输出在线签密密文。
6.根据权利要求5所述的基于国密SM9的船舶岸基航行控制指令保护方法,其特征在于,所述步骤S5包括:
步骤S51:船舶驾驶端接收公开参数,在线签密密文,船舶驾驶端密钥,船舶驾驶端标识以及岸基控制端标识;
步骤S52:船舶驾驶端计算,,,,,,以及;
步骤S53:船舶驾驶端检查等式是否成立;若等式成立,输出航行指令明文和签名;否则,输出拒绝信息。
7.一种基于国密SM9的船舶岸基航行控制指令保护系统,基于权利要求1-6任一所述方法实现,其特征在于,所述系统包括:
密钥生成端,用于根据安全参数,产生主密钥和公开参数;用于根据主密钥、公开参数和客户端标识,产生客户端密钥;
岸基控制端,用于根据航行指令、公开参数、岸基控制端标识、岸基控制端密钥以及船舶驾驶端标识,产生离线签密密文以及在线签密密文;和
船舶驾驶端,用于根据在线签密密文、公开参数、岸基控制端标识、船舶驾驶端标识以及船舶驾驶端密钥,恢复航行指令明文和签名。
技术领域
[0001]本申请属于互联网安全技术领域,具体涉及一种基于国密SM9的船舶岸基航行控制指令保护方法及系统。
背景技术
[0002]遥控驾驶船舶是指通过远程控制系统实现对船舶进行操作的技术。随着自动化和信息技术的进步,遥控驾驶船舶已经从概念走向实践,其旨在提高航运效率、降低运营成本、提升航海安全,并最终实现全自动无人航行。在遥控驾驶船舶系统中,通信安全是一个至关重要的问题。船舶与岸基控制中心之间的数据传输需要保障高度的机密性和完整性,以防止敏感信息泄露或被篡改。如果控制指令遭到截获或修改,可能会导致航行偏离预定航线、碰撞、甚至造成环境污染等严重后果。
[0003]现有的船舶与岸基控制中心之间的数据传输方法存在着网络安全风险:船岸之间的通信是实现远程控制的关键。然而,通讯系统可能面临网络延迟、中断或被攻击的风险。网络安全问题可能导致控制指令无法及时或安全地传输,影响船舶的航行安全。
发明内容
[0004]本申请的目的在于克服现有船舶与岸基控制中心之间的数据传输方法存在着网络安全风险的缺陷。
[0005]为了实现上述目的,本申请提出了一种基于国密SM9的船舶岸基航行控制指令保护方法,包括:
[0006]步骤S1:密钥生成端接收安全参数,输出主密钥和公开参数;
[0007]步骤S2:密钥生成端接收主密钥、公开参数和客户端标识,输出客户端密钥;
[0008]步骤S3:岸基控制端接收岸基控制端标识和船舶驾驶端标识,公开参数以及岸基控制端密钥,输出离线签密密文;
[0009]步骤S4:岸基控制端接收航行指令,输出在线签密密文;
[0010]步骤S5:船舶驾驶端接收在线签密密文、船舶驾驶端密钥以及岸基控制端标识;若解签密结果是一个由岸基控制端产生的有效签名数据,则输出航行指令明文和签名;否则,输出拒绝信息。
[0011]作为上述方法的一种改进,所述步骤S1包括:
[0012]步骤S11:密钥生成端接收安全参数,生成一个双线性配对元组,其中,分别表示阶为的乘法循环群;双线性映射将群和群上的元素映射为群上的元素,即;为一个大素数,,是的绝对值;密钥生成端随机选取的生成元,的生成元;密钥生成端定义算法,将群中的元素映射为群中的元素;
[0013]步骤S12:密钥生成端随机选取,;计算,;
[0014]步骤S13:密钥生成端选取三个密码哈希函数,,;其中,将上的元素映射为上的元素;将和上的元素以及大素数映射为上的元素;将上的元素映射为上的元素;表示任意长度的字符串,表示消息的长度,表示长度为的字符串;最后,密钥生成端随机选取1比特密钥生成函数标识;
[0015]步骤S14:密钥生成端输出主密钥和公开参数。
[0016]作为上述方法的一种改进,所述步骤S2包括:
[0017]步骤S21:密钥生成端接收客户端标识,主密钥以及公开参数;
[0018]步骤S22:密钥生成端计算客户端密钥;若,则密钥生成端重新选取主公钥并计算客户端密钥;
[0019]步骤S23:密钥生成端输出客户端密钥。
[0020]作为上述方法的一种改进,所述步骤S3包括:
[0021]步骤S31:岸基控制端接收公开参数,岸基控制端密钥,岸基控制端标识以及船舶驾驶端标识;
[0022]步骤S32:岸基控制端计算群中的元素;
[0023]步骤S33:岸基控制端选取随机值,计算,,,;
[0024]步骤S34:岸基控制端输出离线签密密文。
[0025]作为上述方法的一种改进,所述步骤S4包括:
[0026]步骤S41:岸基控制端接收离线签密密文,公开参数,岸基控制端标识,航行指令,以及船舶驾驶端标识;
[0027]步骤S42:岸基控制端计算,以及其中表示异或运算;
[0028]步骤S43:岸基控制端输出在线签密密文。
[0029]作为上述方法的一种改进,所述步骤S5包括:
[0030]步骤S51:船舶驾驶端接收公开参数,在线签密密文,船舶驾驶端密钥,船舶驾驶端标识以及岸基控制端标识;
[0031]步骤S52:船舶驾驶端计算,,,,,,以及;
[0032]步骤S53:船舶驾驶端检查等式是否成立;若等式成立,输出航行指令明文和签名;否则,输出拒绝信息
[0033]本申请还提供一种基于国密SM9的船舶岸基航行控制指令保护系统,基于上述方法实现,所述系统包括:
[0034]密钥生成端,用于根据安全参数,产生主密钥和公开参数;用于根据主密钥、公开参数和客户端标识,产生客户端密钥;
[0035]岸基控制端,用于根据航行指令、公开参数、岸基控制端标识、岸基控制端密钥以及船舶驾驶端标识,产生离线签密密文以及在线签密密文;
[0036]船舶驾驶端,用于根据在线签密密文、公开参数、岸基控制端标识、船舶驾驶端标识以及船舶驾驶端密钥,恢复航行指令明文和签名。
[0037]与现有技术相比,本申请的优势在于:
[0038]本发明基于国密SM9标识签名算法设计,使用签密技术使岸基控制端可以同时实现加密和签名操作。使用在线和离线签名技术可以降低轻量级设备的在线计算开销,提高算法执行效率。因此,提出的方法及系统在遥控驾驶船舶岸基航行控制指令保护中具有很强的实用性和广阔的应用前景。
附图说明
[0039]图1所示为基于国密SM9的船舶岸基航行控制指令保护系统架构图。
具体实施方式
[0040]下面结合附图对本申请的技术方案进行详细的说明。
[0041]实施例1
[0042]本实施例提供了一种基于国密SM9的船舶岸基航行控制指令保护方法,在国密SM9加密和签名算法框架下构造基于国密SM9的签密算法,对航行控制指令同时进行加密和签名,生成航行控制指令的密文以及签名,能够同时保证航行控制指令的机密性和完整性,该方法涉及密钥生成端、岸基控制端和船舶驾驶端;
[0043]其中,密钥生成端,用于根据安全参数,产生主密钥和公开参数;用于根据主密钥、公开参数、客户端标识,产生客户端密钥;
[0044]岸基控制端,用于根据公开参数,岸基控制端标识,岸基控制端密钥以及船舶驾驶端标识以及航行指令,产生离线签密密文以及在线签密密文;
[0045]船舶驾驶端,用于根据在线签密密文,公开参数,岸基控制端标识,船舶驾驶端标识以及船舶驾驶端密钥,恢复航行指令明文和签名。
[0046]该方法包括:
[0047]步骤S1:密钥生成端接收安全参数,输出主密钥和公开参数。
[0048]在本实施例中,步骤S1具体包括以下步骤:
[0049]步骤S11:密钥生成端接收安全参数,生成一个双线性配对元组,其中,分别表示阶为的乘法循环群;双线性映射将群和群上的元素映射为群上的元素,即;是一个大素数,,是的绝对值。密钥生成端随机选取的生成元,的生成元。密钥生成端定义算法,将群中的元素映射为群中的元素。
[0050]步骤S12:密钥生成端随机选取,;计算,;
[0051]步骤S13:密钥生成端选取三个密码哈希函数,,,其中将上的元素映射为上的元素;将和上的元素以及大素数映射为上的元素;将上的元素映射为上的元素;表示任意长度的字符串;表示消息的长度,表示长度为的字符串。最后,密钥生成端随机选取1比特密钥生成函数标识;
[0052]步骤S14:密钥生成端输出主密钥和公开参数。
[0053]步骤S2:密钥生成端接收主密钥,公开参数,客户端标识,输出客户端密钥。
[0054]在本实施例中,步骤S2具体包括以下步骤:
[0055]步骤S21:密钥生成端接收客户端标识,主密钥以及公开参数;
[0056]步骤S22:密钥生成端计算客户端密钥。若,则密钥生成端重新选取主公钥并计算客户端密钥;
[0057]步骤S23:密钥生成端输出客户端密钥。
[0058]步骤S3:岸基控制端接收岸基控制端标识,船舶驾驶端标识,公开参数以及岸基控制端密钥,输出离线签密密文。
[0059]在本实施例中,步骤S3具体包括以下步骤:
[0060]步骤S31:岸基控制端接收公开参数,岸基控制端密钥,岸基控制端标识以及船舶驾驶端标识;
[0061]步骤S32:岸基控制端计算群中的元素;
[0062]步骤S33:岸基控制端选取随机值,计算,,,;
[0063]步骤S34:岸基控制端输出离线签密密文;
[0064]步骤S4:岸基控制端接收离线签密密文,航行指令,公开参数,岸基控制端标识以及船舶驾驶端标识,输出在线签密密文;
[0065]在本实施例中,步骤S4具体包括以下步骤:
[0066]步骤S41:岸基控制端接收离线签密密文,公开参数,岸基控制端标识,航行指令,以及船舶驾驶端标识;
[0067]步骤S42:岸基控制端计算,以及,其中表示消息;其中表示异或运算;
[0068]步骤S43:岸基控制端输出在线签密密文。
[0069]步骤S5:船舶驾驶端接收在线签密密文,船舶驾驶端密钥以及岸基控制端标识;若解签密结果是一个由岸基控制端产生的有效签名数据,则输出航行指令和签名;否则,输出拒绝符号。
[0070]在本实施例中,步骤S5具体包括以下步骤:
[0071]步骤S51:船舶驾驶端接收公开参数,在线签密密文,船舶驾驶端密钥,船舶驾驶端标识以及岸基控制端标识;
[0072]步骤S52:船舶驾驶端计算接收者计算,,,,,,以及;
[0073]步骤S53:船舶驾驶端检查等式是否成立. 若等式成立,输出明文数据和签名。 否则,输出拒绝符号。
[0074]实施例2
[0075]如图1所示,本实施例还提供了一种基于国密SM9的船舶岸基航行控制指令保护系统,基于上述方法实现,该系统包括:
[0076]密钥生成端,用于根据安全参数,产生主密钥和公开参数;用于根据主密钥、公开参数、客户端标识,产生客户端密钥;
[0077]岸基控制端,用于根据公开参数,岸基控制端标识,岸基控制端密钥以及船舶驾驶端标识以及航行指令,产生离线签密密文以及在线签密密文;
[0078]船舶驾驶端,用于根据在线签密密文,公开参数,岸基控制端标识,船舶驾驶端标识以及船舶驾驶端密钥,恢复航行指令明文和签名。
[0079]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0080]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0081]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0082]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0083]最后所应说明的是,以上实施例仅用以说明本申请的技术方案而非限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行修改或者等同替换,都不脱离本申请技术方案的精神和范围,其均应涵盖在本申请的权利要求范围当中。