公司上网行为管理,就用安企神软件
立即咨询针对嵌入式系统中信息安全的特点,选择椭圆曲线公钥加密体制ECC( Eniptic Curves Cryptosystem)作为加解密系统体制,应用开源安全软件开发包OpenSSL作为密码库开发了加密和解密系统。
一、椭圆曲线加密体制
椭圆曲线加密体制ECC是基于椭圆曲线离散对数问题( ECDLP)的一种公钥加密体制,我们采用大素数有限域GF(p)上的方程y2=x3+ax+6(modp),这里p是大素数,a和b为两个小于p的非负整数,它们满足:4a3+27b2 (mod p)≠0。椭圆曲线离散对数问题ECDLP定义如下:给定素数p和椭圆曲线E,对Q=kP,可以证明由k和P计算Q比较容易,而由Q和P计算尾则比较困难。由于椭圆曲线密码体制ECC所具有的特点,ECC可以用较小的开销(软硬件规模、存储要求、带宽)实现较高的安全性,是一种能够提供高比特强度的公钥加密体制。
二、OpenSSL简介
OpenSSL是一个用来开发网络安全软件的开源软件包,不仅实现了SSL协议,而且拥有功能强大的密码库。OpenSSL采用C语言作为开发语言,有优秀的跨平台性能。OpenSSL包括三个部分:SSL协议库,加密算法库,应用程序。其中加密算法库实现了大部分主流的加密算法和标准,包括对称加密算法,公开加密算法,散列函数算法,数字证书标准等。任何人都可以免费使用OpenSSL来实现消息摘要、文件加密和解密、数字证书、数字签名和随机数字产生等功能,以及解决信息的安全传输问题。使用OpenSSL可以缩短软件开发周期,提高软件的运行效率和稳定性。本系统中使用的OpenSSL-1.0.O版本有椭圆曲线加密体制的支持,可以基于OpenSSL软件包提供的椭圆曲线相关函数构建完整的椭圆曲线密码体系方案。由于其良好的跨平台及程序可移植性,可以方便地移植椭圆曲线密码系统到arm-linux平台或其他种类嵌入式平台系统。
三、椭圆曲线加密体制及其实现
椭圆曲线加密体制的两种常用算法是EC -ELGamal与Men-ezes-Vanstone。其中,EC-ELGamal算法是基于椭圆曲线的ELGamal型加密体制,其基本思想是将椭圆曲线的点加和点乘运算类比为有限素域上的运算,加密实施中要求将明文编码为椭圆曲线上的点。Menezes-Vanstone算法利用屏蔽明文的方法避开了明文嵌入的问题。本系统利用OpenSSL-1.0.0提供的椭圆曲线进行密码系统的设计与实现。下面对两种椭圆曲线加密体制的算法进行介绍并附上用C语言设计的程序主要实现代码。
1、EC—ELGamal加密算法及其实现
(1)EC-ELGamal算法加解密及通信的过程
EC-ELGamal算法:
①选定椭圆曲线Ep(a,b),并取椭圆曲线上点G作为基点。
②用户B选择一个私有密钥k,并生成公开密钥K=kG。
③用户B将Ep(a,b)和点K,G传给用户A。
④用户A接到信息后,将待传输的明文编码到Ep(a,b)上一点M1,并产生一个随机整数r。本程序设计中随意选择G作为待加密的信息M1为例,也可以选择椭圆曲线上的其他点。
⑤用户A计算密文C1=G+rK;C2=rG。
⑥用户A将密文CI、C2传给用户B。
⑦用户B接到信息后计算M2=C1-kC2,M2即为解密的数据。
(2)OpenSSL实现EC-ELGamal算法主要代码
//加密操作,对点M1(此处以G为例)加密,C2=rG,C1=G+rK,
//其中K为B的公钥。
//OpenSSL里的函数功能:EC_POINT_mul是点乘,EC—POINT_
//add是点加。
EC_POINT_mul( group, C2, NULL,G,r,ctx);
EC_POINT_mul(group,B,NULL,K,r,ctx);
EC_POINT_add( group, C1,G,B,ctx);
//解密操作,对得到的(C1,C2)解密得到M2=Cl-kC2
EC_POINT_mul(group,R,NULL, C2,k,ctx);
EC_POINT_invert( group,R,ctx);
EC_POINT_add( group, M2, Cl,R,ctx);
M2即为经过解密得到的椭圆曲线上的点,与被加密的明文点M1进行比较,证明解密所得的点的坐标与被加密的数据点的坐标完全相同。此处实际应用中要涉及到用各种编码算法将明文编码到椭圆曲线上的明文点M1,最后再对解密所得的数据M2解码得到原明文。
2、Menezes-Vanstone密码算法及其实现
(1)Menezes-Vanstone算法加密解密及通信的过程
Menezes-Vanstone算法:
①选定椭圆曲线Ep(a,b),并取椭圆曲线上点G作为基点。
②用户B选择一个私有密钥k,并生成公开密钥K=kG。
③用户A将明文M变换成为有限域Zp中的二元组M=(m1,m2)。
④用户A产生随机数r并计算:
RO=rG
(c1,c2)=rK
R1=clml( mod p)
R2=c2m2( mod p)
⑤用户A将(RO,R1,R2)作为密文发送给用户B。
⑥用户B接收到密文后计算:
(dl,d2) =kR。
(mll,m22)=(Rldl_1(mod p), R2d2_1(mod p))即为解密所得数据,与原加密数据(ml,m2)相同。
(2)OpenSSL实现Menezes-Vanstone算法主要代码
//加密操作,对( ml,m2)在有限域zp内赋随意值如下
BN.hex2bn(&ml,”3A2794482D6410697 C85 FA4643BAI DAEA76 FFAE6EC26A2C8");
BN_hex2bn( &m2,"AF7DF34CDA2DF2ACC65 C31BE95 A3888FC5DCC7 04461308EC");
//取参数p,a,b,其中p后面要用到
EC_GROUP_get_curve_GFp( group,p,a,b,ctx);
//r为取的随机数,计算RO=rQ
EC_POINT_mul( group, RO, NULL, Q,r, cLx);
//计算C=( cl,c2)=rK
EC_POIN'r_mul( group, C, NULL, K,r, ctx);
EC_POINT_get_affine_coordinates_GFp( group,C,cl,c2, ctx);
//计算Rl=clml( mod p),R2=c2m2( mod p)
BN_mod_mul( R1, cl ,ml,p,ctx);
BN_mod_mul( R2, c2 ,m2 ,p, ctx);
//解密操作,首先计算D=(dl,d2)=kRO,BN_mod_mul函数是
//进行模乘运算
EC_POINT_mul(group, D, NULL, RO,k,ctx);
EC—POINT—get一affine-coordinates_GFp( group,D,dl, d2,ctx);
//分别取dl与d2对p的模逆此处分别记为dll与d22
BN_mod_inverse( dll ,dl ,p, ctx);
BN_mod_inverse( d22, d2,p,ctx);
//解密(rull ,m22)=(Rldl -1( mod p),R2d2 -1( mod p))
BN_mod_mul( mll, R1 ,dll ,p,ctx);
BN_mod_mul( m22, R2, d22 ,p, ctx);
此处( mll,m22)经数据转换输出十六进制数据为:
mll: 3A2794482D6410697C85 FA4643BAIDAEA76FFAE6EC26A2C8
m22: AF7 DF34CDA2DF2 ACC65 C31BE95 A3888 FC5 DCC704461308EC
结果证明(mll,m22)与(m1,m2)相同,加密解密成功。
四、安全密码系统结构及分析
本系统基于arm9开发板搭建arm-linux系统,用OpenSSL软件包开发了完整的加解密程序,验证OpenSSL在arm-linux平台上实现的可行性及易用性和安全性。实验结果在主机的Linux操作系统中的rmmcom串口终端中显示。现对该安全加密系统的系统结构、搭建步骤、实验分析进行介绍。
1、安全密码系统结构
本嵌入式平台安全密码系统的结构如图1所示。
图l中各部分的功能简介如下:
(1)嵌入式硬件平台是安全加密系统的硬件基础,本系统采用ann9核心开发板,并可根据功能需求进行扩展。
(2)嵌入式操作系统是安全加密系统的系统平台,本系统采用了标准的Linux操作系统。
(3) OpenSSL层实现了SSL安全套接字层协议及其相关加密解密的支持。
(4)安全系统应用层提供基于安全加密的应用服务。
2、软硬件平台介绍
本系统平台采用以arm9为核心并移植Linux操作系统的嵌入式开发平台,基本的软硬件参数如下:
(1) CPU处理器
Samsung S3C2440A,主频400MHz,最高频率达到533MHz。
(2) SDRAM内存
64M SDRAM,32位数据总线。
(3) FLASH存储器
64M Nand Flash存储器;2M Nor Flash存储器。
(4)接口和资源
1个10M以太网RJ-45接口(采用DM9000网卡芯片);3个串行通信接口;1个USB Host接口;1个USB Slave B接口。
(5)移植Linux版本2.6.31
3、实验步骤
(1)主机搭建arm-linux-gcc交叉编译环境,用于对软件库及应用程序进行交叉编译。
(2)向ann9开发板上移植经过裁剪的Linux操作系统,构成基本的arm-linux软硬件开发平台。
(3)下载OpenSSL-I.0.0并用交叉编译器arm-linux-gcc交叉编译并生成静态函数库,并向开发平台移植静态函数库。
(4)将两种加密系统的完整代码分别用arm-linux-gcc交叉编泽,将生成的可执行程序移植到arm-linux平台上运行。
4、实验分析
通过对椭圆曲线的两种算法的程序进行测试分析表明:
(1)两种椭圆曲线密码体制的程序都能准确进行加密解密,程序运行正常。同时,两种密码体制的安全性都是基于椭圆曲线离散对数问题(ECDLP)。
(2) EC-ELGamal密码体制要求将明文编码为椭圆曲线上的点,还要考虑明文嵌入算法增加程序代码量及运行总时间的因素,在实用性上存在缺点。同时,EC-ELGamal密码体制存在密文相关问题(当如果攻击者已知部分明文mx,攻击者可以通过椭圆曲线方程推得my)。
(3) Menezes-Vanstone利用屏蔽明文的方法避免了明文嵌入的问题,但同时此算法也存在两种缺点:信息扩展问题(明文ml、m2被扩展成密文RO、Rl、R2,增加了存储空间和传输带宽需求)、密文相关问题(如果攻击者已知部分明文ml及其对应的密文,则他可以通过计算得到m2)。
(4)加解密速度比较。在素数域内选择密钥长度依次为192位、224位、256位、384位、521位。不考虑明文嵌入问题,统计EC-ELC amal加解密程序对基点Q进行加解密的程序运行时间,同时统计Menezes-Vanstone加解密程序对同样的Q点进行加解密的程序运行时间,表1为统计所得时间对比表。
对表1分析得出:①即使不考虑明文嵌入问题,Menezes-Vanstone在各种密钥长度的加解密速度上已经高于EC -ELGamal;②随着密钥长度逐渐增大两种算法加解密时间的增加幅度上区别不大。
小知识之OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
LSC局域网控制软件电脑版下载,2024官方最新版下载使用
LSC局域网控制软件电脑版下载,2024官方最新版下载使用在信息化时代,局域网的管理和控制显得尤为重要,而LSC局域网控制软件作为一款功能强大的工具,为用户提供了极大的便利。随着2024年官方最新版的推出,很多用户纷纷关注这一软件的下载与使用情况。在本文中,我们将全面评测LSC局域网控制软件的功能、特点以及如何下载和使...
LSC局域网屏幕监控系统电脑版:2024官方最新版下载与使用指南
LSC局域网屏幕监控系统电脑版:2024官方最新版下载与使用指南在信息技术迅猛发展的今天,企业和个人对于数据安全和信息监控越来越重视。特别是在局域网环境中,屏幕监控成为了保护信息和有效管理的重要手段。LSC局域网屏幕监控系统电脑版,是一款功能强大的监控工具,让用户可以实时查看局域网内各设备的屏幕内容。本文将详细介绍LS...
企业高效管理的新利器:公司LSC屏幕监控软件有什么优势
企业高效管理的新利器:公司LSC屏幕监控软件有什么优势在当今快速发展的信息技术时代,企业如何高效、智能地管理自己的信息及资源,已成为每个管理者必须面对的重大课题。LSC屏幕监控软件作为一种新兴的数字化管理工具,为企业提供了一个强有力的解决方案。今天,我们就来深入剖析LSC屏幕监控软件的优势,帮您发现其在企业管理中的重要...
LSC屏幕监控软件使用全解析:如何高效使用与配置
LSC屏幕监控软件使用全解析:如何高效使用与配置在现代企业管理中,信息安全与数据监控变得愈发重要。公司LSC屏幕监控软件凭借其强大的功能与灵活的应用,成为了许多企业的优选工具。这款软件不仅可以实时监控员工的屏幕活动,还能够记录历史数据,为企业提供全面的安全保障和数据分析。本文将详细介绍LSC屏幕监控软件的使用方法和最佳...
公司LSC屏幕监控系统多少钱?如何选择LSC屏幕监控系统
公司LSC屏幕监控系统多少钱?如何选择LSC屏幕监控系统在现代企业中,屏幕监控系统已成为信息安全管理的重要工具。特别是对于处理敏感数据的公司来说,如何选择合适的屏幕监控系统以及其价格成了许多企业主的关心话题。本文将深入探讨LSC公司的屏幕监控系统,包括其价格构成、功能优势、选购建议等,为企业在选择时提供有价值的参考。一...