动态密码的基运算加密法
技术领域
基运算加密法是数学领域的发现和算法的发明以及在此基础上的加密领域内的运用的发明,属于单钥分组密码系统。同时可以与已知的一些流密码的加密方法一起混合使用加强安全性。
基运算加密法的作用主要是保护密码!能够用基运算加密法计算出来的动态密码加密人们习惯采用的容易记忆但易被破解的静态密码。创造性的把动态密码的安全性与静态密码的易用性结合起来。用户只需要记住原来的静态密码,不需要记住动态密码。高级版不但做到在网络上服务器一次开发,所有客户端永久、彻底防范“木马”软件盗密码,并且现实生活中也能起到防盗密码的作用。
技术背景
技术背景一、目前,互联网上“木马”横行,黑客猖獗。
黑客采用的三种技术性的破解方法是:一、最原始的是采用穷举法和字典法暴力破解。二、目前最常见的最广泛的是用键盘操作记录器软件记录客户输入的账号、密码等客户资料。三、最先进、复杂的是黑客在客户计算机留下后门。计算机被黑客完全控制,所有的计算机上的资料、收到的和发送的信息、客户的键盘操作都被黑客掌握。
现在常用的防范方法有两大类:
一、现在常用的较为先进的服务器客户端系统的加密方式是密码验证与附加码验证双重验证。由于附加码是由服务器随机产生的、每次不同,而且限定同一个客户端在一定时间内的登陆次数,从而保证服务器不受暴力破解式的攻击。一般能够防范黑客采用的第一种破解方法。
二、对于黑客采用的第二和第三种破解方法目前能够采用的只有用杀毒软件、防火墙、打安全补丁以及专门防杀“木马”工具等几种方法。缺点明显。这些方法的缺点是:1、被动防御,只能通过不断的升级来防范不断更新的“木马”、黑客程序,永远落在后面,头痛医头、脚痛医脚,无法根治;2、方法复杂,一般的客户不易掌握和使用;3、有负作用,有兼容性问题,往往要采取关闭一些计算机端口和服务等方法,会影响正常的计算机工作;4、防范的范围有限,不能全面防范,只能在单机以及局域网内。总有漏网之鱼,对客户造成危害!
采用基运算加密法能够有效的克服以上的缺点:
1、因为基运算加密法不杀“木马”,却能够从“木马”的作用原理来防范“木马”,使“木马”失效,所以不需要升级。
2、基运算加密法分初级版、高级版两种加密等级。考虑了不同层次对保护密码的低成本、易用性和高安全性不同侧重的要求,容易推广使用。
3、基运算加密法是一种算法,不破坏客户端原有的软件环境,不存在兼容性问题,不对计算机运行产生负面影响。
4、由于是在服务器端采取的强制加密手段,所以客户端无一例外的受到保护。
技术背景二、我发现任意两个位数相同的数(以下称同位多位数),与它们的和所包含的同位多位数,这三个同位多位数存在着二对一的对应关系,而它们的和或者说它们的和所包含的同位多位数是一个地位特殊的数。
以下是发现的内容:
一、说明一个简单的数学运算原理。这个原理不论在十进制、十六进制等任何进制、任何位数的数学运算中都是成立的:
加数+被加数=它们的和
这三个数存在着二对一的关系,即知道了任意两个数就必然知道有且只有唯一的第三个数与这两个数对应。表现在3个表达式。
加数+被加数=它们的和
它们的和-加数=被加数
它们的和-被加数=加数
可以发现加数和被加数是地位相同的两个数。而它们的和是一个地位特殊的数。
二、为了简便起见,看一下十进制的个位数,个位数:0、1、2、3、4、5、6、7、8、9
两个任意的个位数,它们的和是0到18之间的一个数。
把它们的和0到18之间的数分成两个部分:
1、当它们的和是0到9的个位数。可以说:当它们的和是个位数时,这三个个位数存在二对一的对应关系。
表达式是:
加数+被加数=(个位数)
(个位数)-加数=被加数
(个位数)-被加数=加数
2、当它们的和是10到18的十位数。这九个数又可以表示为,它们的和=10+个位数。这三个数存在二对一的对应关系。而10是一个常量,所以可以说:这三个个位数也存在二对一的对应关系。
表达式是:
加数+被加数=(10+个位数)
(10+个位数)-加数=被加数
(10+个位数)-被加数=加数
因此得到这样的结论:两个十进制个位数,与它们的和所包含的个位数,这三个个位数存在着二对一的对应关系,而它们的和或者说它们的和所包含的个位数是一个地位特殊的数。
三、了解了个位数,可以扩展思路考虑多位数的情况:
看一下十进制的多位数,设定为n位,范围是0到10n-1
两个任意的相同位数的同位多位数,它们的和范围是0到2×(10n-1)。假设是八位数,它们的和就是0到199999998间的一个数。
把它们的和0到199999998(2×10n-2)之间的数分成两个部分:
1、当它们的和是0到99999999(10n-1)之间的同位多位数(八位数)。可以说:当它们的和是同位多位数时,这三个同位多位数存在二对一的对应关系。
表达式是:
加数+被加数=(同位多位数)
(同位多位数)-加数=被加数
(同位多位数)-被加数=加数
2、当它们的和是100000000(10n)到199999998(2×10n-2)的九位数。这个九位数又可以表示为,它们的和=100000000(10n)+同位多位数(八位数)。知道这三个参与运算的数存在二对一的对应关系。因为100000000(10n)是一个常量,所以可以说:这三个同位多位数也存在二对一的对应关系。
表达式是:
加数+被加数=(10n+同位多位数)
(10n+同位多位数)-加数=被加数
(10n+同位多位数)-被加数=加数
因此得到这样的结论:两个十进制同位多位数,与它们的和所产生的同位多位数,这三个同位多位数存在着二对一的对应关系,而它们的和或者说它们的和所包含的同位多位数是一个地位特殊的数。
四、基于以上的结论再扩展思路可以分析出含有小数的数;二进制、十六进制等的多进制数都遵循这个规律。
通过以上的分析可以得到技术背景二的发现。即:任意两个同位多位数,与它们的和所包含的同位多位数,这三个同位多位数存在着二对一的对应关系,而它们的和或者说它们的和所包含的同位多位数是一个地位特殊的数。
发明内容
根据技术背景二的发现我发明了基运算方法和在此基础上发明了基运算加密法,用于解决技术背景一存在的问题。
一、基运算方法:
1、现在就研究它们的和所包含的同位多位数这个地位特殊的数。
引进一个新的概念:基数,发明一个新的运算符号:基(暂时用一个符号“⌒”代表它)和基运算方法。
基数是一个同位多位数。是加数和被加数这两个同位多位数相加,它们的和所包含的同位多位数。基数的特点是基数与产生基数的这两个同位多位数,这三个同位多位数存在着二对一的对应关系。
产生基数的这种加数和被加数这两个同位多位数相基加的运算方法叫基加运算;用基数基减去被加数得到加数的运算方法,以及基数基减去加数得到被加数的运算方法叫基减运算。
一套基运算由一种基加运算和两种基减运算组成。
知道其中的两个数就可以基算出第三个数。例如:这两个数中没有基数时就基加运算出第三个数基数;这两个数中有一个数是基数时就用基数作为被减数进行基减运算得出第三个数。
要说明的是必需知道三个同位多位数中哪一个数是基数。在基加运算中基数一定是基加的的结果!在基减运算中基数一定是被减数!这就是基数的特殊性。
n位的十进制运算中它们的和与基数的关系可以表示为:
它们的和=基数 (当它们的和是0到10n-1之间的数)
它们的和=10n+基数 (当它们的和是10n到2×10n-2之间的数)
2、如何运算?用十进制个位数做例子比较容易理解。如果参加运算的三个数都是个位数,方法是:两个个位数基加运算就是两个数相加的运算结果去掉十位上的数,只保留个位上的数,这个数就是基数;基减运算就是基数减去一个个位数,如果出现负数,则将此负数加10,产生的是另一个个位数。(基减运算也可以这样算,基数加10再减去一个个位数,运算结果去掉十位上的数,只保留个位上的数,产生的是另一个个位数)。
经过统计就可以知道十进制个位数基加运算的运算范围只有55个。完全可以把它们全部列出来,验证它的正确性。
举例说明就非常清楚了。这里是简单的两个例子:
代数运算 |
基运算 |
1+6=7 |
1+6=7⌒7 |
7-6=1 |
7-6=1⌒1或7+10-6=11⌒1 |
7-1=6 |
7-1=6⌒6或7+10-1=16⌒6 |
|
6+7=13 |
6+7=13⌒3去掉十位上的数 |
13-6=7 |
3-6=-3⌒7负数自动加10或3+10-6=7⌒7 |
13-7=6 |
3-7=-4⌒6负数自动加10或3+10-7=6⌒6 |
由于基加运算和基减运算存在对应关系,可以发现,基加运算中去掉的10,在基减运算中要自动加回来。
3、同理如果参加运算的三个数都是十进制n位的同位多位数。方法是:两个同位多位数基加运算就是运算结果去掉n+1位上的数,这个数就是基数;基减运算就是基数减去一个同位多位数,如果出现负数,则将此负数加10n,产生的是另一个同位多位数。(基减运算也可以这样算,基数加10n再减去一个同位多位数,运算结果去掉n+1位上的数,产生的是另一个同位多位数)。
4、同理可以分析出二进制、十进制、十六进制等任何进制、任何位数、包括含有小数的数,基运算规律都是成立的,基运算方法都是有效的。
二、基运算加密法:
可以将基数和基运算方法运用在加密领域。
基运算加密法:服务器采用多位数字密码验证,服务器发出同样多位的附加码给接收的客户端或另外一台服务器。接收的客户端或另外一台服务器让密码与附加码运行约定的基运算方法
约定的基运算规则进行加密,生成返回码(注:本文中的动态密码是返回码,静态密码就是一般意义上的密码)返回服务器。服务器按照约定的基运算方法
约定的基运算规则逆运算解密。
当基加运算用于加密运算则相对应的基减运算用于解密运算,反之,当基减运算用于加密运算则相对应的基加运算用于解密运算。
返回码、附加码、密码、
约定的基运算规则是基运算加密法的四个要素。必须知道其中的三个才能得出第四个要素。
返回码、附加码、密码任意一种都可以被指定为基数,可以分别生成基返(基数是返回码)、基附(基数是附加码)、基密(基数是密码)三套基运算法,每一套基运算法都有对应一种基加运算和两种基减运算三种基运算方法组成。在每一次基运算中可以随意约定其中的一套作为运算方法。
服务器采用基运算加密法进行密码验证时,由于服务器预留了密码以供验证,所以当返回码返回服务器后,返回码、附加码、密码都是已知的,只要用约定的那套基运算法中三种基运算方法任一种,用两个码运算得到的结果与第三个码比较是否相同,完成验证。因此可以服务器采用与加密运算相同的运算方法再运算一次来完成验证,以降低开发难度。
三、基运算加密法具体的加密方式有以下6类;
加密方式1:是以十进制个位数基返运算法作为加解密的方法。
根据基数和基运算方法的特点:两个同位多位数进行基加运算得到基数,基数与其中的一个同位多位数进行基减运算可以还原其中的另一个同位多位数。
基返运算法就是一个同位多位数作为密码,另外一个同位多位数作为附加码,在客户端做基加运算产生的基数就作为返回码。返回码返回服务器。服务器用返回码基减去附加码,就得到了密码可以与预设在服务器里的密码比较,相同就通过验证,不同则验证失败。完成一个完整的认证过程。
以下是运用在服务器一客户端模式的WEB服务器中作为加解密运算方法的简单实例:
假如8位数字验证的服务器约定的算法是采用最简单的个位数基返运算方式。
把8位数拆分为8个单独的个位数。这样,密码、服务器发出的附加码、客户端返回服务器的返回码就组成了8组互不相干的各自运行基运算的个位数组合。
因为服务器发出的附加码是个随机数每次不一样,那么用户在键盘上输入的返回码就是附加了密码信息的随机数,是动态的、每次都不一样。所以假如返回码被“木马”软件窃取,也就是用过后失效的了。这样就起到了加密作用。
例如:设定密码是84773320,服务器送来附加码是35267842,客户端可以用基加运算法运算出基数19930162作为返回码送回服务器。
密码: |
8 |
4 |
7 |
7 |
3 |
3 |
2 |
0 |
附加码: |
3 |
5 |
2 |
6 |
7 |
8 |
4 |
2 |
+ |
11 |
9 |
9 |
13 |
10 |
11 |
6 |
2 |
返回码:⌒ |
1 |
9 |
9 |
3 |
0 |
1 |
6 |
2 |
以上是约定采用基返运算法在客户端用的是密码基加附加码得到返回码的基加运算加密,服务器端则用对应的基减运算解密,用返回码基减附加码得到密码,进行验证。
返回码: |
1 |
9 |
9 |
3 |
0 |
1 |
6 |
2 |
返回码+10: |
11 |
19 |
19 |
13 |
10 |
11 |
16 |
12 |
附加码: |
3 |
5 |
2 |
6 |
7 |
8 |
4 |
2 |
返回码+10-附加码: |
8 |
14 |
17 |
7 |
3 |
3 |
12 |
10 |
去掉十位上的数得到密码: |
8 |
4 |
7 |
7 |
3 |
3 |
2 |
0 |
当采用基返运算方式的个位数基加运算加密,附加码尽量避免出现每一位都是零的数。例如用的是8位数加密,附加码是00000000的情况不能出现。否则密码与返回码相同,密码就变成明码了。
加密方式2:约定采用基密、基附运算法加解密,则客户端采用了基减运算。
加密方式3:约定对多位数进行不同的处理:这一位用基返运算法、另一位用基附运算法、下一位又用基密运算法。三种运算法混合使用加强安全。
加密方式4:在附加码、密码、返回码中随机抽取一个或多个个位数,用9作为被减数减去抽取的个位数然后放回原位。
加密方式5:在一个多位数的密码系统里,可以约定把这个多位数拆分成任意位数的多个多位数进行多位数基运算加解密。
1、顺序拆分:例如一个八位数密码系统可拆成第(1、2、3)位,第4位,第5位,第(6、7)位,第8位共五次运算,也可拆成第1位,第2位,第(3、4、5、6)位,第(7、8)位四次运算等等[提醒一下每次运算都可以约定基返、基附、基密这三这套运算方法的任一种运算方法,第一种拆分可以约定为“(1、2、3)返4返5密(6、7)附8密”,或着约定为“(1、2、3)密4附5返(6、7)密8密”等等。
2、跳位拆分:例如可拆成第(1、3、4)位组成3位运算,第(2、8)位组成2位运算等。
3、倒位拆分:例如可拆成第(3、1、4)位组成3位运算,第(8、2)位组成2位运算等。
4、乱序拆分:改变附加码的前后顺序参与基运算。例如改成6、2、4、3、5、8、1、7顺序等。同样可以改变密码、返回码的顺序参与运算。
在实践中将以上的实施方式综合利用在一起组成的
约定的基运算规则,是基运算加密法最为安全的算法加密方式。
这些加密方式的基运算规则可以通过约定编译成一串数字。不同的约定编译方法就形成了不同的数字串,自然也形成了不同的基运算编译规则。不同的基运算编译规则也起到了一种加密的作用。但是统一、形成标准的基运算编译规则能在高安全性的基础上产生基运算加密法的通用性,十分有利于基运算加密法的推广使用。
加密方式6:多次基运算加密法是最终的加密方式。采用二次或多次相同或不同约定的基运算规则的基运算加密法顺序进行基运算加密,即前一次基运算加密产生的返回码作为后一次基运算加密的附加码进行多次加密,最后一次加密得到的最终返回码是真正返回服务器的动态密码。
具体实施方式
根据加密方式的繁简不同,基运算加密法可以分成初级版、高级版两种加密等级,也就有了两种实施方式。同时考虑了低成本、易用性和高安全性,容易推广使用。在通讯方面可以采用另外一种实施方式。
实施方式1:基运算加密法初级版。
简单的采用以上
加密方式1作为实施方式,十进制个位数基返运算法作为加解密的方法,个位数基返运算法其中的个位数基加运算被用在客户端进行加密运算,是10以内的加法运算稍加变化而得来的,采用最简单的运算方式,不需要记忆复杂的运算公式,运算速度快,笔算、心算就可以得出答案,非常容易使用,容易被客户理解和接受,适合用于各个文化层次的客户、最广大的客户群。没上过学的人都会用。
完全可以防止黑客采用的前两种破解方法,当附加码不被截获时有足够的安全性。可以用其它加密方法和措施保护附加码,就能够有效的阻止黑客采用的第三种破解方法。
初级版最大的特点是简单方便,纯软件综合成本低,也有较强的加密功能,可以用在邮箱、BBS、即时通讯、小额电子商务等需要会员登陆的系统中。
实施方式2:基运算加密法高级版。采用
加密方式6二次或多次相同或不同的
约定的基运算规则的基运算加密法进行复合加密。
在实际运作中返回码、附加码在媒体里传输,存在被截获的可能,而
约定的基运算规则可以是事先约定的,不在媒体里传输,不存在被黑客截获的可能。所以即使黑客采用最先进的第三种的破解方法,能够截获返回码、附加码,也知道是采用基运算加密法加密,不知道具体的
约定的基运算规则也无法破解密码。所以基运算加密法高级版能够从理论上完全防范盗密码。
基运算加密法高级版的缺点是根据
约定的基运算规则虽然能够手工加密运算,但是效率低,不利于推广。解决方法是采用客户端加密设备进行硬件加密方法。
可以根据基运算编译规则制造出
基运算加密法计算器。只要输入
约定的基运算规则、密码、附加码,这种计算器能够自动运算出返回码。一台
基运算加密法计算器能够用在所有执行同一标准基运算编译规则基运算加密法加密的地方。
如果采用统一的形成行业标准的基运算编译规则,并且基运算加密法能够得到广泛应用,那么一台
基 运算加密法计算器就可以完成多个加密任务,既能方便用户使用又能够有效降低用户成本。
也可以用有计算能力的PDA设备完成的
基运算加密法计算器功能。如用J2ME编写加密程序,利用有JAVA应用功能的手机或PDA设备作为加密计算器进行客户端加密运算。
从基运算加密法高级版硬件加密方法可以看出基运算加密法加密运算的过程离开了开放的客户端和网络环境,静态密码与账号是分离的,更加保证了账号的安全。
基运算加密法高级版适用于要求高保密层次的用户如网上银行,ATM柜员机,POS刷卡机,证券,电子商务,电子政务,网络游戏等各种收费的网上业务,通迅领域,军事、国防领域等。
实施方式3:基运算加密法通讯版。
十六进制基运算加密法可以用在通讯领域和要求加密传输的数据(如IP包)。因为十六进制数可以通过Unicode(统一码)等各种编码页翻译成ASCII字符、各种符号、字母、语言文字等,所以基运算加密法还可以加密各种符号,英文字母、汉字、日语、韩语等各种语言文字。
通迅和数据的内容需要加密,可以约定为静态密码。在通迅加密方面采用基运算加密法的重要的特点是:
1、基运算加密法可以通过Unicode(统一码)等各种编码直接加密各种符号,英文字母、汉字、日语、韩语等各种语言文字,即所有计算机能表达的信息都能加密。
2、密码中重复出现的内容,加密后不相同,而且没有规律。
3、由于通迅的内容是非常长的,所以可以认为
约定的基运算规则是也是很长的,无法被猜测的,通迅的内容也就无法被破解。
4、可以每次通讯中发送新的
约定的基运算规则,供下次通讯更换使用,以满足高的安全性能要求。基运算加密法通讯版可以用在网上信息的加密传输,包括有线通讯、无线通讯。能够在正在兴起的无线网络中起到很好数据加密的作用。
基运算加密法是一种加密的算法,完全可以与其它加密方法和措施结合在一起使用,形成多重保护:基运算加密法是刚刚发明的一种加密算法,有许多新的应用有待开发,在需要加密的各个方面有广泛的应用前景!