用于加解密的方法、可编程交换机和计算机程序产品与流程

专利2022-05-09  168


本公开的实施例总体上涉及数据加密领域,并且更具体地涉及用于加解密的方法、可编程交换机以及计算机程序产品。



背景技术:

物联网(iot)是在互联网基础上的延伸和扩展的网络,其将各种信息传感设备与互联网结合起来而形成的一个巨大网络,从而能实现在任何时间、任何地点,人、机、物等的互联互通。iot设备是指iot网络中可以连接到网络的各种终端设备,例如,智能个人设备、智能家居设备、智能汽车、智能城市设施设备,等等。

交换机是一种用于电或光信号转发的网络设备,其可以为接入交换机的任意两个网络节点提供独享的电或光信号通路。常见的交换机是以太网交换机,其他常见的还有电话语音交换机、光纤交换机等。一般来说,iot设备可以通过边缘交换机连接到互联网。



技术实现要素:

本公开的实施例提供了一种用于加解密的方法、可编程交换机以及计算机程序产品。

在本公开的一个方面,提供了一种用于加解密的方法。该方法包括在可编程交换机处接收指向物联网(iot)设备的加密数据,其中加密数据使用可编程交换机的公钥被加密。方法还包括使用可编程交换机的私钥对加密数据进行解密以获得解密数据,并且从可编程交换机向iot设备发送解密数据。

在本公开的另一方面,提供了一种可编程交换机。该可编程交换机包括处理单元以及存储器,其中存储器被耦合至处理单元并且存储有指令。所述指令在由处理单元执行时执行以下动作:在可编程交换机处接收指向物联网(iot)设备的加密数据,其中加密数据使用可编程交换机的公钥被加密。方法还包括使用可编程交换机的私钥对加密数据进行解密以获得解密数据,并且从可编程交换机向iot设备发送解密数据。

在本公开的又一方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使得计算机执行根据本公开的实施例的方法或过程。

提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。本发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的各个实施例的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的附图标记通常代表相同的元素。

图1示出了根据本公开的实施例的示例iot环境的示意图;

图2示出了根据本公开的实施例的用于非对称加解密的方法的流程图;

图3示出了根据本公开的实施例的可编程交换技术的示例架构的示意图;

图4示出了根据本公开的实施例的可编程交换技术中的示例处理过程的示意图;

图5a-5b示出了根据本公开的实施例的请求无服务器列表的过程的示意图;

图6示出了根据本公开的实施例的用于在线认证iot设备的示例过程的示意图;

图7示出了根据本公开的实施例的用于在用户设备与iot设备之间进行通信的过程的示意图;

图8示出了根据本公开的循环执行操作的过程的示意图;以及

图9示出了可以用来实施本公开的实施例的设备的示意性块图。

具体实施例

下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的一些具体实施例,然而应该理解,可以以各种形式实现本公开,而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象,除非明确指示不同。

一般来说,为了保证设备之间的通信的安全性,通常需要对传输的数据进行加密,然后在接收端进行对应的解密。iot设备在与其他网络设备通信时通常也需要执行加解密操作。然而,本发明的发明人发现,使用iot设备执行加解密操作存在以下几方面的问题。

第一,iot设备中的计算能力通常较弱。iot设备从成本考虑,使用嵌入式cpu即可满足基本的计算和通信需求,其通常不存在额外的资源来加速加解密操作。由于计算资源有限,iot设备无法快速地处理加密和解密。因此,在通过安全机制与iot设备通信时会导致较高的延迟和较低的吞吐量。

第二,一些老的iot设备未使用加解密认证机制来进行安全设计。随着iot设备安全性的要求,许多iot设备被设计为支持身份认证。然而,有许多老的iot设备并不支持身份认证,这些iot设备没有基本的安全机制来保护自己,因而存在被攻击的危险。

第三,在安全性与通信速度之间存在冲突。安全通信的传统方式取决于终端设备上的复杂计算,如果终端设备没有用于安全算法的快速的cpu或协处理器,则无法保证通信速度。在某些高速环境中,设计人员必须降低iot设备安全级别,以平衡性能和通信速度。

