本发明涉及电池识别技术领域,尤其涉及一种电池识别方法、无人机及电池。
背景技术:
随着科学技术的进步,无人机可应用于诸多领域,如电力巡检、地图测绘、交管安防、广告庆典等,具有广阔的发展空间。
目前无人机行业,由于受到电池技术的限制,一块电池的飞行时间普遍偏短,而且一般使用的是高倍率的电池,加上大电流充放电使得电池的循环性能较差,由于无人机电池一般都支持拆卸使用,因此无人机爱好者一般都会购买多个电池,以便替换使用。但是用户很有可能购买到不是合法授权厂家生产的电池。由于非法电池的性能不稳定,在使用过程中无人机无法从电池中获得稳定电能,导致无人机从空中摔下来的概率大大增加,从而缩短无人机的使用寿命。因此无人机厂家一方面为了保护消费者使用的是正品电池,另一方面为了保护自己的商业利益,在使用时都会对电池进行认证识别。
目前常规的电池识别方式,是硬件电阻识别的方式,但是安全性较低,容易破解。
技术实现要素:
本发明实施例提供一种电池识别方法、无人机及电池,以提高无人机电池识别的安全性。
第一方面,本发明实施例提供一种电池识别方法,包括:
生成输入码,并将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用sha-1算法生成第一认证码;
接收所述电池发送的所述第一认证码;
根据所述输入码和第二密钥,利用sha-1算法生成第二认证码;
根据所述第一认证码和所述第二认证码对所述电池进行识别;
其中,所述第一秘钥与所述第二秘钥相同。
第二方面,本发明实施例提供一种电池识别方法,包括:
接收无人机发送的输入码;
根据所述输入码和第一密钥,利用sha-1算法生成第一认证码;
将所述第一认证码发送给所述无人机,以使所述无人机根据所述第一认证码以及所述无人机生成的第二认证码,对所述电池进行识别;所述第二认证码为所述无人机根据所述输入码和第二密钥利用sha-1算法生成的;
其中,所述第一秘钥与所述第二秘钥相同。
第三方面,本发明实施例提供一种无人机,包括:
处理模块,用于生成输入码;
发送模块,用于将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用sha-1算法生成第一认证码;
接收模块,用于接收所述电池发送的所述第一认证码;
所述处理模块,还用于根据所述输入码和第二密钥,利用sha-1算法生成第二认证码;
根据所述第一认证码和所述第二认证码对所述电池进行识别;
其中,所述第一秘钥与所述第二秘钥相同。
第四方面,本发明实施例提供一种电池,包括:
接收模块,用于接收无人机发送的输入码;
处理模块,用于根据所述输入码和第一密钥,利用sha-1算法生成第一认证码;
发送模块,用于将所述第一认证码发送给所述无人机,以使所述无人机根据所述第一认证码以及所述无人机生成的第二认证码,对所述电池进行识别;所述第二认证码为所述无人机根据所述输入码和第二密钥利用sha-1算法生成的;其中,所述第一秘钥与所述第二秘钥相同。
本发明实施例提供的电池识别方法、无人机及电池,生成输入码,并将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用安全哈希算法sha-1算法生成第一认证码;接收所述电池发送的所述第一认证码;根据所述输入码和第二密钥,利用sha-1算法生成第二认证码;根据所述第一认证码和所述第二认证码对所述电池进行识别,其中,所述第一秘钥与所述第二秘钥相同,由于sha-1算法的安全性较高,因此采用sha-1算法的识别过程安全性较高,只要电池中的密钥与无人机的密钥不同则就会识别不成功,避免了使用非法电池的情况发生。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本发明提供的电池识别方法一实施例的流程示意图;
图2是本发明提供的电池识别方法另一实施例的流程示意图;
图3是本发明提供的电池识别方法又一实施例的流程示意图
图4是本发明提供的无人机一实施例的结构示意图;
图5是本发明提供的电池一实施例的结构示意图;
图6是本发明提供的无人机另一实施例的结构示意图;
图7是本发明提供的电池另一实施例的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的方法和装置的例子。
本发明的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例的方法可以应用于无人机中,对无人机中使用的电池进行识别,需要说明的是,本发明实施例的方法还可以应用于其他设备中,本发明对此并不限定。
本发明实施例的电池识别方法,旨在提高电池识别过程的安全性,从而避免用户使用非法电池,以及避免由于使用非法电池导致的无人机的使用寿命缩短的问题。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明提供的电池识别方法一实施例的流程示意图。如图1、图2所示,本实施例提供的方法,包括:
步骤101、生成输入码,并将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用sha-1算法生成第一认证码。
sha(securehashalgorithm,安全散列算法)又称哈希算法,其中sha-1算法是sha家族中五个算法之一。
本步骤中,在电池安装于无人机上,需要生成输入码,以便后续步骤识别该电池是否为合法授权厂商生产的电池,一旦识别为非法电池,则无人机将不允许使用该电池。
可选的,步骤101具体可以采用如下方式实现:
利用随机函数生成满足所述sha-1算法要求的安全标准的160位的所述输入码。
具体的,在识别时,首先无人机的主机将利用随机函数随机产生一个满足安全标准,如fipspub140–2标准(nist发布的安全需求标准)的160位输入码m。
在生成输入码m后,需要发送给电池,使得电池可以根据该输入码和第一密钥(如图2中的密钥k2)利用sha-1算法生成第一认证码(如图2中的认证码hmac2)。第一密钥为电池中保存的sha-1算法的密钥。
步骤102、接收所述电池发送的所述第一认证码。
步骤103、根据所述输入码和第二密钥,利用sha-1算法生成第二认证码。
本步骤中,无人机根据输入码和第二密钥,利用sha-1算法生成第二认证码。
其中,第二密钥与第一密钥相同,以保证生成的第一认证码和第二认证码相同,从而能够识别成功。
可选的,步骤103具体可以采用如下方式实现:
将所述输入码嵌入所述第二密钥中生成第一数据串;
对所述第一数据串进行补位以及数据分块,得到至少一个数据块;
对至少一个所述数据块利用sha-1算法生成所述第二认证码。
可选的,所述对所述第二数据串进行补位以及数据分块,得到至少一个数据块的步骤中,按照每块512位的数据进行数据分块。
sha-1算法是一种数据加密算法,该算法的思想是接收一段明文,然后嵌入密钥,然后以一种不可逆的散列运算将它转换成一组160位(20字节)的报文摘要,也可以简单的理解为取一串输入序列,并把该输入序列转化为长度较短、位数固定的输出序列,即散列值(也称为信息摘要或信息认证码)的过程。由于sha-1算法具有不可逆性和良好的雪崩效应,所以一般不能从散列结果推导出任何的原始输入序列,并且原始输入序列任何的改变,哪怕一位,都会造成散列结果的差异。
认证码的具体生成过程为,将输入码嵌入第二密钥(如图2中的密钥k1)中生成第一数据串;然后进行补位,补位到512的倍数,然后按照每块512位进行数据分块,得到至少一个数据块,然后利用sha-1算法的散列运算得到160位的第二认证码(如图2中的认证码hmac1)。
步骤104、根据所述第一认证码和所述第二认证码对所述电池进行识别。
可选的,步骤104具体可以采用如下方式实现:
将所述第一认证码和所述第二认证码进行比较;
若所述第一认证码和所述第二认证码相同,则允许使用所述电池;
若所述第一认证码和所述第二认证码相同,则进行错误提示,或关闭所述无人机。
具体的,在接收到电池发送的第一认证码后,根据第一认证码和第二认证码进行识别,若第一认证码和第二认证码相同,则识别成功,无人机才允许使用该电池;若第一认证码和第二认证码不相同,说明第一密钥和第二密钥不同,电池可能不是合法授权厂商生产的电池,无人机将不允许使用该电池,可以进行错误提示或者关闭该无人机的系统。
在一些实施方式中,在电池被识别成功之前,电池给无人机供电,无人机利用电池提供的电能进行识别,一旦识别出电池为非法智能电池,则不再允许使用该电池提供的电能。
在一些实施方式中,错误提示可以是语音提示和/或文字提示等。
需要说明的是,步骤102和103不分前后顺序,102可以在103之前执行,或之后执行,或同时执行,本发明对此并不限定。
由于sha-1加密算法不可逆、防冲突、有良好的雪崩效应,如果破解需要2^160数量级的操作,因此安全性较高。
上述识别过程中,只要密钥不泄露,则识别方法的可靠性较高。
本实施例的电池识别方法,生成输入码,并将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用安全哈希算法sha-1算法生成第一认证码;接收所述电池发送的所述第一认证码;根据所述输入码和第二密钥,利用sha-1算法生成第二认证码;根据所述第一认证码和所述第二认证码对所述电池进行识别,其中,所述第一秘钥与所述第二秘钥相同,由于sha-1算法的安全性较高,因此采用sha-1算法的识别过程安全性较高,只要电池中的密钥与无人机的密钥不同则就会识别不成功,避免了使用非法电池的情况发生。
在上述实施例的基础上,上述利用sha-1算法的识别过程是一个互相通信的过程,这就需要电池和无人机的主机都要遵循sha-1协议才能实现。由于电池一般都会使用具有sha-1协议的电量管理芯片,所以可以直接使用电量管理芯片的sha-1协议而无需在电池的微处理器里增加代码,如果所使用的电量管理芯片不支持sha-1协议,则要在电池的微处理器里增加支持sha-1协议的代码。同理无人机的主机也要增加支持sha-1协议的代码。为了能使无人机对电池识别成功,我们需要在电池和无人机的主机中设置相同的128位密钥。以德州仪器ti的电量管理芯片为例,其中电池端电量管理芯片可以使用bqstudio上位机软件通过sha认证(authentication)功能模块里的changekey选项改变这个密钥k2(改变该值之前要先解密电量管理芯片),初始的默认值是“0123456789abcdeffedcba9876543210”,默认值为16进制数,例如改成“fedcba98765432100123456789abcdef”。无人机的主机端只需要在系统的代码里修改密钥k1为“fedcba98765432100123456789abcdef”即可。
本实施例的方法中充分利用了电池本身具有的电量管理芯片的sha-1加密算法,可以极大的减少微处理器的程序空间,可以减少开发成本和开发周期。
图3是本发明提供的电池识别方法另一实施例的流程示意图。如图3所示,本实施例提供的方法,包括:
步骤301、接收无人机发送的输入码;
步骤302、根据所述输入码和第一密钥,利用sha-1算法生成第一认证码;
步骤303、将所述第一认证码发送给所述无人机,以使所述无人机根据所述第一认证码以及所述无人机生成的第二认证码,对所述电池进行识别;所述第二认证码为所述无人机根据所述输入码和第二密钥利用sha-1算法生成的。
其中,所述第一秘钥与所述第二秘钥相同。
具体的,无人机在对电池进行识别时,将生成的输入码发送给电池,电池根据输入码和第一密钥,利用sha-1算法生成第一认证码,然后将第一认证码发送给无人机。无人机根据自身生成的第二认证码以及接收到的第一认证码进行识别,具体是比较第一认证码和第二认证码是否相同,若相同则识别成功,否则识别失败。
可选的,步骤302具体可以采用如下方式实现:
将所述输入码嵌入所述第一密钥中生成第二数据串;
对所述第二数据串进行补位以及数据分块,得到至少一个数据块;
对至少一个所述数据块利用sha-1算法生成所述第一认证码。
可选的,所述对所述第二数据串进行补位以及数据分块,得到至少一个数据块的步骤中,按照每块512位的数据进行数据分块。
具体的,电池中生成第一认证码的过程与无人机中的类似,此处不再赘述。
本实施例的方法,其实现原理与图1所示的方法实施例类似,此处不再赘述。
本实施例的电池识别方法,接收无人机发送的输入码;根据所述输入码和第一密钥,利用sha-1算法生成第一认证码;将所述第一认证码发送给所述无人机,以使所述无人机根据所述第一认证码以及所述无人机生成的第二认证码,对所述电池进行识别;所述第二认证码为所述无人机根据所述输入码和第二密钥利用sha-1算法生成的,其中,所述第一秘钥与所述第二秘钥相同,由于sha-1算法的安全性较高,因此采用sha-1算法的识别过程安全性较高,只要电池中的密钥与无人机的密钥不同则就会识别不成功,避免了使用非法电池的情况发生。
图4为本发明提供的无人机一实施例的结构图,如图3所示,本实施例的无人机,包括:
处理模块401,用于生成输入码;
发送模块402,用于将所述输入码发送给电池,以使所述电池根据所述输入码和第一密钥利用sha-1算法生成第一认证码;
接收模块403,用于接收所述电池发送的所述第一认证码;
所述处理模块401,还用于根据所述输入码和第二密钥,利用sha-1算法生成第二认证码;
根据所述第一认证码和所述第二认证码对所述电池进行识别;
其中,所述第一秘钥与所述第二秘钥相同。
可选的,所述处理模块401,具体用于:
利用随机函数生成满足所述sha-1算法要求的安全标准的160位的所述输入码。
可选的,所述处理模块401,具体用于:
将所述输入码嵌入所述第二密钥中生成第一数据串;
对所述第一数据串进行补位以及数据分块,得到至少一个数据块;
对至少一个所述数据块利用sha-1算法生成所述第二认证码。
其中,对于数据分块,所述处理模块401,具体用于:
按照每块512位的数据进行数据分块。
可选的,所述处理模块401,具体用于:
将所述第一认证码和所述第二认证码进行比较;
若所述第一认证码和所述第二认证码相同,则允许使用所述电池;
若所述第一认证码和所述第二认证码相同,则进行错误提示,或关闭所述无人机。
本实施例的装置,可以用于执行上述如图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明提供的电池一实施例的结构图,如图5所示,本实施例的电池,包括:
接收模块501,用于接收无人机发送的输入码;
处理模块502,用于根据所述输入码和第一密钥,利用sha-1算法生成第一认证码;
发送模块503,用于将所述第一认证码发送给所述无人机,以使所述无人机根据所述第一认证码以及所述无人机生成的第二认证码,对所述电池进行识别;所述第二认证码为所述无人机根据所述输入码和第二密钥利用sha-1算法生成的;其中,所述第一秘钥与所述第二秘钥相同。
可选的,所述处理模块502,具体用于:
将所述输入码嵌入所述第一密钥中生成第二数据串;
对所述第二数据串进行补位以及数据分块,得到至少一个数据块;
对至少一个所述数据块利用sha-1算法生成所述第一认证码。
其中,对于数据分块,所述处理模块401,具体用于:
按照每块512位的数据进行数据分块。
本实施例的装置,可以用于执行上述如图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明提供的无人机另一实施例的结构图,如图6所示,该无人机包括:
处理器601,无人机通信端口(图未示),以及,用于存储处理器601的可执行指令的存储器602。
其中,处理器601配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。无人机通信端口可以实现无人机与电池之间的通信以进行信息的发送和接收。
图7为本发明提供的电池另一实施例的结构图,如图7所示,该电池包括:
处理器701,电池通信端口(图未示),以及,用于存储处理器701的可执行指令的存储器702。
可选的,还包括电源模块,用于给所述无人机供电。
其中,处理器701配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。电池通信端口可以实现电池与无人机之间的通信以进行信息的发送和接收。
本发明实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。