多元字母加密
㈠ 中国五大银行的加密方式主要用的什么方式
由于银行系统较为复杂,每个系统根据安全级别的不同,采用的加密机制可能都不同。
加密机制并非越安全越好,需要依赖于具体的业务场景,离开业务场景谈论加密算法都是耍流氓。另外更重要的是:金融行业的全并不是只是依靠某种算法来保证的,而是依托对应的体系。
例如,我们平常密码学说的加密算法主要是:对称算法(SM1/SM4/DES/3DES/AES)、非对称算法(SM2、RSA)、摘要算法(SM3、MD5、SHA-1)。这是算法只是基础算法,但在具体应用场景下会涉及一系列问题:密钥的保存、管理等。因此基于具体的业务场景,还衍生出了各种扩展算法及管理体系。
例如针对银行卡收单,算法层面主要是DES/3DES,但针对银行卡收单的业务场景,衍生出了PINBLOCK算法、MAC(Message Authentication Code)等算法以及所谓的三级密钥体系。
由于是学生,建议从如下几个方面入手:
1、先整体了解相关组织的规范体系,例如国家标准的《银行业标准体系》http://www.beijing.gov.cn/pbcyyglb/jrzs/jrbzhzs/bztx/W020140704566240904524.pdf
或者PCI SSC的PCI DSS认证规范、第三方支付的认证规范
这些规范体系对安全性阐释得比较完整。
2、结合某个具体业务深入研究其信息安全要求,例如银行卡收单。同时可以参考一些相关产品,例如江南科友、江南天安等加密机厂商的产品
㈡ 信息加密技术的优劣比较
以上综述了两种加密方法的各自的特点,并对他们优劣处作了一个简要的比较,总体来说主要有下面几个方面: 数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。
看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。
软件验证序列号的合法性过程,其实就是验证用户名和序列号之间的换算关系是否正确的过程。其验证最基本的有两种,一种是按用户输入的姓名来生成注册码,再同用户输入的注册码比较,公式表示如下:
序列号 = F(用户名)
但这种方法等于在用户软件中再现了软件公司生成注册码的过程,实际上是非常不安全的,不论其换算过程多么复杂,解密者只需把你的换算过程从程序中提取出来就可以编制一个通用的注册程序。
另外一种是通过注册码来验证用户名的正确性,公式表示如下:
用户名称 = F逆(序列号) (如ACDSEE)
这其实是软件公司注册码计算过程的反算法,如果正向算法与反向算法不是对称算法的话,对于解密者来说,的确有些困难,但这种算法相当不好设计。
于是有人考虑到以下的算法:
F1(用户名称) = F2(序列号)
F1、F2是两种完全不同的的算法,但用户名通过F1算法计算出的特征字等于序列号通过F2算法计算出的特征字,这种算法在设计上比较简单,保密性相对以上两种算法也要好的多。如果能够把F1、F2算法设计成不可逆算法的话,保密性相当的好;可一旦解密者找到其中之一的反算法的话,这种算法就不安全了。一元算法的设计看来再如何努力也很难有太大的突破,那么二元呢?
特定值 = F(用户名,序列号)
这个算法看上去相当不错,用户名称与序列号之间的关系不再那么清晰了,但同时也失去了用户名于序列号的一一对应关系,软件开发者必须自己维护用户名称与序列号之间的唯一性,但这似乎不是难以办到的事,建个数据库就可以了。当然也可以把用户名称和序列号分为几个部分来构造多元的算法。
特定值 = F(用户名1,用户名2,...序列号1,序列号2...)
现有的序列号加密算法大多是软件开发者自行设计的,大部分相当简单。而且有些算法作者虽然下了很大的功夫,效果却往往得不到它所希望的结果。 软件狗是一种智能型加密工具。它是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出查询命令,软件狗迅速计算查询并给出响应,正确的响应保证软件继续运行。如果没有软件狗,程序将不能运行,复杂的软硬件技术结合在一起防止软件盗版。真正有商业价值得软件一般都用软件狗来保护。
平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里“洋狗”主要指美国的彩虹和以色列的HASP,“土狗”主要有金天地(现在与美国彩虹合资,叫“彩虹天地”)、深思、尖石。总的说来,“洋狗”在软件接口、加壳、反跟踪等“软”方面没有“土狗”好,但在硬件上破解难度非常大;而“土狗”在软的方面做的很好,但在硬件上不如“洋狗”,稍有单片机功力的人,都可以复制。 通过在软盘上格式化一些非标准磁道,在这些磁道上写入一些数据,如软件的解密密钥等等。这种软盘成为“钥匙盘”。软件运行时用户将软盘插入,软件读取这些磁道中的数据,判断是否合法的“钥匙盘”。
软盘加密还有其它一些技术,如弱位加密等等。随着近年来软盘的没落,这种方法基本上退出了历史舞台。 用户得到(买到或从网上下载)软件后,安装时软件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等等),然后把这些信息和用户的序列号、用户名等进行计算,从而在一定程度上将软件和硬件部分绑定。用户需要把这一序列号用Email、电话或邮寄等方法寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。软件加密虽然加密强度比硬件方法较弱,但它具有非常廉价的成本、方便的使用方法等优点。非常适合做为采用光盘(CDROM)等方式发授软件的加密方案。
此种加密算法的优点:
· 不同机器注册码不同。用户获得一个密码只能在一台机器上注册使用软件。不同于目前大多软件采用的注册方法,即只要知道注册码,可在任何机器上安装注册。
· 不需要任何硬件或软盘
· 可以选择控制软件运行在什么机器、运行多长时间或次数等
· 可让软件在不注册前的功能为演示软件,只能运行一段时间或部分功能。注册后就立即变为正式软件· 采用特别技术,解密者很难找到产生注册号码的规律
· 在使用注册号产生软件(注册机)时可采用使用密码、密钥盘、总次数限制等方法
· 方便易用,价格低廉。
这种加密还有以下特点:
1、 注册加密的软件,只能在一台机器上安装使用。把软件拷贝到其它机器上不能运行。
2、 若用户想在另一机器上安装运行,必须把软件在这一机器上运行时的序列号,寄给软件出版商换取注册密码。当然应再交一份软件费用。
3、 此加密方法特别适应在因特网上发布的软件及用光盘发布的软件。