由此可见,传统的方法使用iot设备自身来执行加解密操作,耗费了较大的时间,造成了较大的延迟。

为此,本公开的实施例提出了一种使用可编程交换机来帮助iot设备执行加解密操作的新方案。根据本公开的实施例,能够将iot设备的加解密操作转移到可编程交换机处理,使用可编程交换机来帮助iot设备执行加密和解密。由于可编程交换机比iot设备具有更强的处理能力(如计算资源、存储资源等),因此本公开的实施例能够加快非对称加解密的执行速度,减少传输延迟。此外,对于不支持非对称加解密功能的iot设备,根据本公开的实施例的可编程交换机也能够保证iot设备的安全通信。

以下参考图1至图9来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。

图1示出了根据本公开的实施例的示例iot环境100的示意图。如图1所示,多个iot设备110-1、110-2、110-3(统称为“iot设备110”)可以无线地连接到可编程交换机120,可编程交换机120再连接网络125,当然一个或多个iot设备也可以有线地连接到可编程交换机120。iot设备110可以包括但不限于空调控制器、智能锁、交通信号灯、网络摄像头,等等。

在一些实施例中,可编程交换机120可以为边缘交换机,其能够提供一些无服务器功能,诸如rsa加密、rsa解密。可编程交换机120与传统的交换机的不同之处在于,可编程交换机120可以灵活地重新编程有新的特性和功能,而不仅限于与网络相关的功能。可编程交换机的程序例如可以以p4编程语言编写,并且支持在线更新到可编程交换机。iot设备110可以利用可编程交换机120所提供的无服务器功能。通过利用可编程交换机120的优势,能够在交换机上实现无服务器功能,以帮助iot设备执行加解密操作,诸如rsa加密和解密。

rsa是最早的公钥加密系统之一,其被广泛用于安全数据传输。在这样的加密系统中,加密密钥是公共的,并且不同于保持私密(私有)的解密密钥。在rsa中,这种不对称性是基于两个大素数乘积的因式分解的实际困难,即“因式分解问题”。rsa的用户基于两个大素数以及一个辅助值创建并公布一个公共密钥。素数必须保密。任何人都可以使用公钥对消息进行加密,但是只有知道素数的人才能对消息进行解密。一般来说,如果使用足够大的密钥,则当前没有已知的方法可以来破解rsa算法。然而,rsa是一种相对较慢的算法,因此,它不常用于直接加密用户数据。更常用的,rsa用于对称密钥加密的加密共享,从而可以更高的速度执行批量加密-解密操作。

例如,随机选择两个不相同的素数p和q。将p和q相乘,记为p*q。计算n的欧拉函数欧拉函数证明,当p和q为不相同的素数时,随机选择一个整数e,满足两个条件:与e互质,且计算e对于的模反元素d,也就是说找到一个d满足这个式子等价于实际上就是对于方程求(d,k)的整数解。这个方程可以用扩展欧几里得算法求解。最终把(e,n)封装成公钥,(d,n)封装成私钥。因此,对于明文m(其中m<n),则对应的rsa密文为c=memodn。对于密文c,则对应的m为m=cdmodn。

应当理解,虽然本公开的一些实施例以rsa作为非对称加密的一个示例,现有的或者将来开发的任何其他的非对称加密算法也可以与本公开的实施例结合使用。

图2示出了根据本公开的实施例的用于加解密的方法200的流程图。应当理解,方法200可以由参考图1所描述的可编程交换机120来执行。

在202,在可编程交换机处接收指向iot设备的加密数据,其中加密数据使用可编程交换机的公钥被加密。例如,参考图1所描述的可编程交换机120从网络接收到发送给iot设备110之一的加密数据。根据本公开的实施例,可编程交换机120不是简单的直接转发数据,而是会对传输给iot设备的数据进行解密。

在204,使用可编程交换机的私钥对加密数据进行解密以获得解密数据。例如,由于加密数据是使用可编程交换机120的公钥而加密的,根据非对称加密原理,可以使用可编程交换机120的私钥来对加密数据进行解密,以获得原始的数据。由于可编程交换机120的私钥仅其自己知晓,因而其他的设备无法拦截获得原始的数据。

