【发明内容】
本发明的目的就是为了解决以上问题,提供一种更安全可靠的随机加密、解密方法。
为实现上述目的,本发明提出一种随机加密身份认证方法,包括如下步骤:
A)初始化:认证方与被认证方交换各自的特性码、内部码、算法列表、随机算法产生方法等信息,并形成相应的记录;
B)被认证方发出包括自身特性码的认证请求;
C)认证方核对记录中的特性码,确认该被认证方特性码符合记录后,认证方生成随机认证码,并将该码与认证方内部码或记录中的被认证方内部码,用约定算法进行加密;
D)向被认证方发出加密信息;
E)被认证方根据相应的记录信息,用参与加密的认证方内部码或被认证方内部码和约定算法对收到的上述信息进行解密后,用自身的内部码和算法对该解密结果进行加密后发出;
F)认证方判断接收到的数据是否正确,根据判断结果采取相应动作,本次认证完成。同时本发明提出了一种随机加密身份认证方法,包括如下步骤:
a)初始化:认证方与被认证方交换各自的特性码、内部码、算法列表、随机算法产生方法等信息,并形成相应的记录;
b)被认证方发出包括自身特性码的认证请求;
c)认证方核对记录中的特性码,确认该被认证方特性码符合记录后,认证方发出自己的特性码;
d)被认证方核对记录中认证方特性码正确后,产生随机被认证码,并用约定算法加密认证方内部码或被认证方内部码和该随机被认证码,将结果发出;
e)认证方根据相应的记录信息,用参与加密的认证方内部码或被认证方内部码和约定算法对收到的上述信息进行解密后,产生随机认证码,并用约定算法加密认证方内部码或被认证方内部码和该随机认证码,将结果发出;
f)被认证方收到上述数据后,用去除参与加密的上述认证方内部码或被认证方内部码后,与上述随机被认证码用算法加密后发出;
g)认证方判断接收到的数据是否正确,根据判断结果采取相应动作,本次认证完成。
同时本发明提出了一种随机加密身份认证方法,包括如下步骤:
1)被认证方发出认证请求,
2)认证方产生随机认证码,并用双方预约的算法加密后发出,或直接发出该随机认证码,
3)被认证方将接收到的数据进行处理后,将处理结果发回认证方,
4)认证方判断发回的数据是否正确,并根据结果采取相应的措施,结束本次认证。
上述的方法,被认证方将接收到的数据进行处理的方法包括:将该数据用预约算法还原直接发回认证方;或将收到的数据还原后用约定的另一算法加密后发回认证方;或将该数据直接用约定的另一算法加密或用预约算法再一次加密后发回认证方。
上述的认证方法,认证方对收到的数据的判断方法包括:直接将收到的数据与上述产生的随机认证码对比;或用逆运算法将数据还原后与自身发出去的数据比对;或将数据用约定的另一算法运算后的结果与收到的被认证方数据进行比对。
上述的认证方法,还包括初始化步骤:认证方与被认证方交换各自的内部码和约定加密算法、和/或特性码,并形成相应的记录;在认证过程中,被认证方发出请求时,认证方首先核对其特性码,如果特性码不符,则终止认证;如果特性码相符,才进入下一步骤。所述被认证方特性码或/和认证方特性码为随机码;当次认证完成后,其中一方产生新的随机特性码,并通知对方记录下来;或双方同时产生新的随机特性码,并通知对方记录下来;在认证过程中,双方首先核对记录中的对方特性码,当特性码不符时,终止认证;或同时由认证方发出伪码,以干扰可能存在的非法解密。
上述的认证方法,本次认证通过后,双方协商并记录下次认证采用的加密算法。
上述的方法,当被认证方内部码与认证方记录数据不符合时,被认证方身份被确认为非法时,认证方发出伪码,用于干扰该非法被认证方的非法解密。所述被认证方内部码或/和认证方内部码为随机码;当次认证完成后,其中一方产生新的随机内部码,并通知对方记录下来;或双方同时产生新的随机内部码,并通知对方记录下来。
由于采用了以上的方案,在身份认证或数据加密传输过程中,认证方与被认证方之间互相验证对方的身份,认证方并非对收到的信号进行简单的对比确认,而是用加密算法进行验证,再发送至被认证方进行解密、再加密,再发送回认证方进行解密、核对,这一过程大大提高了数据传输的安全性和可靠性。而该加密算法又是经过认证方与被认证方双方协商确定的,可以采用随机加密算法或伪随机加密算法,被加密运算数据又为随机码,使非法破解应用本发明的身份认证***或数据传输***的难度进一步提高。进一步地,在加密或身份认证过程中,加入各自的特性码、固定码参与加密或认证,该特性码、固定码也可以是随机产生的,使身份认证或数据加密的安全性更进一步得到提高。在数据传输过程中,当认证方或被认证方接收到非法信息时,可以主动发送伪码,干扰非法行为,提高应用本发明的***的安全性、可靠性。
本发明的方法,应用范围广泛,可以应用于任何与数字技术标记的身份认证中,如可以应用于遥控防盗***中锁对钥匙的认证中;还可以用于文件传输中作为文件的加密方法;可用于各种服务器对客户终端的认证中。
【具体实施方式】
认证方、被认证方各自分别带有:表示各自身份的特性码、一个固定内部码或与相应的工作对象初始化时产生的一个随机内部码。
初始化过程如下:
拥有固定内部码的初始化流程如图3、图4所示:
a)双方交换各自的ID码和内部码,被认证方的内部码为Kkey01,认证方的内部码为Klock01,并形成相应的记录。
b)交换算法X:采用固定算法,以随机方式或伪随机方式提取算法的约定提取方式,
也可以采用位运算方式作为算法。
c)结束。
拥有随机内部码的初始化流程如图1、图2所示:
a)认证方、匙各产生自己的随机码或伪随机码作为自己的内部码Klock01、Kkey01。
b)双方交换各自的ID码和内部码,并形成相应的记录。
c)交换算法X:采用固定算法,以随机方式或伪随机方式提取算法的约定提取方式,也可以采用位运算方式作为算法。
d)结束。
实施例一:直接随机密码加密、解密***。
认证方产生的随机码用算法直接运算进行身份认证的工作方式,此方式可以采用特性码也可以不采用特性码,特性码可以用如滚动码等双方很容易识别对方身份的方式产生的数据作为特性码以加强安全性。这种方式采用大量的双方共识算法将产生的随机码本身用预约的算法换算后发出或直接发出,对方将接收到的数据还原或将收到的数据还原后用另一算法加密或者直接用另一算法加密或用相同的算法再一次加密数据或发回,认证方判断发回的数据是否正确:直接将收到的数据与上述产生的随机码对比,或用逆运算法将数据还原后与发出去的数据比对,或将数据如钥匙那样运算后的数据与收到的数据进行比对,两者是否相等,是则认证通过,并根据结果采取相应的措施。
算法可以采用固定的和非固定的,非固定的采用双方协商的方式处理每次使用的算法,比如采用大量的算法形成算法列表,采用一定的方式每次提取不同的算法来处理随机码问题:比如采用指针定距离向前或向后位移的方式、指针位移量每次按预定的数值作加减后向前或向后位移的方式、采用滚动码原理实现指针的位移量等等。也可以采用一定的规律性算法形成算法系列后在协商提取算法的方式后来处理随机码问题:如双方首次使用的算法是:将数据第十位到第十七位进行非运算,下次采用第十一位到第十八位进行非运算。
实施例二:单随机加密、解密***
被认证方发出自己的特性码后,认证方接收到被认证方所发出的特性码,查找相应的记录并确认、提取相应的信息,同时产生随机码或伪随机码,用初始化或上次协商的固定或非固定算法X加密随机码或伪随机码和自己的内部码,或加密相应记录中相对应的自己的随机内部码,并将运算值和自己的特性码一同发出,被认证方接到认证方发出的信息后根据记录解密信息,得到去除认证方的内部码或相应记录中相对应的认证方的随机内部码、随机码或伪随机码后的数据;用初始化或上次协商的固定或非固定算法,加密上述数据和自己的内部码或相应记录中对应的自己的随机内部码,并将运算值和自己的特性码一同发出。认证方接收到被认证方发出的信息后根据记录去掉信息中的被认证方的内部码或相应记录中相对应的对方的随机内部码,得到数据与自己前述产生的随机码或伪随机码对比是否相同,是,则验证通过并采用相应的进一步动作。
上述方法中,也可采用将产生的随机码与对方的固定内部码、或随机内部码、或伪随机内部码加密。
拥有随机内部码的工作流程:
被认证方的工作流程如图5所示:
1、发出自己的特性码ID。
2、接收反馈信息。
3、根据反馈信息中特性码找到相对应的记录。
4、根据认证方的特性码判断有没有相应的记录,有则执行下一步,没有则返回第二步或第一步。
5、从反馈信息中,用预定的算法X解密出随机码S2和认证方内部码Klock01,或解密出随机码S2和被认证方内部码Kkey01,或解密出随机码S2和Sk,获得随机码S2。
6、用预定算法X加密S2和Kkey01(或S2和Klock01)并发出。
7、当采用固定算法时,启动结束程序;如采用非固定加密算法,协商下次加密算法。
认证方的工作流程如图6所示:
1、接收信息状态。
2、收到被认证方的特性码ID。
3、检查有没有相关记录,有则执行下一步,没有执行第一步或发出伪码。
4、产生随机码S1,用预定的算法X加密S1和被认证方的内部码Klock01并发出。
5、接收信息状态。
6、据反馈信息中特性码寻找对应的记录,有则执行下一步,没有执行第一步或发出伪码。
7、判断是否合法登记的被认证方发过来的反馈信息,是,则执行下一步;否,则执行错误处理程序或启动其他被认证方认证进程或发出伪码。
8、解密用预定算法加密的被认证方发来的信息,得出S3和Kkey01,判断S1是否等于S3,是,则执行预定的开认证方程序,或发出伪码并执行预定的开认证方程序;否,则执行第一步,或发出伪码后执行第一步。
实施例三:多随机加密、解密***
被认证方发出自己的特性码后,认证方接收到被认证方所发出的特性码后发出自己的特性码,被认证方接收到认证方发出的特性码后查找记录并核对,产生随机码或伪随机码,用初始化或上次协商的固定或非固定算法加密:随机码或伪随机码、和自身内部码或相应记录中相对应的自身随机内部码,并将运算值和自己的特性码一同发出;认证方接收到被认证方发出的信息后,根据特性码查找相应的记录并提取信息,解密被认证方发过来的加密信息,得到包含被认证方内部码或相应记录中相对应的被认证方随机内部码的数据后,产生自己的随机码或伪随机码,用初始化或上次协商的固定或非固定算法加密随机码或伪随机码和自己的内部码或相应记录中自己的随机内部码,并将运算值和自己的特性码一同发出,被认证方接收到认证方发过来的信息后,根据记录解密信息,得到去除认证方的内部码或相应记录中认证方的随机内部码后的数据后,将上述数据同前述自己产生的随机码或伪随机码用初始化或上次协商的固定或非固定算法加密,并将运算值和自己的特性码一同发出,认证方接收到被认证方发出的信息后,根据记录和上次被认证方所发信息的解密结果中分解出来的数据,与自己前述产生的随机码或伪随机码对比是否相同,是,则验证通过并采用相应的进一步动作。
上述方法也可采用将产生的随机码与对方的固定内部码或随机内部码或伪随机内部码加密。
工作流程
拥有随机内部码的工作流程:
被认证方的工作流程如图7所示:
1、发出自己的特性码ID。
2、接收反馈信息。
3、判断收到的反馈回来的信息中的认证方的特性码是否在记录内,否,则执行第一步(或执行第二步),是,则执行下一步。
4、产生随机码Sk。用预定的算法加密Sk和被认证方内部码Kkey01(或用预定的算法加密Sk和被认证方内部码Klock01)并发出。
5、接收反馈信息。
6、收到认证方反馈回来包含认证方产生的随机码S1和认证方内部码Klock01的用预定算法加密的信息(或包含认证方产生的随机码S1和被认证方内部码Kkey01,或包含认证方产生的随机码S1和SL)。
7、用预定算法解密得到随机码S2和认证方内部码Klock01(或随机码S2和被认证方内部码Kkey01,或随机码S2和SM),获得随机码S2。
8、用预定算法加密S2和Sk(或S2和Kkey01)并发出。
9、启动结束程序或协商下次通信过程(如采用的加密算法等)程序。
认证方的工作流程如图8所示:
1、接收信息状态。
2、收到被认证方的特性码ID。
3、检查有没有相关记录,有则执行下一步,没有执行第一步或发出伪码。
4、用预定的算法解密包含被认证方产生的随机码Sk和被认证方内部码Kkey01,得到并存储SL。
5、产生随机码S1。用预定的算法加密S1和认证方内部码Klock01并发出。
6、接收信息码状态。
7、根据反馈信息中特性码找相对应的记录,有则执行下一步,没有执行第一步或发出伪码。
8、判断是否上述被认证方发过来的反馈信息,是,则执行下一步,否,则执行错误处理程序或启动其他被认证方认证进程或发出伪码。
9、用预定算法解密包含S2和SL信息,得到S3,判断S3与S1相等否,或SM和SK相等否;是,则执行预定的开认证方程序(或发出伪码并执行预定的开认证方程序),则执行第一步(或发出伪码后执行第一步)。
本发明中,可以用如滚动码等双方很容易识别对方身份的方式产生的数据,作为特性码,以加强安全性。这种方式解决采用大量的双方共识算法将产生的随机码本身用预约的算法换算后发出或直接发出,对方将换算后的码还原或用预约的算法换算后发回,认证方判断发回的还原后的数据或换算后的数据是否正确,并根据结果采取相应的措施。
本发明中也可以不采用特性码,用双方的内部码作为初步认证的标记。
随机内部码可以采用每次成功认证后,认证方具单方改变随机内部码后通知被认证方以使被认证方相应的改变纪录,或双方同时改变内部码的方式,或采用滚动码方式处理内部码之间的关系的方式,来加强***的安全性。
算法协商方法:本***采用固定算法或非固定算法,在非固定算法中,可以采用每次协商算法和预订双方每次所采取的算法的方法:可以在每次成功认证后协商下次的算法,协商算法以加密方式进行通信。可以采用双方初始化时所协定的方式进行下一次算法的处理,比如采用在算法记录表中将指针移动一定位移指向下一次采用的算法。还可以将采用的所有的算法逐一形成记录从而形成列表,采用随机方法或伪随机方法产生列表的序号,根据序号决定采用那种算法。也可以单纯的采用位运算法,比如此次采用第n位或第n到n+x位与对方的相对应的位进行与、非、或等运算,下次算法采用第n位或第n到n+x位与对方第y位起相对应的位进行与、非、或等运算;类似方法很多。算法协商通信过程中,采用加密技术进行双方之间的信息交换。
关于伪随机数的产生,有很多方式解决,在此举几个例子,可以采用大量数值列表方式,每次采用算法获得列表中的数值,如采用加、减法将指针上移或下移一定位数得到数值,或由上述方法得到的数值在用规定的位运算法变换后的数值,或每次提取数据采用不同的指针移动量方式提取数据,或提取多个数据后在用预定的算法运算后得到的数据,总之,目的是完成不可预测性质的数据,此类方法很多,此处不一一列举。
伪码,在上述过程中,为了防止被非法扫描,认证方或被认证方在判断信息为假的情况下发出伪码用以干扰非法行为。