本申请涉及数据验证的,尤其涉及一种加密算法、一种验证算法及一种数据验证方法。
背景技术:
1、在数据交互的过程中,常常存在两个角色,一个为数据提供方,一个为数据接收方,为了确认数据接收方接收到的数据为数据提供方提供的数据,往往需要数据验证过程。数据验证在多种场景下均有应用,例如访问鉴权场景。为了保障数据交互的安全性,本领域技术人员一直致力于追求新的数据验证方法。
技术实现思路
1、本申请提供了一种加密算法、一种验证算法及一种数据验证方法,其能够提高数据交互过程的可靠性。
2、第一方面,本申请提供了一种加密算法。该算法包括:
3、选定一个大素数p,得到自然数q,满足p-1能够被q整除,正整数g是循环群g的q阶生成元;
4、随机生成t个原始数据si和一个数据编号n,si∈g;
5、构造用于加密的函数其中,t为预设数量且t≤n;
6、将数据编号n代入函数f(x),得到加密数据f(n)。
7、通过采用上述技术方案,实现了加密数据的生成。
8、进一步地,还包括:
9、将加密数据si和数据编号n转化为转化为预设长度的十六进制码并连接,形成加密编码。
10、进一步地,其中,n≤216,所述数据编号转化为的十六进制码为两位。
11、第二方面,本申请提供了一种验证算法。该算法包括:
12、选定一个大素数p,得到自然数q,满足p-1能够被q整除,正整数g是循环群g的q阶生成元;
13、构造与用于加密的函数相应的函数ci=gf(x)modp,其中,t为预设数量且t≤n;
14、将i=0,1,2,3...,t-1代入函数ci,分别得到验证凭证c0,c1,c2,...,ct-1;
15、获取加密数据f(n)和数据编号n;
16、验证gf(n)和是否相等,若是,则提供的加密数据f(n)和数据编号n为未被篡改。
17、通过采用上述技术方案,实现了对终端提供的加密数据和数据编号的验证。
18、进一步地,其中,n≤216,所述数据编号转化为的十六进制码为两位。
19、第三方面,本申请提供了一种数据验证方法。该方法应用于服务器和终端组成的系统,所述方法包括:
20、服务器选定一个大素数p,得到自然数q,满足p-1能够被q整除,正整数g是循环群g的q阶生成元;
21、服务器随机生成t个原始数据si和一个数据编号n,si∈g;
22、服务器构造用于加密的函数和函数ci=gf(x)modp,其中,t为预设数量且t≤n;将数据编号n代入函数f(x),得到加密数据f(n);将i=0,1,2,3...,t-1代入函数ci,分别得到验证凭证c0,c1,c2,...,ct-1;
23、服务器将加密数据f(n)和数据编号n发送至终端,并持久化存储验证凭证c0,c1,c2,...,ct-1;
24、在终端向服务器提供加密数据f(n)和数据编号n时,验证gf(n)和是否相等;若是,则提供的加密数据f(n)和数据编号n为未被篡改。
25、通过采用上述技术方案,实现了加密数据、数据编号的生成,并且在服务器不存储加密数据和数据编号的情况下,能够实现对终端提供的加密数据和数据编号进行验证,有利于保障数据交互的安全性。
26、进一步地,所述方法还包括:
27、服务器将加密数据f(n)和数据编号n转化为转化为预设长度的十六进制码并连接,形成加密编码发送至终端;
28、终端向服务器提供加密编码,服务器基于预设拆分规则,将加密编码拆分为加密数据的十六进制码和数据编号的十六进制码;
29、加密数据的十六进制码和数据编号的十六进制码转化为十进制,得到所述加密数据f(n)和数据编号n。
30、进一步地,其中,n≤216,所述数据编号转化为的十六进制码为两位。
31、进一步地,其中,记c={c0,c1,c2,...,ct-1},服务器持久化存储c。
32、综上所述,本申请至少包含以下有益效果:
33、1.提供了一种加密算法、一种验证算法及一种数据验证方法,其能够根据原始数据和数据编号生成加密数据,并且能够对加密数据和数据编号进行验证,有利于保障数据交互的安全性;
34、2.将加密数据和数据编号转化为十六进制码并连接形成加密编码给终端,有利于终端的用户记录加密编码。
35、应当理解,
技术实现要素:
部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。
1.一种加密算法,其特征在于,包括:
2.根据权利要求1所述的一种加密算法,其特征在于,还包括:
3.根据权利要求2所述的一种加密算法,其特征在于,n≤216,所述数据编号转化为的十六进制码为两位。
4.一种验证算法,其特征在于,包括:
5.根据权利要求4所述的一种验证算法,其特征在于,所述获取加密数据f(n)和数据编号n包括:
6.根据权利要求5所述的一种验证算法,其特征在于,n≤216,所述数据编号转化为的十六进制码为两位。
7.一种数据验证方法,其特征在于,应用于服务器和终端组成的系统,所述方法包括:
8.根据权利要求7所述的一种数据验证方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的一种数据验证方法,其特征在于,n≤216,所述数据编号转化为的十六进制码为两位。
10.根据权利要求9所述的一种数据验证方法,其特征在于,记c={c0,c1,c2,...,ct-1},服务器持久化存储c。