在206,从可编程交换机向iot设备发送解密数据。例如,可编程交换机120向对应的iot设备110传输解密后的数据,由于可编程交换机120和iot设备110处于可信连接,因而即使它们之间传输的数据没有加密,也通常不会产生安全隐患。

因此,根据本公开的实施例的方法200,能够将iot设备的加解密操作转移到可编程交换机处理,使用可编程交换机来帮助iot设备执行加密和解密。由于可编程交换机比iot设备具有更强的处理能力,因此本公开的实施例能够加快非对称加解密的执行速度,减少延迟。此外,对于不支持非对称加解密功能的iot设备,根据本公开的实施例的可编程交换机也能够保证iot设备的安全通信。

此外,根据本公开的一些实施例,提出了一种在可编程交换机的边缘设备上提供rsa加密和解密的无服务器功能的方法。大多数iot设备功耗低,计算资源非常有限。iot设备安全通信是必要的,需要克服缺乏执行iot设备复杂的加密和解密方法的能力。借助于可编程交换机,可以在边缘设备上实现rsa算法的无服务器功能,这将有助于iot设备满足安全性要求。本公开的实施例可以帮助将rsa算法从iot设备转移到可编程交换机,能够将延迟从毫秒减少到微秒。

图3示出了根据本公开的实施例的可编程交换技术的架构的示意图。如图3所示,可编程交换机120包括cpu121和可编程交换机芯片122。cpu121可以包括用于生成非对称密钥的rsa密钥生成器,其中非对称密钥包括一对公钥和私钥,可编程交换机芯片122可以被配置为对于通过的分组执行rsa加密和rsa解密。通过在cpu121上部署rsa密钥生成器,并在可编程交换机芯片122上部署rsa加密和解密,能够利用可编程交换机芯片硬件来获得更好的处理性能。

图4示出了根据本公开的实施例的可编程交换技术中的示例处理过程400的示意图。如图4所示,其中nfp表示来自端口的正常分组,nfcpu表示来自cpu端口的分组,nu表示从入口到出口的正常单播分组,nm表示从入口到出口的正常多播分组,ci2e表示从入口到出口的克隆,ce2e表示从出口到出口的克隆,ntp表示到端口的正常分组,ntcpu表示到cpu端口的正常分组。

如图4所示,分组依次经过以下处理:入口解析器410、入口420、入口逆解析器430、分组缓冲器440、出口解析器450、出口460以及出口逆解析器470。在完成入口逆解析器430的处理后可以重新提交,在完成出口逆解析器470的处理后可以再进行循环。如405所指示,rsa加解密主要集中在入口处理部分,通过使用rsa密钥生成器生成的公钥和/或私钥,能够替代iot设备完成rsa加密和/或解密操作。

图5a-5b示出了根据本公开的实施例的请求无服务器列表的过程的示意图。为了使iot设备能够方便地利用可编程交换机提供的rsa加密和解密功能,可以设计一个无服务器功能接口,以用于iot设备与可编程交换机之间的通信。iot设备可以通过请求无服务器列表来发现可编程交换机可以提供的无服务器功能。iot设备发现边缘的可编程交换机支持rsa算法后,会将其公钥或私钥预设给可编程交换机,以在可编程交换机侧进行分组加密和解密操作。通过指定目的地ip地址或源ip地址,可编程交换机可以过滤掉不应加密或解密的分组。

图5a示出了可编程交换机120代替iot设备完成rsa加密的过程500。如图5a所示,iot设备110向可编程交换机120发送(501)请求以请求无服务器列表。可编程交换机120向iot设备110发送(502)无服务器列表。iot设备110可以预设(503)rsa公钥,并且设置(504)针对具有目的地地址的分组,启用在线rsa加密功能。iot设备110向可编程交换机120发送需要使用rsa公钥加密的分组,可编程交换机120执行相应的加密过程。

图5b示出了可编程交换机120代替iot设备完成rsa解密的过程550。如图5b所示,iot设备110向可编程交换机120发送(551)请求以请求无服务器列表。可编程交换机120向iot设备110发送(552)无服务器列表。iot设备110可以预设(553)rsa私钥,并且设置(554)针对具有源地址的分组,启用在线rsa解密功能。可编程交换机120在接收到具有源地址的分组时,执行相应的解密过程,并且iot设备110从可编程交换机120接收(555)使用rsa私钥解密获得的分组。

