一种计算机对数据流进行处理的方法

文档序号:7763521阅读:212来源:国知局
专利名称:一种计算机对数据流进行处理的方法
技术领域
本发明属于信息安全领域,尤其涉及一种为保证信息安全对数据流采取的处理方法。
背景技术
数据流的形式可以是数字、文字、图形或声音等,而数据流在经过解释并赋予一定的意义后,便成为信息。数据处理是对数据的采集、存储、检索、加工、变换和传输,贯穿于社会生产和生活的各个领域,基本的目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对某些特定的人们来说是有价值和意义的数据。计算机技术的飞速发展推动了数据处理领域,因特网给众多商家带来了无限的商机,许多网络黑客依照经济利益或个人爱好,往往专门跟踪^ternet的特殊群体或个别敏感用户,盗取他们的网络身份或银行帐户信息,再冒充合法用户的身份,进一步侵入信息系统,非法盗取经济、政治、军事机密,为了保证因特网的安全和充分发挥其商业信息交换的价值,人们通常都会选择预先对传输的信息进行处理。

发明内容
针对以上问题,本发明提供了一种计算机对数据流的处理方法,并将哈希算法的抗冲突性和对称算法的高速加解密引入其中,以实现一种数据流的安全快速加解密。为达到以上目的,本发明采用了如下技术方案一种计算机对数据流进行处理的方法,包括以下步骤,步骤101 接收数据流;步骤102 获取第一数值、第一参数、第二参数和第一关键数;步骤103 生成一个随机数,所述随机数的取值大于等于1小于等于所述第一参数减1 ;步骤104 将所述随机数和所述第一数值按照第一运算进行计算得到第二数值, 将所述随机数、所述第二参数和所述第一关键数按照第二运算计算得到第三数值;步骤105 判断所述第三数值的纵坐标值的平方是否等于所述第三数值的横坐标值的三次方、第一常数与所述第三数值横坐标值平方的乘积以及第二常数三者之和,若相等则执行下一步,否则返回执行步骤103 ;步骤106 根据第一函数计算所述第三数值和所述第二数值得到第一密钥、第二密钥;步骤107 根据第二函数计算所述第一密钥和所述数据流得到第四数值,根据第一算法计算所述第二密钥和所述第四数值得到第一认证码;步骤108 将所述第二数值、所述第四数值、所述第一认证码按预设规则组合作为数据流的最终处理结果输出。所述第一数值和第一关键数为二维数值,所述二维数值对应二维坐标系中的点,所述点是由满足预设二元方程式的横坐标值和对应的纵坐标值组成。步骤104中所述将随机数和第一数值按照第一运算进行计算得到第二数值的具体过程如下a.将随机数表示为二进制数,删除出现在最高位的1,对二进制数形式的所述随机数从高位到低位逐位检查,凡遇0,则对当前结果执行翻倍计算,凡遇1,则对当前结果翻倍并与第一数值相加;b.当计算至二进制数末位时输出的计算结果即为计算得到的第二数值;所述当前结果是指二进制数当前位的前一位的计算结果,当前结果的初始值为第一数值。所述对当前结果执行翻倍计算和所述对当前结果翻倍并与第一数值相加是采用预设加法器模块实现的。步骤104中所述将随机数、第二参数和第一关键数按照第二运算计算得到第三数值具体过程为先计算随机数与第二参数的乘积,然后将这个乘积结果与第一关键数按照所述第一运算进行计算。所述预设加法器模块执行加法运算的过程具体包括,(1)接收到第一输入数、第二输入数、第三输入数、第四输入数,获取一个预设值;所述第一输入数和第二输入数分别为第一个二维数值的横坐标值和纵坐标值,第三输入数和第四输入数分别第二个二维数值的横坐标值和纵坐标值所述预设数的取值为 1。(2)对所述预设数执行预设模数的平方运算并将运算结果赋值给预设的第一临时数;(3)对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给预设的第二临时数;(4)对当前第一临时数和第三输入数执行预设模数的乘法运算并将运算结果赋值给第一临时数;(5)对第二临时数和第四输入数执行预设模数的乘法运算并将运算结果赋值给第二临时数;(6)对当前第一临时数和第一输入数执行预设模数的减法运算并将运算结果赋值给第一临时数;(7)对当前第二临时数和第二输入数执行预设模数的减法运算并将运算结果赋值给第二临时数;(8)判断当前第一临时数和第二临时数是否同时都为零,若是则执行步骤(9), 否则判断第一临时数和第二临时数其中之一是否为零,若是则返回错误,否则执行步骤 (9');(9)对所述预设数执行预设模数的平方运算并将运算结果赋值给第一临时数;(10)对第一输入数和第一临时数执行预设模数的减法运算并将运算结果赋值给第二临时数;(11)对第一输入数和第一临时数执行预设模数的加法运算并将运算结果赋值给第一临时数;(12)对当前第一临时数和第二临时数执行预设模数的乘法运算并将运算结果赋值给第二临时数;
(13)计算当前第二临时数与数3的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二临时数;(14)计算第二输入数与数2的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二输出数;(15)对当前第二输出数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;(16)对当前第二输出数执行预设模数的平方运算并将运算结果赋值给第二输出数;(17)计算当前第二输出数与第一输入数的乘积,并将相乘结果按预设模数取模, 将取模结果赋值给第三临时数;(18)对当前第二输出数执行预设模数的平方运算并将运算结果赋值给第二输出数;(19)计算当前第二输出数除以数2并将相除结果按预设模数取模,将取模结果赋值给第二输出数;(20)对当前第二临时数执行预设模数的平方运算并将运算结果赋值给第一输出数;(21)计算第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;(22)对第一输出数和当前第一临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(23)对第三临时数和当前第一输出数执行预设模数的减法运算并将运算结果赋值给第一临时数;(24)对当前第一临时数和第二临时数执行预设模数的乘法运算并将运算结果赋值给第一临时数;(25)对当前第一临时数和当前第二输出数执行预设模数的减法运算并将运算结果赋值给第二输出数;(26)记录当前的第一输出数、第二输出数、第三输出数;(27)对第三输出数执行预设模数的平方运算并将运算结果赋值给预设的第一转换数;(28)对第三输出数执行预设模数的三次方运算并将运算结果赋值给预设的第二转换数;(29)计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;(30)计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;(31)输出当前的第一输出数和第二输出数。(9')对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;(10')对当前第一临时数执行预设模数的平方运算并将运算结果赋值给第三临时数;(11')对当前第三临时数和第一临时数执行预设模数的乘法运算并将运算结果赋值给第四临时数;(12')对当前第三临时数和第一输入数执行预设模数的乘法运算并将运算结果赋值给第三临时数;(13')计算当前第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;(14')对当前第二临时数执行预设模数的平方运算并将运算结果赋值给第一输出数;(15')对当前第一输出数和第一临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(16')对当前第一输出数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(17')对当前第三临时数和第一输出数执行预设模数的减法运算,并将运算结果赋值给第三临时数;(18')对当前第三临时数和第二临时数执行预设模数的乘法运算,并将运算结果赋值给第三临时数;(19')对当前第四临时数和第二输入数执行预设模数的乘法运算,并将运算结果赋值给第四临时数;(20')对当前第三临时数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第二输出数;(21')对第三输出数执行预设模数的平方运算并将运算结果赋值给第一转换数;(22')对第三输出数执行预设模数的三次方运算并将运算结果赋值给第二转换数;(23')计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;(24')计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;(25')输出当前的第一输出数和第二输出数。从步骤108中所述最终处理结果中还原出原始数据流的过程具体包括如下步骤,步骤201 接收到所述最终处理结果,按照预设规则拆分所述最终处理结果得到第二数值、第四数值、第一认证码;步骤202 获取第二关键数、第二参数;步骤203 将所述第二参数、第二关键数和第二数值按照第二运算进行计算得到第五数值;步骤204 判断第五数值的纵坐标值的平方是否等于第五数值的横坐标值的三次方、第一常数与所述第五数值横坐标值平方的乘积以及第二常数三者之和,是则执行下一步,否则提示操作失败;
步骤205 根据第一函数计算所述第五数值和所述第二数值得到第三密钥、第四密钥;步骤206 根据第一算法计算所述第四密钥和所述第四数值得到第二认证码;步骤207 比较所述第一认证码和所述第二认证码是否相等,是则执行下一步,否则提示操作失败;步骤208 根据第三函数计算所述第三密钥和所述第四数值得到原始数据流。所述第一常数和所述第二常数满足如下关系第一常数三次方的4倍与第二常数平方的27倍之和不等于零。所述第一参数满足如下条件,将η个所述第一数值进行加法运算,将满足最终运算结果为零且取值最小的η作为第一参数;所述第二参数是预设模数除以所述第一参数计算得到的。所述第二关键数是随机生成的,所述第二关键数的取值大于等于1小于等于第一参数减1。所述第一关键数是所述第二关键数和所述第一数值经过所述第一运算计算得到的。上述步骤106所述根据第一函数计算第三数值和第二数值得到第一密钥、第二密钥具体过程如下(1)将第三数值的横坐标值、第二数值的横坐标值、第二数值的纵坐标值拼接为一比特串;(2)将所述比特串输入到第一函数,第一函数调用密钥杂凑函数进行计算,生成个数为预设数值的杂凑值;所述预设数值等于预设密钥长度除以预设杂凑值长度并向上取整的结果,所述预设密钥长度为预先设定的第一函数生成的密钥的长度;(3)将生成的个数为预设数值的杂凑值级联形成长度为预设长度的密钥,将所述密钥平分为两部分,高位部分作为第一密钥输出,低位部分作为第二密钥输出。所述密钥杂凑函数是MD5、SHA-U SHA-256中的任意一种。所述第二函数是对称密钥加密方法的加密函数,具体为DES、3DES、AES中的任意一种。所述第一算法是指采用消息认证码函数进行的计算,计算过程中选取MD5、SHA_1、 SHA-256中的任意一种。所述第三函数是对称密钥解密方法中的解密函数。本发明的有益效果是本发明提出的数据流处理方法包括正向处理和逆向处理, 若公开了数据流正向处理结果,恶意的第三方很难从所述正向处理结果中还原出原始数据流,可以有效保证数据流传输的安全性。


图1是本发明实施例1提供的一种计算机对数据流正向处理的方法流程图;图2是本发明实施例2提供的一种计算机对数据流逆向处理的方法流程图。
1具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步的详细描述。为了便于理解本发明的技术方案做如下定义定义满足预设二元方程式的χ值和对应的y值组成一个二维数值,所述X值对应二维坐标系的横坐标值,所述y值对应二维坐标系的纵坐标值,则所述二维数值对应二维坐标系中的一个点,所述二元方程式对应二维坐标系中的一条曲线。定义一个可以实现两个二维数值相加的加法器模块。本实施例中,以下出现的数在计算机中均为二进制比特串形式存在,且所有运算均执行预设模数的运算。所述加法器模块计算二维数值相加的过程具体如下1.接收到第一输入数、第二输入数、第三输入数、第四输入数,获取一个预设值;本实施例中,第一输入数和第二输入数分别为第一个二维数值的横坐标值和纵坐标值,第三输入数和第四输入数分别第二个二维数值的横坐标值和纵坐标值,第一输入数、 第二输入数、第三输入数和第四输入数是用户根据已知二维数值输入到加法器模块的,本发明中所述预设数的取值设定为1。2.对所述预设数执行预设模数的平方运算并将运算结果赋值给预设的第一临时数;3.对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给预设的第二临时数;4.对当前第一临时数和第三输入数执行预设模数的乘法运算并将运算结果赋值给第一临时数;5.对第二临时数和第四输入数执行预设模数的乘法运算并将运算结果赋值给第二临时数;6.对当前第一临时数和第一输入数执行预设模数的减法运算并将运算结果赋值给第一临时数;7.对当前第二临时数和第二输入数执行预设模数的减法运算并将运算结果赋值给第二临时数;8.判断当前第一临时数和第二临时数是否同时都为零,若是则执行步骤9,否则判断第一临时数和第二临时数其中之一是否为零,若是则返回错误,否则执行步骤9';本实施例中具体地,当接收到的第一输入数等于第三输入数,第二输入数等于第四输入数,则当前第一临时数和第二临时数同时都为零,则从步骤9开始是执行两个相等的二维数值的加法运算,当接收到的第一输入数不等于第三输入数,第二输入数不等于第四输入数,则当前第一临时数和第二临时数均不为零,则从步骤9'开始是执行两个不相等的二维数值的加法运算。9.对所述预设数执行预设模数的平方运算并将运算结果赋值给第一临时数;10.对第一输入数和第一临时数执行预设模数的减法运算并将运算结果赋值给第二临时数;具体地,本实施例中所述第一输入数为减数,所述第一临时数为被减数。11.对第一输入数和第一临时数执行预设模数的加法运算并将运算结果赋值给第
1一临时数;12.对当前第一临时数和第二临时数执行预设模数的乘法运算并将运算结果赋值给第二临时数;13.计算当前第二临时数与数3的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二临时数;14.计算第二输入数与数2的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二输出数;15.对当前第二输出数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;16.对当前第二输出数执行预设模数的平方运算并将运算结果赋值给第二输出数;17.计算当前第二输出数与第一输入数的乘积,并将相乘结果按预设模数取模,将取模结果赋值给第三临时数;
Mr18.对当前第二输出数执行预设模:数的平方运算并将运算结果赋值给第二输出M.;
19.计算当前第二输出数除以数2并将相除结果按预设模数取模,将取模结果赋值给第二输出数;
Mr20.对当前第二临时数执行预设模:数的平方运算并将运算结果赋值给第一输出M.;
21.计算第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;
22.对第一输出数和当前第一临时I发执行预设模数的减法运算,并将运算结果赋值给第一输出数;
具体地,本实施例中所述第一输出数.为减数,当前第一临时数为被减数。
23.对第三临时数和当前第一输出娄!(执行预设模数的减法运算并将运算结果赋值给第一临时数;
具体地,本实施例中所述第三临时数.为减数,当前第一输出数为被减数。
24.对当前第一临时数和第二临时娄!(执行预设模数的乘法运算并将运算结果赋值给第一临时数;
25.对当前第一临时数和当前第二输出数执行预设模数的减法运算并将运算结果赋值给第二输出数;
具体地,本实施例中所述当前第一临时数为减数,当前第二输出数为被减数。
26.记录当前的第一输出数、第二输出数、第三输出数;
Mr27.对第三输出数执行预设模数的平方运算并将运算结果赋值给预设的第一转换M.;
HhMr28.对第三输出数执行预设模数的三三次方运算并将运算结果赋值给预设的第二转ixM ;
29.计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;
31.计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;31.输出当前的第一输出数和第二输出数。9'.对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;10'.对当前第一临时数执行预设模数的平方运算并将运算结果赋值给第三临时数;11'.对当前第三临时数和第一临时数执行预设模数的乘法运算并将运算结果赋值给第四临时数;12'.对当前第三临时数和第一输入数执行预设模数的乘法运算并将运算结果赋值给第三临时数;13'.计算当前第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;14'.对当前第二临时数执行预设模数的平方运算并将运算结果赋值给第一输出数;15'.对当前第一输出数和第一临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;本实施例中具体地,减法运算中,所述当前第一输出数为减数,当前第一临时数为被减数。16'.对当前第一输出数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;本实施例中具体地,减法运算中,所述当前第一输出数为减数,第四临时数为被减数。17'.对当前第三临时数和第一输出数执行预设模数的减法运算,并将运算结果赋值给第三临时数;本实施例中具体地,减法运算中,所述当前第一输出数为被减数,第三临时数为减数。18'.对当前第三临时数和第二临时数执行预设模数的乘法运算,并将运算结果赋值给第三临时数;19'.对当前第四临时数和第二输入数执行预设模数的乘法运算,并将运算结果赋值给第四临时数;20'.对当前第三临时数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第二输出数;本实施例中具体地,减法运算中,所述当前第三临时数为减数,第四临时数为被减数。21'.对第三输出数执行预设模数的平方运算并将运算结果赋值给第一转换数;22'.对第三输出数执行预设模数的三次方运算并将运算结果赋值给第二转换数;23'.计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;24'.计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;25'.输出当前的第一输出数和第二输出数。以下实施例中,出现的二维数值以符合预设的二元方程为例进行说明。其中,预设二元方程中的第一常数和第二常数满足如下关系第一常数三次方的4倍与第二常数平方的27倍之和不等于零。计算机在进行实施例1和实施例2的对数据流的处理之前首先生成第一关键数和第二关键数,具体步骤如下①获取一个参数组,其中,所述参数组包括第一数值、第一参数、第二参数;具体的,所述第一数值是一个二维数值,第一数值的横坐标值和纵坐标值满足预设的二元方程式,所述二元方程式是由受信任的第三方公开的;所述第一参数满足如下条件将η个第一数值进行加法运算,将满足最终运算结果为零且取值最小的η作为第一参数,所述加法运算采用预设加法器模块实现;所述第二参数是预设模数除以第一参数计算得到的。②随机生成第二关键数,第二关键数取值满足大于等于1,小于等于第一参数减
丄 ,③将第一数值和第二关键数通过预设加法器模块进行计算得到第一关键数;④设置第一关键数、第一数值、第一参数、第二参数在数据流处理过程中可随意调用,设置第二关键数只有在对数据流进行逆向处理时才能调用。例如,生成的第二关键数d为d = AFC59AF5EAFE247CAC2057365629220BB6284082获取的第一数值G的取值为Gx = 4F3A609AEC06DE6E466E2DB52F0ED536C1FF87F4Gy = 8559EF2ADDA20056C4BE54E3065DE5FE3952FF22将第一数值和第二关键数按照第一运算进行计算得到第一关键数Q为Qx = 3BACCF8F21E4463B95047D2F9F44B8BC4CC0CCF2Qy = 0A007FE75C50BA1F17344D38AC48F92C529924FC
实施例1本实施例提出了一种计算机对数据流进行正向处理的方法,如图1所示包括以下步骤步骤101 接收数据流;步骤102 获取第一数值、第一参数、第二参数和第一关键数;在本实施例中具体的,所述第一数值、第一参数、第二参数、第一关键数是事先已经公开的。步骤103 生成一个随机数,所述随机数的取值大于等于1小于等于第一参数减
丄,本实施例中具体的所述随机数可以为真随机数,也可以为将真随机数作为种子而生成的伪随机数。
步骤104 将随机数和第一数值按照第一运算进行计算得到第二数值,将随机数、 第二参数和第一关键数按照第二运算计算得到第三数值;本实施例中,第一数值为一个二维数值,将随机数和第一数值按照第一运算进行计算得到第二数值的具体过程如下a.将随机数表示为二进制数,删除出现在最高位的1, 对二进制数形式的随机数从高位到低位逐位检查,凡遇0,则对当前结果执行翻倍计算,凡遇1,则对当前结果翻倍并与第一数值相加;b.当计算至二进制数末位时输出的计算结果即为计算得到的第二数值。所述当前结果是指二进制数当前位的前一位的计算结果,当前结果的初始值为第一数值,例如,随机数表示成的二进制数删除最高位的1,获取当前位为 0,则对第一数值执行翻倍计算,并将计算结果记录为当前结果。所述计算得到的第二数值是一个二维数值;上述计算过程中的当前结果的翻倍和当前结果翻倍并与第一数值相加是采用预设加法器模块实现的,例如,加法器模块的第一输入数和第三输入数取第一数值的横坐标值,第二输入数和第四输入数取第一数值的纵坐标值,则经加法器模块计算的输出结果为第一数值的翻倍,再比如,加法器模块的第一输入数和第二输入数取加法器模块执行第一数值翻倍后的第一输出数和第二输出数,第三输入数和第四输入数取第一数值的横坐标值和纵坐标值,则经加法器模块计算的输出结果为第二数值的横坐标值和纵坐标值。本实施例中,第一关键数为一个二维数值,将随机数、第二参数和第一关键数按照第二运算计算得到第三数值具体过程为先计算随机数与第二参数的乘积,然后将这个乘积结果与第一关键数按照第一运算进行计算,所述第一运算与上述第一运算相同,这里不再赘述。上述计算得到的第二数值、第三数值均为二维数值。例如,步骤103所生成的随机数k为k = C475C3292B32861CB88AC0F365EC583A6E10BED3步骤102获取的第一数值G的取值为Gx = 4F3A609AEC06DE6E466E2DB52F0ED536C1FF87F4Gy = 8559EF2ADDA20056C4BE54E3065DE5FE3952FF22步骤102获取的第二参数h的取值为h = 1步骤102获取的第一关键数Q的取值为Qx = 3BACCF8F21E4463B95047D2F9F44B8BC4CC0CCF2Qy = 0A007FE75C50BA1F17344D38AC48F92C529924FC则本步骤中将所述随机数k和所述第一数值G按照第一运算进行计算得到的第二数值R为Rx = A09FE1CCE6C73375B15E0CD6A3655C218F377204Ry = 86E29E2877E26D9114A421E79ADDC0D82D3F102A将随机数k、第二参数h和第一关键数Q按照第二运算计算得到第三数值Z为Zx = CC7EE4746D9CCA229937E58BEBF17E55ED6AA541Zy = 96D7DDC58D31D68E9134BC12EAB98C58EE861047步骤105 判断第三数值的纵坐标值的平方是否等于第三数值的横坐标值的三次方、第一常数与所述第三数值横坐标平方的乘积以及第二常数三者之和,若相等则执行下
16一步,否则返回执行步骤103;所述第一常数和第二常数满足如下条件第一常数三次方的4倍与第二常数平方的27倍之和不等于零。步骤106 根据第一函数计算第三数值和第二数值得到第一密钥、第二密钥;本实施例中,根据第一函数计算第三数值和第二数值得到第一密钥、第二密钥具体过程如下(1)将第三数值的横坐标值、第二数值的横坐标值、第二数值的纵坐标值拼接为一比特串,预先设定第一函数生成的密钥长度;(2)将所述比特串输入到第一函数,第一函数调用密钥杂凑函数进行计算,生成个数为预设数值的杂凑值;所述密钥杂凑函数的输入为比特串和计数值,输出为一个杂凑值,所述计数值的初始值为1,每计算一次计数值加1,直至所述计数值增加至预设数值,所述预设数值等于预设密钥长度除以预设杂凑值长度并向上取整的结果。若预设密钥长度除以所述预设杂凑值长度为整数,则计数值增加至预设数值时所得到的杂凑值的长度等于预设杂凑值长度;若预设密钥长度与所述预设杂凑值长度不能整除,则计数值增加至预设数值时所得到的杂凑值的长度等于所述预设密钥长度减去所述预设密钥长度除以预设杂凑值长度向下取整的结果与所述预设杂凑值的乘积;(3)将生成的个数为预设数值的杂凑值级联形成长度为预设长度的密钥,将所述密钥平分为两部分,高位部分作为第一密钥输出,低位部分作为第二密钥输出。所述密钥杂凑函数可以是MD5、SHA-U SHA-256等中的任意一种。当密钥杂凑函数为SHAl或DES时,将生成的杂凑值级联形成的密钥的长度为16 字节,则第一密钥的值取前八字节,第二密钥的值取后八字节。具体示例如下所述第二数值R为Rx = A09FE1CCE6C73375B15E0CD6A3655C218F377204Ry = 86E29E2877E26D9114A421E79ADDC0D82D3F102A所述第三数值Z为Zx = CC7EE4746D9CCA229937E58BEBF17E55ED6AA541Zy = 96D7DDC58D31D68E9134BC12EAB98C58EE861047根据第一函数计算所述第二数值和第三数值得到的第一密钥kl和第二密钥为k2 为kl = 3DC33313DDC29D67k2 = 73A5EB8289088195步骤107 根据第二函数计算第一密钥和数据流得到第四数值,根据第一算法计算第二密钥和第四数值得到第一认证码;本实施例中,具体的,所述第二函数是对称密钥加密方案中的加密函数,例如,可以选取DES、3DES、AES等标准对称算法中的任意一种;所述第一算法是指采用消息认证码函数进行的计算,计算过程中可选取MD5、SHA-U SHA-256等算法中的任意一种。步骤108 将第二数值、第四数值、第一认证码按预设规则组合作为数据流的最终处理结果输出。在本实施例中,所述按预设规则组合具体为将第二数值、第四数值、第一认证码按照先后顺序依次连接起来。实施例2本实施例提出了一种计算机对数据流进行逆向处理的方法,如图2所示包括以下步骤本实施例中,具体的,所述数据流选取实施例1中步骤108的输出结果。步骤201 接收到数据流,按照预设规则拆分数据流得到第二数值、第四数值、第一认证码;具体的,所述按照预设规则拆分与实施例1中所述按照预设规则组合是互逆的过程。步骤202 获取第二关键数、第二参数;在本实施例中,所述第二关键数是预先随机生成的,所述第二参数是事先公开的。步骤203 将第二参数、第二关键数和第二数值按照第二运算进行计算得到第五数值;本实施例中,具体的,所述第二运算与实施例1所述第二运算相同,在此不再赘述;所述第五数值是一个二维数值,在二维坐标系中可用横坐标值和纵坐标值表示。步骤204 判断第五数值的纵坐标值的平方是否等于第五数值的横坐标值的三次方、第一常数与所述第五数值横坐标值平方的乘积以及第二常数三者之和,是则执行下一步,否则提示操作失败;步骤205 根据第一函数计算第五数值和第二数值得到第三密钥、第四密钥;本实施例中,所述计算过程具体为取第五数值的横坐标值,根据第一函数计算第五数值的横坐标值、第二数值的横坐标值和纵坐标值得到第三密钥和第四密钥;采用第一函数的计算过程与实施例1中所述采用第一函数计算第一密钥和第二密钥的过程相同,在此不再赘述。步骤206 根据第一算法计算第四密钥和第四数值得到第二认证码;所述第一算法是指采用消息认证码函数进行的计算,计算过程中可以选取MD5、 SHA-USHA-256等算法中的任意一种。本实施例中所述第一算法计算过程中采用的具体算法事先预定为与实施例1所述第一算法计算过程中采用的算法相同。步骤207 比较第一认证码和第二认证码是否相等,是则执行下一步,否则提示操作失败;步骤208 根据第三函数计算第三密钥和第四数值得到原始数据流。本实施例中,具体的,所述第三函数是对称密钥解密方案中的解密函数,所述第三函数是事先约定的与实施例1所述第二函数相对应的函数。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种计算机对数据流进行处理的方法,其特征是包括步骤101 接收数据流;步骤102 获取第一数值、第一参数、第二参数和第一关键数;步骤103 生成一个随机数,所述随机数的取值大于等于1小于等于所述第一参数减1 ;步骤104 将所述随机数和所述第一数值按照第一运算进行计算得到第二数值,将所述随机数、所述第二参数和所述第一关键数按照第二运算计算得到第三数值;步骤105 判断所述第三数值的纵坐标值的平方是否等于所述第三数值的横坐标值的三次方、第一常数与所述第三数值横坐标值平方的乘积以及第二常数三者之和,若相等则执行下一步,否则返回执行步骤103 ;步骤106 根据第一函数计算所述第三数值和所述第二数值得到第一密钥、第二密钥; 步骤107 根据第二函数计算所述第一密钥和所述数据流得到第四数值,根据第一算法计算所述第二密钥和所述第四数值得到第一认证码;步骤108 将所述第二数值、所述第四数值、所述第一认证码按预设规则组合作为数据流的最终处理结果输出。
2.根据权利要求1所述的一种计算机对数据流进行处理的方法,其特征是所述第一数值和第一关键数为二维数值,所述二维数值对应二维坐标系中的点,所述点是由满足预设二元方程式的横坐标值和对应的纵坐标值组成。
3.根据权利要求1所述的一种计算机对数据流进行处理的方法,其特征是步骤104 中所述将随机数和第一数值按照第一运算进行计算得到第二数值的具体过程如下a.将随机数表示为二进制数,删除出现在最高位的1,对二进制数形式的所述随机数从高位到低位逐位检查,凡遇0,则对当前结果执行翻倍计算,凡遇1,则对当前结果翻倍并与第一数值相加;b.当计算至二进制数末位时输出的计算结果即为计算得到的第二数值;所述当前结果是指二进制数当前位的前一位的计算结果,当前结果的初始值为第一数值。
4.根据权利要求3所述的一种计算机对数据流进行处理的方法,其特征是所述对当前结果执行翻倍计算和所述对当前结果翻倍并与第一数值相加是采用预设加法器模块实现的。
5.根据权利要求4所述的一种计算机对数据流进行处理的方法,其特征是步骤104 中所述将随机数、第二参数和第一关键数按照第二运算计算得到第三数值具体过程为先计算随机数与第二参数的乘积,然后将这个乘积结果与第一关键数按照所述第一运算进行计算。
6.根据权利要求4或5所述的一种对数据流进行处理的方法,其特征是所述预设加法器模块执行加法运算的过程具体包括,(1)接收到第一输入数、第二输入数、第三输入数、第四输入数,获取一个预设值; 所述第一输入数和第二输入数分别为第一个二维数值的横坐标值和纵坐标值,第三输入数和第四输入数分别为第二个二维数值的横坐标值和纵坐标值,所述预设数的取值为 1 ;(2)对所述预设数执行预设模数的平方运算并将运算结果赋值给预设的第一临时数;(3)对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给预设的第二临时数;(4)对当前第一临时数和第三输入数执行预设模数的乘法运算并将运算结果赋值给第一临时数;(5)对第二临时数和第四输入数执行预设模数的乘法运算并将运算结果赋值给第二临时数;(6)对当前第一临时数和第一输入数执行预设模数的减法运算并将运算结果赋值给第一临时数;(7)对当前第二临时数和第二输入数执行预设模数的减法运算并将运算结果赋值给第二临时数;(8)判断当前第一临时数和第二临时数是否同时都为零,若是则执行步骤(9),否则判断第一临时数和第二临时数其中之一是否为零,若是则返回错误,否则执行步骤(9');(9)对所述预设数执行预设模数的平方运算并将运算结果赋值给第一临时数;(10)对第一输入数和第一临时数执行预设模数的减法运算并将运算结果赋值给第二临时数;(11)对第一输入数和第一临时数执行预设模数的加法运算并将运算结果赋值给第一临时数;(12)对当前第一临时数和第二临时数执行预设模数的乘法运算并将运算结果赋值给第二临时数;(13)计算当前第二临时数与数3的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二临时数;(14)计算第二输入数与数2的乘积并将相乘结果按预设模数取模,将取模结果赋值给第二输出数;(15)对当前第二输出数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;(16)对当前第二输出数执行预设模数的平方运算并将运算结果赋值给第二输出数;(17)计算当前第二输出数与第一输入数的乘积,并将相乘结果按预设模数取模,将取模结果赋值给第三临时数;(18)对当前第二输出数执行预设模数的平方运算并将运算结果赋值给第二输出数;(19)计算当前第二输出数除以数2并将相除结果按预设模数取模,将取模结果赋值给第二输出数;(20)对当前第二临时数执行预设模数的平方运算并将运算结果赋值给第一输出数;(21)计算第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;(22)对第一输出数和当前第一临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(23)对第三临时数和当前第一输出数执行预设模数的减法运算并将运算结果赋值给第一临时数;(24)对当前第一临时数和第二临时数执行预设模数的乘法运算并将运算结果赋值给第一临时数;(25)对当前第一临时数和当前第二输出数执行预设模数的减法运算并将运算结果赋值给第二输出数;(26)记录当前的第一输出数、第二输出数、第三输出数;(27)对第三输出数执行预设模数的平方运算并将运算结果赋值给预设的第一转换数;(28)对第三输出数执行预设模数的三次方运算并将运算结果赋值给预设的第二转换数;(29)计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;(30)计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;(31)输出当前的第一输出数和第二输出数。(9')对当前第一临时数和所述预设数执行预设模数的乘法运算并将运算结果赋值给第三输出数;(10')对当前第一临时数执行预设模数的平方运算并将运算结果赋值给第三临时数;(11')对当前第三临时数和第一临时数执行预设模数的乘法运算并将运算结果赋值给第四临时数;(12')对当前第三临时数和第一输入数执行预设模数的乘法运算并将运算结果赋值给第三临时数;(13')计算当前第三临时数与数2的乘积并对相乘结果按预设模数取模,将取模结果赋值给第一临时数;(14')对当前第二临时数执行预设模数的平方运算并将运算结果赋值给第一输出数;(15')对当前第一输出数和第一临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(16')对当前第一输出数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第一输出数;(17')对当前第三临时数和第一输出数执行预设模数的减法运算,并将运算结果赋值给第三临时数;(18')对当前第三临时数和第二临时数执行预设模数的乘法运算,并将运算结果赋值给第三临时数;(19')对当前第四临时数和第二输入数执行预设模数的乘法运算,并将运算结果赋值给第四临时数;(20')对当前第三临时数和第四临时数执行预设模数的减法运算,并将运算结果赋值给第二输出数;(21')对第三输出数执行预设模数的平方运算并将运算结果赋值给第一转换数; (22')对第三输出数执行预设模数的三次方运算并将运算结果赋值给第二转换数; (23')计算当前第一输出数除以第一转换数并对相除结果按预设模数取模,将取模结果赋值给第一输出数;(24')计算当前第二输出数除以第二转换数并对相除结果按预设模数取模,将取模结果赋值给第二输出数;(25')输出当前的第一输出数和第二输出数。
7.根据权利要求1所述的一种对数据流进行处理的方法,其特征是从步骤108中所述最终处理结果中还原出原始数据流的过程具体包括,步骤201 接收到所述最终处理结果,按照预设规则拆分所述最终处理结果得到第二数值、第四数值、第一认证码;步骤202 获取第二关键数、第二参数;步骤203 将所述第二参数、第二关键数和第二数值按照第二运算进行计算得到第五数值;步骤204 判断第五数值的纵坐标值的平方是否等于第五数值的横坐标值的三次方、 第一常数与所述第五数值横坐标值平方的乘积以及第二常数三者之和,是则执行下一步, 否则提示操作失败;步骤205 根据第一函数计算所述第五数值和所述第二数值得到第三密钥、第四密钥;步骤206 根据第一算法计算所述第四密钥和所述第四数值得到第二认证码;步骤207 比较所述第一认证码和所述第二认证码是否相等,是则执行下一步,否则提示操作失败;步骤208 根据第三函数计算所述第三密钥和所述第四数值得到原始数据流。
8.根据权利要求1或7所述的一种计算机对数据流进行处理的方法,其特征是所述第一常数和所述第二常数满足如下关系第一常数三次方的4倍与第二常数平方的27倍之和不等于零。
9.根据权利要求1或7所述的一种计算机对数据流进行处理的方法,其特征是所述第一参数满足如下条件将η个所述第一数值进行加法运算,将满足最终运算结果为零且取值最小的η作为第一参数;所述第二参数是预设模数除以所述第一参数计算得到的。
10.根据权利要求7所述的一种计算机对数据流进行处理的方法,其特征是所述第二关键数是随机生成的,所述第二关键数的取值大于等于1小于等于第一参数减1。
11.根据权利要求7所述的一种计算机对数据流进行处理的方法,其特征是所述第一关键数是所述第二关键数和所述第一数值经过所述第一运算计算得到的。
12.根据权利要求1所述的一种计算机对数据流进行处理的方法,其特征是步骤106 所述根据第一函数计算第三数值和第二数值得到第一密钥、第二密钥具体过程如下(1)将第三数值的横坐标值、第二数值的横坐标值、第二数值的纵坐标值拼接为一比特串;(2)将所述比特串输入到第一函数,第一函数调用密钥杂凑函数进行计算,生成个数为预设数值的杂凑值;所述预设数值等于预设密钥长度除以预设杂凑值长度并向上取整的结果,所述预设密钥长度为预先设定的第一函数生成的密钥的长度;(3)将生成的个数为预设数值的杂凑值级联形成长度为预设长度的密钥,将所述密钥平分为两部分,高位部分作为第一密钥输出,低位部分作为第二密钥输出。
13.根据权利要求12所述的一种计算机对数据流进行处理的方法,其特征是所述密钥杂凑函数是MD5、SHA-U SHA-256中的任意一种。
14.根据权利要求1所述的一种计算机对数据流进行处理的方法,其特征是所述第二函数是对称密钥加密方法的加密函数,具体为DES、3DES、AES中的任意一种。
15.根据权利要求1或7所述的一种计算机对数据流进行处理的方法,其特征是所述第一算法是指采用消息认证码函数进行的计算,计算过程中选取MD5、SHA-U SHA-256中的任意一种。
16.根据权利要求7所述的一种计算机对数据流进行处理的方法,其特征是所述第三函数是对称密钥解密方法中的解密函数。
全文摘要
本发明公开了一种计算机对数据流进行处理的方法,属于信息安全领域。该方法包括接收数据流,获取第一数值、第一参数、第二参数和第一关键数,根据生成的随机数和所述第一数值计算得到第二数值,根据所述随机数、所述第二参数和所述第一关键数计算得到第三数值;当所述第三数值的纵坐标值的平方等于横坐标值的三次方、第一常数与所述第三数值横坐标值平方的乘积以及第二常数三者之和时,计算所述第三数值和所述第二数值得到第一密钥、第二密钥,计算所述第一密钥和所述数据流得到第四数值,计算所述第二密钥和所述第四数值得到第一认证码,将所述第二数值、所述第四数值、所述第一认证码按预设规则组合作为数据流的最终处理结果输出。
文档编号H04L9/06GK102427444SQ201110247230
公开日2012年4月25日 申请日期2011年8月25日 优先权日2011年8月25日
发明者于华章, 陆舟 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1