公开/公告号CN103605927A
专利类型发明专利
公开/公告日2014-02-26
原文格式PDF
申请/专利权人 深圳市道通科技有限公司;
申请/专利号CN201310557177.7
申请日2013-11-08
分类号G06F21/60(20130101);H04L9/06(20060101);
代理机构44298 广东广和律师事务所;
代理人章小燕
地址 518000 广东省深圳市南山区西丽镇茶光路南侧深圳集成电路设计应用产业园106、107、109、114
入库时间 2024-02-19 22:23:04
法律状态公告日
法律状态信息
法律状态
2018-01-30
专利权的转移 IPC(主分类):G06F21/60 登记生效日:20180110 变更前: 变更后: 申请日:20131108
专利申请权、专利权的转移
2017-01-11
授权
授权
2015-03-25
著录事项变更 IPC(主分类):G06F21/60 变更前: 变更后: 申请日:20131108
著录事项变更
2014-03-26
实质审查的生效 IPC(主分类):G06F21/60 申请日:20131108
实质审查的生效
2014-02-26
公开
公开
技术领域
本发明属于汽车领域,更具体地涉及一种基于嵌入式Linux系统实现加密 和解密方法。
背景技术
随着计算机技术在全球范围得到了广泛的运用,为企业或个人用户的办公 提供了很大的方便,但在计算机普及的过程中也面临着诸多的安全隐患,如数 据库防御系统被攻破会给用户造成巨大的损失,信息化时代背景下掌握各种加 密、解密方法是保证数据安全的有效措施。随着电子技术的飞速发展,嵌入式 设备日趋昌盛,各种加密、解密方法在嵌入式领域也得到了深入的发展。
现有的加密、解密方法中,比较有名的是MD5(Message-Digest Algorithm 5)、RSA等,还有许多对称算法(即可加密也可以解密),MD5是在90年代初由 MIT计算机科学实验试和RSA Data Security Inc发明,经由MD2、MD3和MD4 发展而来。MD5是将任意长度的“字节串”变换成一个128bit的大整数,并 且是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法 描述,也无法将一个MD5的值变换回原始字符串,从数据原理上说,是因为原 始的字符串有无穷多个。MD5的典型应用是对一段Message(字串)产生 fingerprint(指纹),以防止被篡改。RSA(Rivest-Shamir-Adleman)是一个 既能用于数据加密也能用于解密的数字签名算法。它易于理解和操作,也很流 行。它经历了各种攻击,到今未被完全改破。但是现有的加密、解密方法在 Windows系统中比较容易实现,应用到嵌入式系统领域时存在以下缺点:
(1)各种加密、解密方法相对比较复杂,没有非常专业的辅助工具支撑很 难实现;
(2)加密和解密方法不能放在一起(即在代码中对数据加密,也在同段代 码中进行解密),安全性也得不到保障。
发明内容
有鉴于此,本发明提供一种基于嵌入式Linux系统实现加密和解密方法, 以实现与内核关联的加密和解密共存的方式,增加代码和数据的安全性。
根据本发明的一个方面,提供的一种基于嵌入式Linux系统实现加密的方 法,包括以下步骤:
在Linux内核代码的系统调用文件中加入加密函数定义及实现代码;
在处理器相应的内核代码的系统调用函数列表中加入加密函数声明;
重新编译内核代码,并重新固化;
在应用软件中根据加密函数声明调用加密函数进行加密。
优选地,在Linux内核代码的系统调用文件中加入加密函数定义及实现代 码进一步包括:在kernel/sys.c文件中增加加密函数定义和加密函数的实现代 码。
优选地,加密函数的实现代码包括MD5、RSA、和/或自定义算法。
优选地,在处理器相应的内核代码的系统调用函数列表中加入加密函数声 明进一步包括:在arch/处理器对应名称/kernel/calls.S文件中加入加密函 数调用入口,记录对应的ID号。
优选地,在应用软件中根据加密函数声明调用加密函数进行加密进一步包 括:在应用软件中根据函数声明的加密函数的ID号通过系统调用功能API调用 加密函数进行加密。
根据本发明的另一个方面,提供的一种基于嵌入式Linux系统实现解密的 方法,包括以下步骤:
在Linux内核代码的系统调用文件中加入解密函数定义及实现代码;
在处理器相应的内核代码的系统调用函数列表中加入解密函数声明;
重新编译内核代码,并重新固化;
在应用软件中根据解密函数声明调用解密函数进行解密。
优选地,在Linux内核代码的系统调用文件中加入解密函数定义及实现代 码进一步包括:在kernel/sys.c文件中增加解密函数定义和解密函数的实现代 码。
优选地,解密函数的实现代码包括MD5、RSA、和/或自定义算法。
优选地,在处理器相应的内核代码的系统调用函数列表中加入解密函数声 明进一步包括:在arch/处理器对应名称/kernel/calls.S文件中加入解密函 数调用入口,记录对应的ID号。
优选地,在应用软件中根据解密函数声明调用解密函数进行解密进一步包 括:在应用软件中根据函数声明的解密函数的ID号通过系统调用功能API调用 解密函数进行解密。
本发明实施例提供的基于嵌入式Linux系统实现加密和解密方法,通过使 用系统调用功能API调用内核的加密和解密代码执行加密和解密程序,实现与 内核关联的加密和解密共存的方式,增加了数据破解的难度,增加代码和数据 的安全性。同时,降低了有嵌入式Linux内核代码的应用软件中的复杂度,且 不同的应用软件可以使用相同的加、解密函数。
附图说明
图1为本发明实施例提供的一种基于嵌入式Linux系统实现加密方法流程 图。
图2为本发明实施例提供的一种基于嵌入式Linux系统实现解密方法流程 图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白, 以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描 述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明实施例提供的一种基于嵌入式Linux系统实现加密 方法包括以下步骤:
S102、在Linux内核代码的系统调用文件中加入加密函数定义及实现代码。
优选地,可以在kernel/sys.c文件中增加加密函数定义和加密函数的实现 代码,其中,加密算法可以是目前的各种加密算法(如MD5,RSA等),也可 以是自定义的加密算法。即使使用比较简单的加密算法,也同样可以达到加密 的目的。
比如:SYSCALL_DEFINE2(encrypt,void*,src,int,len);
其中,encrypt表示加密的函数名,2表示有两个参数,void*表示参数1 类型,src表示参数1名称(void*src这里是加密数据的内存地址指针),int 表示参数2类型,len表示参数2的名称(int len表示加密数据长度,类型为 整型)。
S104、在处理器相应的内核代码的系统调用函数列表中加入加密函数声明。
优选地,本步骤进一步包括:在arch/处理器对应名称/kernel/calls.S文 件中加入加密函数调用入口,并记录对应的入口ID号。
以ARM处理器为例,则在arch/arm/kernel/calls.S文件中加入加密函数 encrypt对应的ID的申明,本实施例中,ID可以选择300。
S106、重新编译内核代码,并重新固化;
具体来说,将新增加代码的内核,编译并烧录到嵌入式设备上。
S108、在应用软件中根据加密函数声明调用加密函数进行加密。
优选地,本步骤进一步包括:在应用软件中根据所述加密函数声明的加密 函数的ID号通过系统调用功能API调用加密函数进行加密。比如ID为300时, 可以通过syscall(300,加密数据,长度)来调用加密函数。即在需要实现数据 加密的地方,通过系统调用的方式,完成数据的加密。
如图2所示,本发明实施例提供的一种基于嵌入式Linux系统实现解密方 法:
S202、在Linux内核代码的系统调用文件中加入解密函数定义及实现代码;
优选地,可以在kernel/sys.c文件中增加解密函数定义和解密函数的实现 代码,其中,解密算法可以是目前的各种解密算法(如MD5,RSA等),也可 以是自定义的解密算法。
比如:SYSCALL_DEFINE2(dencrypt,void*,src);
其中,encrypt表示解密的函数名,2表示有两个参数,void*表示参数1 类型,src表示参数1名称(void*src这里是解密密数据的内存地址指针), int表示参数2类型,len表示参数2的名称(int len表示解密数据长度,类 型为整型)。
S204、在处理器相应的内核代码的系统调用函数列表中加入解密函数声明。
优选地,本步骤进一步包括:在arch/处理器对应名称/kernel/calls.S文 件中加入解密函数调用入口,并记录对应的入口ID号。
以ARM处理器为例,则在arch/arm/kernel/calls.S文件中加入解密函数 对应的ID的申明,本实施例中,ID号可以选择301。
S206、重新编译内核代码,并重新固化。
具体来说,将新增加代码的内核,编译并烧录到嵌入式设备上。
S208、在应用软件中根据解密函数声明调用解密函数进行解密。
优选地,本步骤进一步包括:在应用软件中根据所述解密函数声明的解密 函数的ID号通过系统调用功能API调用解密函数进行加密。比如ID为301时, 可以通过syscall(301,解密数据,长度)来调用解密函数。即在需要实现数据 解密的地方,通过系统调用的方式,完成数据的解密。
本发明实施例提供的基于嵌入式Linux系统实现加密和解密方法,通过使 用系统调用内核的加密和解密代码执行加密和解密程序,实现与内核关联的加 密和解密共存的方式,增加了数据破解的难度,增加代码和数据的安全性。同 时,降低了有嵌入式Linux内核代码的应用软件中的复杂度,且不同的应用软 件可以使用相同的加、解密函数。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范 围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换 和改进,均应在本发明的权利范围之内。
机译: 一种用于处理音频数据的方法,该方法是通过以预定顺序改变音频数据的区域的方法来使发送方能够加密音频信号来实现的,以及通过从接收到的经过解码的音频信息中接收到的方可从接收到的音频数据中解密所接收的音频数据
机译: 一种用于处理音频数据的方法,该方法是通过以预定顺序改变音频数据的区域的方法来使发送方能够加密音频信号来实现的,以及通过从接收到的经过解码的音频信息中接收到的方可从接收到的音频数据中解密所接收的音频数据
机译: 一种基于蒙哥马利的加密/解密方法和装置-使用更有效的模乘