通过利用可编程交换机的可编程性以及iot设备与可编程交换机之间安全连接的假设,本公开的实施例将rsa算法的计算从iot设备转移到了可编程交换机。例如,可以将工作负载转移到可编程交换机,当数据包通过可编程交换机时,可以使用rsa算法对数据包中的有效负载进行加密或解密。

图6示出了根据本公开的实施例的用于在线认证iot设备的示例过程600的示意图,其示出了利用可编程交换机设计的一种rsa认证的方法,其中,rsa算法将在可编程交换机120上执行,而不在iot设备110中执行。

参考图6,iot设备110获得(601)用于认证的令牌,其中令牌可以由rsa令牌生成器生成,然后通过用户输入等方式传输到iot设备110中。

iot设备110向可编程交换机120发送(602)其设备标识(id)和令牌以用于认证访问权。

可编程交换机120从公钥服务器150查询(603)认证服务器130的公钥,其中公钥服务器150中存储大量的设备公钥。

可编程交换机120利用认证服务器130的公钥来加密设备id和令牌,并且将加密消息发送(604)到认证服务器130。

认证服务器130利用其私钥对加密消息进行解密(605),从而获得设备id和令牌,认证服务器130然后检查令牌是否正确。如果令牌不正确,则iot设备认证失败。

如果令牌正确,则认证服务器130将设备id发送(606)到设备信息数据库140,其中信息数据库140存储已经认证的iot设备的基本信息,例如id。

认证服务器130从公钥服务器150查询(607)可编程交换机120的公钥。

认证服务器130利用可编程交换机120的公钥来加密设备id和“成功”指示,并且向可编程交换机120发送(608)认证响应消息。

可编程交换机120在接收到认证响应消息之后,利用其私钥对认证响应消息进行解密(609),从而获得认证成功的指示。然后,可编程交换机120可以向iot设备授予访问权,并且将设备id和对应的连接端口进行本地存储。

然后,可编程交换机120向iot设备110发送(610)认证成功的通知,以通知iot设备被授予访问权。至此,iot设备110已经成功完成认证过程。

传统地,iot设备上的rsa认证虽然也是可实现的,但是速度非常慢,通常需要几十甚至几百毫秒。一旦iot设备上的计算资源有限,则rsa认证的速度在一些使用场景中是灰常缓慢的。相反,本公开的实施例使用可编程交换机来代替iot设备执行在线认证,能够提高iot设备的认证速度。

图7示出了根据本公开的实施例的用于在用户设备160与iot设备110之间进行通信的过程700的示意图,其利用可编程交换机来实现rsa算法的通信,其中rsa算法将在可编程交换机120上运行,而不在iot设备110中运行。

参考图7,用户设备160(例如用户设备中的应用程序app)在需要与iot设备110进行通信时,从设备信息数据库140获得(701)iot设备110的设备id。

用户设备160从公钥服务器150查询(702)可编程交换机120的公钥,例如,可以基于可编程交换机120的身份来获得其公钥。

用户设备160使用可编程交换机120的公钥来加密设备id和执行命令“cmd”,并且向可编程交换机120发送(703)加密消息。

可编程交换机120在接收到加密消息之后,利用其私钥执行rsa解密(704),从而获得设备id和执行命令,由此确定具有设备id的iot设备需要执行该命令。

可编程交换机120向iot设备110发送(705)设备id和执行命令。

iot设备110执行命令,并且向可编程交换机120发送(706)设备id和执行结果。

在接收到执行结果之后,可编程交换机120从公钥服务器150查询(707)用户设备160的公钥。

可编程交换机120利用用户设备160的公钥对执行结果进行加密,并且向用户设备160发送(708)加密消息。

用户设备160在接收到加密消息之后,利用其私钥对加密消息进行rsa解密(709),从而获得iot设备110的执行结果。

