【技术实现步骤摘要】
数据的加密方法及装置、数据的解密方法及装置
本专利技术涉及信息安全领域,具体而言,涉及一种数据的加密方法及装置、数据的解密方法及装置。
技术介绍
目前的对称加密算法是双方保持一个相同密钥进行同样的加解密算法来传递信息,但是面临对称密钥的管理难题;非对称加密可以帮助对称加密解决密钥管理的问题,但是加密速度和效率仍需提高;在对称加密时,每个消息进行分组或序列加密,密文长度与明文相等,传递消息的效率较低,需要能有算法可以进行快速加密和消息的快速传递。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种数据的加密方法及装置、数据的解密方法及装置,以至少解决多方交互时加密数据传输过程中传输效率较低的技术问题。根据本专利技术实施例的一个方面,提供了一种数据的加密方法,包括:获取n+1个明文数据m0,m1,……,mn以及n+1个密钥数据k0,k1,……,kn,其中,所述n+1个明文数据与所述n+1个密钥数据一一对应,n为正整数;以(k0,m0),(k1,m1),……,(kn,mn)为n+1个点坐标生成n次多项式F(x)=a0+a1*x+a2*x2+…+an*xn,其中,所述n+1个点落在所述n次多项式所表示的曲线上;将所述n次多项式的系数[a0,a1,a2…an]确定为所述n+1个明文数据所对应的密文数据。根据本专利技术实施例的另一方面,还提供了一种数据的解密方法,包括:获取发送端发送的密文数据[a0,a1,a2…an]和密钥数据ki,其中,所述密文数据[a0,a1,a2…an]为以(k0,m0),(k1,m1),……,(kn,mn)为n+ ...
【技术保护点】
1.一种数据的加密方法,其特征在于,包括:获取n+1个明文数据m0,m1,……,mn以及n+1个密钥数据k0,k1,……,kn,其中,所述n+1个明文数据与所述n+1个密钥数据一一对应,n为正整数;以(k0,m0),(k1,m1),……,(kn,mn)为n+1个点坐标生成n次多项式F(x)=a0+a1*x+a2*x
【技术特征摘要】
1.一种数据的加密方法,其特征在于,包括:获取n+1个明文数据m0,m1,……,mn以及n+1个密钥数据k0,k1,……,kn,其中,所述n+1个明文数据与所述n+1个密钥数据一一对应,n为正整数;以(k0,m0),(k1,m1),……,(kn,mn)为n+1个点坐标生成n次多项式F(x)=a0+a1*x+a2*x2+…+an*xn,其中,所述n+1个点落在所述n次多项式所表示的曲线上;将所述n次多项式的系数[a0,a1,a2…an]确定为所述n+1个明文数据所对应的密文数据。2.根据权利要求1所述的方法,其特征在于,获取所述n+1个明文数据m0,m1,……,mn以及所述n+1个密钥数据k0,k1,……,kn包括:获取待传输的n+1个初始数据;将所述n+1个初始数据中每个初始数据扩展为数据长度为目标长度的所述n+1个明文数据m0,m1,……,mn;生成与所述n+1个明文数据m0,m1,……,mn一一对应的所述n+1个密钥数据k0,k1,……,kn。3.根据权利要求2所述的方法,其特征在于,将所述n+1个初始数据扩展为数据长度为目标长度的所述n+1个明文数据m0,m1,……,mn包括:在所述n+1个初始数据中数据长度最长的一个初始数据hp的数据长度大于或者等于所述目标长度的情况下,在所述n+1个初始数据中除hp之外的其他n个初始数据h0,……,hp-1,hp+1……,hn之后补充第一目标数据,得到所述n个初始数据所对应的n个明文数据m0,……,mp-1,mp+1……,mn,其中,所述n个明文数据中每个明文数据的数据长度等于hp的数据长度,hp为hp所对应的明文数据mp,p为大于等于0且小于等于n的整数;在所述n+1个初始数据中数据长度最长的一个初始数据hp的数据长度小于所述目标长度的情况下,在所述n+1个初始数据h0,h1,……,hn之后补充第二目标数据,得到所述n+1个初始数据所对应的n+1个明文数据m0,m1,……,mn,其中,所述n+1个明文数据中每个明文数据的数据长度等于所述目标长度,p为大于等于0且小于等于n的整数。4.根据权利要求1所述的方法,其特征在于,获取所述n+1个明文数据m0,m1,……,mn以及所述n+1个密钥数据k0,k1,……,kn包括:获取待传输的初始数据g,并生成所述初始数据g所对应的初始密钥k;将所述初始数据g依据目标长度进行划分,获得所述n+1个明文数据m0,m1,……,mn,其中,在划分得到的第n+1个数据的数据长度小于所述目标长度的情况下,在所述第n+1个数据之后补充第三目标数据,得到数据长度为所述目标长度的所述明文数据mn;根据所述初始密钥k通过预设的密钥生成函数生成所述n+1个密钥数据k0,k1,……,kn。5.根据权利要求4所述的方法,其特征在于,根据所述初始密钥k通过预设的密钥生成函数生成所述n+1个密钥数据k0,k1,……,kn包括:通过以下公式得到n+1个长度为length字节的密钥数据k0,k1,……,kn:k0=keccak(seed0+rand0,length*(n+1)),其中,seed0=k,rand0为一随机数random,keccak为单向散列函数;kt=keccak(seedt+randt,length*(n+1)),其中,randt=rand0+t,seedt=keccak(kt-1+randt,length*(n+1)),t=1,2,3,…,n。6.根据权利要求1所述的方法,其特征在于,以(k0,m0),(k1,m1),……,(kn,mn)为n+1个点坐标生成n次多项式F(x)=a0+a1*x+a2*x2+…+an*xn包括:以(k0,m0),(k1,m1),……,(kn,mn)为所述n+1个点坐标采用拉格朗日插值法生成所述n次多项式F(x)=a0+a1*x+a2*x2+…+an*xn。7.根据权利要求1至6中任一项所述的方法,其特征在于,在将所述n次多项式的系数[a0,a1,a2…an]确定为所述n+1个明文数据所对应的密文数据之...
【专利技术属性】
技术研发人员:程威,
申请(专利权)人:北京思源互联科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。