因此,根据本公开的实施例不仅能够保证iot设备的安全通信,而且能够提高通信速度,减少由于rsa操作而导致的延迟。根据本公开的实施例,rsa算法能够在可编程交换机上成功实现。本公开的实施例能够将用于rsa计算的毫秒级的实际情况减少为微秒级。此外,借助可编程交换机,也能够在无法执行rsa算法的iot设备之间建立安全通信。

此外,可编程交换机的可编程功能通常是以某种编程语言编写,例如p4语言,其可能不支持rsa算法中的一些操作,例如不支持除法“/”和取模“%”操作,进而不支持“val1/val2”和“val1%val2”,而rsa算法要求针对2048个比特的变量的“%”操作。因此,需要对rsa算法的一些操作进行重新设计以使用可编程交换机中的特定编程语言来进行实现。例如,本公开的实施例以p4语言重新设计针对上述操作操作的处理方式,通过基础操作符来模拟这些操作。

另外,可编程交换机中不支持在一个分组过程中完成1024次重新设计的“%”操作。因此,本公开的实施例迭代地利用可编程交换机的重新提交机制来完成1024次“%”操作。图8示出了根据本公开的循环执行操作的过程800的示意图。如图8所示,在接收到分组之后,可以在410递增计数器(count ),在420执行一次取模操作(mul_mod_once),然后在430重新提交(resubmit(meta))。因此,本公开的实施例能够通过重新提交来完成多次的“%”操作。

图9示出了可以用来实施本公开的实施例的设备900的示意性块图,设备900可以为本公开的实施例所描述的设备或装置。如图9所示,设备900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序指令,来执行各种适当的动作和处理。在ram903中,还可存储设备900操作所需的各种程序和数据。cpu901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个方法或过程可由处理单元901来执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到ram903并由cpu901执行时,可以执行上文描述的方法或过程中的一个或多个步骤或动作。

在一些实施例中,以上所描述的方法和过程可以被实现为计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

本文所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,以及常规的过程式编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或块图中的一个或多个方块中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或块图中的一个或多个方块中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或块图中的一个或多个方块中规定的功能/动作。

附图中的流程图和块图显示了根据本公开的多个实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或块图中的每个方块可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方块实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。也要注意的是,块图和/或流程图中的每个方块、以及块图和/或流程图中的方块的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使得本技术领域的其它普通技术人员能理解本文披露的各实施例。


技术特征:

1.一种用于加解密的方法,包括:

在可编程交换机处接收指向物联网(iot)设备的加密数据,所述加密数据使用所述可编程交换机的公钥被加密;

使用所述可编程交换机的私钥对所述加密数据进行解密以获得解密数据;以及

从所述可编程交换机向所述iot设备发送所述解密数据。

2.根据权利要求1所述的方法,其中所述加密数据从用户设备被接收,并且所述解密数据包括执行命令,所述方法还包括:

从所述iot设备接收对于所述执行命令的执行结果;

使用所述用户设备的公钥对所述执行结果进行加密;以及

向所述用户设备发送经加密的所述执行结果。

3.根据权利要求1所述的方法,还包括:

通过在所述可编程交换机中实现用于所述iot设备的非对称加密功能,来在线认证所述iot设备。

4.根据权利要求3所述的方法,其中在线认证所述iot设备包括:

从所述iot设备接收所述iot设备的设备标识以及用于认证的令牌;

使用认证服务器的公钥来加密所述设备标识和所述令牌;

向所述认证服务器发送经加密的所述设备标识和所述令牌;以及

从所述认证服务器接收认证响应消息,所述认证响应消息使用所述可编程交换机的所述公钥被加密。

5.根据权利要求4所述的方法,其中在线认证所述iot设备包括还包括:

使用所述可编程交换机的所述私钥来解密所述认证响应消息以获得认证结果;以及

根据确定所述认证结果指示所述iot设备通过认证:

向所述iot设备授予访问权;

存储所述iot设备的所述设备标识和对应端口;以及

向所述iot设备发送认证成功的指示。

6.根据权利要求1所述的方法,还包括:

根据确定从所述iot设备接收到对于无服务器列表的请求,向所述iot设备发送所述无服务器列表;

从所述iot设备接收针对目的地地址的分组的加密请求;以及

根据确定从所述iot设备接收到针对所述目的地地址的第一分组,由所述可编程交换机对所述第一分组进行加密。

7.根据权利要求6所述的方法,还包括:

从所述iot设备接收针对源地址的分组的解密请求;以及

根据确定接收到来自所述源地址的第二分组,由所述可编程交换机对所述第二分组进行解密。

8.根据权利要求1所述的方法,还包括:

使用所述可编程交换机中的处理单元来生成非对称密钥,所述非对称密钥包括所述可编程交换机的公钥和私钥;以及

使用所述可编程交换机中的可编程交换机芯片来执行非对称加密和非对称解密中的至少一项。

9.一种可编程交换机,包括:

处理单元;以及

存储器,其耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:

接收指向物联网(iot)设备的加密数据,所述加密数据使用所述可编程交换机的公钥被加密;

使用所述可编程交换机的私钥对所述加密数据进行解密以获得解密数据;以及

向所述iot设备发送所述解密数据。

10.根据权利要求9所述的可编程交换机,其中所述加密数据从用户设备被接收,并且所述解密数据包括执行命令,所述动作还包括:

从所述iot设备接收对于所述执行命令的执行结果;

使用所述用户设备的公钥对所述执行结果进行加密;以及

向所述用户设备发送经加密的所述执行结果。

11.根据权利要求9所述的可编程交换机,所述动作还包括:

通过在所述可编程交换机中实现用于所述iot设备的非对称加密功能,来在线认证所述iot设备。

12.根据权利要求11所述的可编程交换机,其中在线认证所述iot设备包括:

从所述iot设备接收所述iot设备的设备标识以及用于认证的令牌;

使用认证服务器的公钥来加密所述设备标识和所述令牌;

向所述认证服务器发送经加密的所述设备标识和所述令牌;以及

从所述认证服务器接收认证响应消息,所述认证响应消息使用所述可编程交换机的所述公钥被加密。

13.根据权利要求12所述的可编程交换机,其中在线认证所述iot设备包括还包括:

使用所述可编程交换机的所述私钥来解密所述认证响应消息以获得认证结果;以及

根据确定所述认证结果指示所述iot设备通过认证:

向所述iot设备授予访问权;

存储所述iot设备的所述设备标识和对应端口;以及

向所述iot设备发送认证成功的指示。

14.根据权利要求9所述的可编程交换机,所述动作还包括:

根据确定从所述iot设备接收到对于无服务器列表的请求,向所述iot设备发送所述无服务器列表;

从所述iot设备接收针对目的地地址的分组的加密请求;以及

根据确定从所述iot设备接收到针对所述目的地地址的第一分组,由所述可编程交换机对所述第一分组进行加密。

15.根据权利要求14所述的可编程交换机,所述动作还包括:

从所述iot设备接收针对源地址的分组的解密请求;以及

根据确定接收到来自所述源地址的第二分组,由所述可编程交换机对所述第二分组进行解密。

16.根据权利要求9所述的可编程交换机,还包括:

处理单元,被配置为生成非对称密钥,所述非对称密钥包括所述可编程交换机的公钥和私钥;以及

可编程交换机芯片,被配置为执行非对称加密和非对称解密中的至少一项。

17.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使计算机执行根据权利要求1至8中任一项所述的方法。

技术总结
本公开的实施例涉及一种用于加解密的方法、可编程交换机和计算机程序产品。方法包括在可编程交换机处接收要发给某个物联网(IoT)设备的加密数据,其中加密数据是使用可编程交换机的公钥加密的。方法还包括使用可编程交换机的私钥对加密数据进行解密以获得解密数据,然后从可编程交换机向该IoT设备发送解密数据。根据本公开的实施例,能够将IoT设备的加解密操作转移到可编程交换机上处理,使用可编程交换机来帮助IoT设备执行加密和解密。由于可编程交换机比IoT设备具有更强的处理能力,因此本公开的实施例能够加快非对称加解密的执行速度,减少延迟。此外,对于不支持非对称加解密功能的IoT设备,可编程交换机也能够保证IoT设备的安全通信。

技术研发人员:胡晨曦;董世旭
受保护的技术使用者:伊姆西IP控股有限责任公司
技术研发日:2020.01.31
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-603.html

最新回复(0)