首页 / 加密传输系统及加密传输方法

加密传输系统及加密传输方法实质审查 发明

技术领域

[0001] 本发明是关于一种传输系统及传输方法,特别是关于一种加密传输系统及加密传输方法。

相关背景技术

[0002] 安全通信端层(Secure Sockets Layer,SSL)是一种标准的技术,用于保持网际网路连线安全以及防止在两个系统之间发送的所有敏感数据被罪犯读取及修改任何传输的信息,包括潜在的个人详细数据。两个系统可以是服务器与用户端(例如购物网站与浏览器),或者服务器至服务器(例如,含有个人身份信息或含有薪资信息的应用程式)。这样做是为了确保使用者与网站、或两个系统之间传输的任何数据保持无法被读取的状态。此技术可使用加密演算法以混淆输送中的数据,防止骇客在数据通过连线发送时读取数据。此信息可能是任何敏感或个人信息,包括信用卡号与其他财务信息、姓名与地址。
[0003] 另外,输层安全性(Transport Layer Security,TSL)是更新、更安全的SSL版本。超级文字传输协议安全HTTPS(Hyper Text Transfer Protocol Secure,HTTPS)会在网站受到SSL凭证保护时在网址中出现。此凭证的详细数据包括发行机构与网站拥有人的企业名称,可以通过按一下浏览器列上的锁定标记进行检视。
[0004] 通过SSL传输时会将数据内容先通过双方协议好的密钥进行加密,传输方加密后将数据传送给接收方,接收方再使用协议出来的密钥进行数据解密。完整的SSL传输包含了双方的身分认证,对话密钥的产生以及最后的数据传输。
[0005] 然而,这些步骤的传输,若使用非对称式加密,则需每个使用者都拥有一对金钥:公开金钥(Public key)及私密金钥(Private key),若使用对称式加密,则传送方与接收方的加解密皆使用同一把密钥;只要是金钥的产生,都需要乱数值,借由乱数产生金钥,因此,如何优化借由乱数产生金钥的方法,并兼顾传输效率,已成为本领域需解决的问题之一。

具体实施方式

[0022] 以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之前的权利要求范围。
[0023] 必须了解的是,使用于本说明书中的”包含”、”包括”等词,系用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
[0024] 于权利要求中使用如”第一”、"第二"、"第三"等词系用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
[0025] 请参照图1~图2,图1是依照本发明一实施例绘示一种加密传输系统100的方块图。图2是依照本发明一实施例绘示一种加密传输方法200的流程图。
[0026] 如图1所示,加密传输系统100包含一电子装置D1及一电子装置D2。于一实施例中,电子装置D1可以是客户端(client)装置,例如电脑、手机、服务器或其他电子装置。于一实施例中,电子装置D2可以是服务器端(server)装置,例如电脑、服务器或其他电子装置。
[0027] 于一实施例中,电子装置D1中包含一传输装置10、一储存装置12及一处理器14,电子装置D2中包含一传输装置20、一储存装置22及一处理器24。
[0028] 于一实施例中,传输装置10、20可以是WiFi装置、第四代行动通信技术、第五代行动通信技术装置或其他可以具有通信功能的装置。于一实施例中,传输装置10与传输装置20之间可以建立通信连结LK。
[0029] 于一实施例中,储存装置12、22可以是唯读存储器、快闪存储器、软盘、硬盘、光碟、随身碟、磁带、可由网路存取的数据库或本领域技术人员可轻易思及具有相同功能的储存媒体。
[0030] 于一实施例中,处理器14、24可以以由集成电路如微控制单元(micro controller)、微处理器(microprocessor)、数字信号处理器(digital signal processor)、特殊应用集成电路(application specific integrated circuit,ASIC)或一逻辑电路来实施。
[0031] 于一实施例中,加密传输方法200可以由加密传输系统100实现。
[0032] 于步骤210中,电子装置D1通过传输装置10以传送一第一数据,储存装置12储存一第一私钥与一第一公钥,处理器14产生一第一明码乱数值;其中第一数据包含第一明码乱数值。
[0033] 于步骤220中,电子装置D2通过传输装置20以接收第一数据,储存装置22储存一第二私钥与一第二公钥,处理器24产生一第二明码乱数值,并将第二明码乱数值通过传输装置20传送到电子装置D1。
[0034] 于步骤230中,处理器D1产生一金钥规则表,通过处理器14使用第二公钥将金钥规则表进行加密,并将加密后的金钥规则表通过传输装置10传到电子装置D2。
[0035] 于步骤240中,电子装置D2收到加密后的金钥规则表后,借由第二私钥解密加密后的金钥规则表,以得到金钥规则表,并依据金钥规则表、第一明码乱数值及第二明码乱数值产生一第一共同密钥。
[0036] 借此,后续电子装置D1、D2都可以依据金钥规则表产生新的共同密钥,不用再产生明码乱数值,也不需要传送明码乱数值,避免明码乱数值在传递时被第三方拦截,此外,通过共同密钥,可以在数据量较大时使用效率较佳的对称式加密,因此,加密传输方法200可以达到让客户端装置(如电子装置D1)与服务器端装置(如电子装置D2)更安全且更有效率的更新共同密钥,并在需要传递大量数据时,采用加密传输方法200可以提供有效率且安全的数据传输效果。
[0037] 于一实施例中,原先方式中,客户端装置(如电子装置D1)与服务器端装置(如电子装置D2)在互相的交握(handshake)阶段(又称hello阶段)会各传送使用乱数生成器(random number generator)产生的乱数(客户端装置(如电子装置D1)的乱数与服务器端装置(如电子装置D2)的乱数)给对方,这些乱数是以明文传送。客户端装置(如电子装置D1)验证验服务器端装置(如电子装置D2)凭证无误后会再产生一组乱数并使用服务器端装置(如电子装置D2)凭证内带有的公钥对此乱数加密后,传送给服务器端装置(如电子装置D2),而服务器端装置(如电子装置D2)是唯一持有该对应私钥的机构,因此可以还原此乱数,此乱数我们称做前置主密钥(Pre‑master secret)。最后用于数据加密的对称式金钥我们可以用以下方式表示:
[0038] KEY=客户端装置的乱数(明文)+服务器端装置(如电子装置D2)的乱数(明文)+前置主密钥(密文)
[0039] 到此步骤已完成金钥交换,接下来就是使用上述所产生的“KEY”进行数据传输的部分,此“KEY”又称作会话密钥(session key),即对称式加密金钥。
[0040] 一般在传输层安全性(Transport Layer Security,TLS)中,加密传输方法200可以搭配使用进阶加密标准(Advanced Encryption Standard,AES),即,对称式加密算法进行数据的加密。
[0041] 以下说明加密传输方法200的细部特征,请参阅图3,图3是依照本发明一实施例绘示一种加密传输方法的示意图。于一实施例中,电子装置D1中的处理器14事先产生第一私钥与第一公钥,并将第一私钥与第一公钥储存在储存装置12,电子装置D2中的处理器24事先产生第二私钥与第一公钥,并将第二私钥与第二公钥储存在储存装置22。
[0042] 于图3中,步骤S1~S2为交握(handshake)阶段。
[0043] 于步骤S1中,电子装置D1通过传输装置10传送一数据到电子装置D2,此数据中包含:安全通信端层(Secure Sockets Layer,SSL)版本(例如SSL 1.1)、加密方法(例如RSA加密演算法的数据格式)、第一明码乱数数据…等等。其中,第一明码乱数数据是由电子装置D1中的处理器14所产生,第一明码乱数数据(例如11110000)是用以产生加解密金钥的一参数。
[0044] 于步骤S2中,电子装置D2通过传输装置20接收到此数据并确认数据内容无误后,回传确认信息:安全通信端层版本(例如SSL 1.1)、加密方法(例如RSA加密演算法的数据格式)、第二明码乱数数据…等等。其中,第二明码乱数数据是由电子装置D2中的处理器24所产生,第二明码乱数数据(例如00001111)是用以产生加解密金钥的一参数。
[0045] 步骤S1~S2执行完后,代表电子装置D1与电子装置D2双方已确认好接下来的传输方式。于一些实施例中,步骤S1~S2会增加凭证的验证,例如电子装置D2验证数据是否具有电子装置D1的合法凭证、数据压缩方法、电子装置D2发送回传数据的凭证…等等。
[0046] 此时,电子装置D1中储存有自身的第一明码乱数数据(例如11110000)及来自电子装置D2的第二明码乱数数据(例如00001111)。
[0047] 于步骤S3中,电子装置D1中的处理器14产生一金钥规则表,通过处理器14使用第二公钥将金钥规则表进行加密,并将加密后的金钥规则表通过传输装置10传到电子装置D2。
[0048] 于一实施例中,电子装置D1依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生一明码乱数基础值(例如1111000000001111),将明码乱数基础值依据金钥规则表中的一第一规则,以重新排序出一第一规则码(例如1111000000001111),并将第一规则码传入(例如安全杂凑演算法(Secure Hash Algorithm,SHA),若输出是256比特,则称为SHA 256),SHA 256所输出的值为初始金钥,再将初始金钥输入一加密演算法(例如进阶加密标准(Advanced Encryption Standard,AES),若输出是256比特,则称为AES 256)之后,得到第一共同密钥。
[0049] 其中,第一规则例如是:将第一明码乱数数据(例如11110000)的后面串接第二明码乱数数据(例如00001111),以产生明码乱数基础值(例如1111000000001111),再将明码乱数基础值反向排序,以得到第一规则码(例如1111000000001111)。
[0050] 于一实施例中,杂凑函数亦可以是SHA 160,不足的部分可以补0,以配合输入AES 256的格式,杂凑函数与加密演算法的选用可以在步骤S1~S2时,双方事先协定好。此处的杂凑含数与加密演算法仅为举例,可以视情况使用不同的演算法,不限于此。
[0051] 另一方面,电子装置D2收到加密后的金钥规则表后,借由第二私钥解密加密后的金钥规则表,以得到金钥规则表,金钥规则表可以储存于储存装置22中,电子装置D2并依据金钥规则表、第一明码乱数值及二明码乱数值产生第一共同密钥。
[0052] 于一实施例中,电子装置D2依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生明码乱数基础值(例如1111000000001111),将明码乱数基础值依据金钥规则表中的第一规则,以重新排序出第一规则码(例如1111000000001111),并将第一规则码传入杂凑函数(例如SHA 256),以取得初始金钥,再将初始金钥输入加密演算法(例如AES 256)后,得到第一共同密钥。
[0053] 由于电子装置D2接收到的信息包含:第一明码乱数值、第二明码乱数值、第一规则、杂凑函数及加密演算法都与电子装置D1上的信息相同,因此使用相同的方式,可以得到相同的第一共同密钥。
[0054] 于一实施例中,电子装置D1于使用第一共同密钥进行数据加密的次数大于一次数门槛值(例如处理器14计算通过电子装置D1及电子装置D2使用第一共同密钥共进行了100次数据加密)时,处理器14依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生一明码乱数基础值,将明码乱数基础值依据金钥规则表中的一第二规则(例如1111000000001111),以重新排序出一第二规则码(例如0000111111110000),并将第二规则码传入杂凑函数(例如SHA 256),以取得一初始金钥,再将初始金钥输入一加密演算法(例如AES 256)后,得到一第二共同密钥。
[0055] 其中,第二规则例如是:将第一明码乱数数据(例如11110000)的后面串接第二明码乱数数据(例如00001111),以产生明码乱数基础值(例如1111000000001111),再将明码乱数基础值从中间切开(例如获得11110000及00001111两个明码乱数值),再各自反向排列(例如获得00001111及11110000两个明码乱数值)后合并,以得到第二规则码(例如0000111111110000)。
[0056] 于一实施例中,电子装置D2于使用第一共同密钥进行数据加密的次数大于一次数门槛值(例如处理器14计算通过电子装置D1及电子装置D2使用第一共同密钥共进行了100次数据加密)时,处理器24依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生明码乱数基础值(例如1111000000001111),将明码乱数基础值依据金钥规则表中的第二规则,以重新排序出一第二规则码(例如0000111111110000),并将第二规则码传入杂凑函数(例如SHA 256),以取得初始金钥,再将初始金钥输入加密演算法后,得到一第二共同密钥(例如0000111111110000)。
[0057] 于一实施例中,其中电子装置D1于使用该第一共同密钥进行数据加密的时间超过一对谈时间(session,例如1小时)时,处理器14依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生一明码乱数基础值,将明码乱数基础值依据金钥规则表中的一第二规则(例如1111000000001111),以重新排序出一第二规则码(例如0000111111110000),并将第二规则码传入杂凑函数(例如SHA 256),以取得一初始金钥,再将初始金钥输入一加密演算法(例如AES 256)后,得到一第二共同密钥。
[0058] 于一实施例中,电子装置D2于使用第一共同密钥进行数据加密的时间超过一对谈时间(例如1小时)时,处理器24依据第一明码乱数值(例如11110000)及第二明码乱数值(例如00001111)产生一明码乱数基础值,将明码乱数基础值依据金钥规则表中的一第二规则(例如1111000000001111),以重新排序出一第二规则码(例如0000111111110000),并将第二规则码传入杂凑函数(例如SHA 256),以取得一初始金钥,再将初始金钥输入一加密演算法(例如AES 256)后,得到一第二共同密钥。
[0059] 于一实施例中,电子装置D2的处理器24产生金钥规则表,通过处理器24使用第一公钥将金钥规则表进行加密,并将加密后的金钥规则表通过传输装置20传到电子装置D1。换言之,金钥规则表亦可以由电子装置D2的处理器24产生,并以上述相同方式将金钥规则表用第一密钥加密后传送到电子装置D1,电子装置D1再用第一私钥将金钥规则表解密出来,并以上述方式产生共同金钥。
[0060] 更具体而言,当触发条件(例如:加密次数、对谈时间或其他预设门槛值)到达时,电子装置D1、D2会同时依据当前规则(例如为第一规则)的下一个规则(例如为第二规则)在各自的本地端更新共同金钥,因此,电子装置D1、D2的共同金钥永远都是一致的。
[0061] 由上述可知,金钥规则表中包含多个规则,多个明码乱数值可以依据规则产生对应的规则码,在依据规则码产生共同金钥。因此,电子装置D1、D2都将同一个金钥规则表分别储存在储存装置12、22之后,就可以依据触发条件,例如:加密次数、对谈时间或其他预设门槛值,以各自依据当前规则(例如为第一规则)的下一个规则(例如为第二规则)更新共同金钥,当金钥规则表中纪录许多规则时(例如为100个),则处理器14、24可以依据规则跟触发条件,陆续产生多个(例如为100个)共同金钥。
[0062] 于一实施例中,杂凑算法的用途,以SHA2举例,此算法可以将任意大小的数计算出一256bit的数值,且无法从此算法再还原出原始数据(在此即为客户端装置的乱数(明文)+服务器端装置(如电子装置D2)的乱数(明文)+前置主密钥(密文)),而原始数据只要通过金钥规则表内提供的排列规则将数重新排列后,即可以再通过SHA2计算产生出另一个完全不同的256bit数值。
[0063] 由于原始数据以及排列规则只有客户端装置与服务器端装置知道原始内容,可以确保通过SHA2算法产生的数据的安全性无虞。
[0064] 于一实施例中,数据排列规则实际上为一组数值,若杂凑算法使用SHA2,则此数值则为256bit,若杂凑算法为SHA1则数值为160bit。
[0065] 使用方法如下叙述,以SHA2举例:当第一组产生的会话密钥(即对称式加密金钥)需要做更换时,将第一会话密钥(256bit)与此数值(256bit)进行XOR(逻辑互斥或)运算,之后再使用SHA2产生出新的杂凑值,也就是第二会话密钥,新的会话密钥产生也就以此类推,通过这两步骤就可以一直生成新的会话密钥做使用。
[0066] 图4是依照本发明一实施例绘示一种加密传输方法的流程图。于一实施例中,电子装置D1中的处理器14事先产生第一私钥与第一公钥,并将第一私钥与第一公钥储存在储存装置12,电子装置D2中的处理器24事先产生第二私钥与第一公钥,并将第二私钥与第二公钥储存在储存装置22。于一实施例中,图4中的加密传输方法,一开始采用传输层安全性(TLS)搭配使用进阶加密标准(AES),即,对称式加密算法进行数据的加密(可以标记为TLS‑RSA)。
[0067] 于步骤410中,客户端装置与服务器端装置进入交握阶段。
[0068] 于一实施例中,客户端装置(如电子装置D1)通过传输装置10传送一数据到电子装置D2,此数据中包含:安全通信端层(Secure Sockets Layer,SSL)版本(例如SSL 1.1)、加密方法(例如RSA加密演算法的数据格式)、第一明码乱数数据…等等。其中,第一明码乱数数据是由电子装置D1中的处理器14所产生,第一明码乱数数据(例如11110000)是用以产生加解密金钥的一参数。
[0069] 于一实施例中,服务器端装置(如电子装置D2)通过传输装置20接收到此数据并确认数据内容无误后,回传确认信息:安全通信端层版本(例如SSL 1.1)、加密方法(例如RSA加密演算法的数据格式)、第二明码乱数数据…等等。其中,第二明码乱数数据是由电子装置D2中的处理器24所产生,第二明码乱数数据(例如00001111)是用以产生加解密金钥的一参数。
[0070] 于步骤420中,客户端装置与服务器端装置各自确认对方是否身分无误。
[0071] 于一实施例中,由于电子装置D1中的处理器14事先产生第一私钥与第一公钥,并将第一私钥与第一公钥储存在储存装置12,电子装置D2中的处理器24事先产生第二私钥与第一公钥,并将第二私钥与第二公钥储存在储存装置22,因此,客户端装置(如电子装置D1)与服务器端装置(如电子装置D2)可各自用自己的私钥在传送出的信息上签名,客户端装置(如电子装置D1)与服务器端装置(如电子装置D2)各自再用对方的公钥解密,若解密成功,代表对方身分无误。
[0072] 于一实施例中,当客户端装置与服务器端装置各自确认对方身分无误,则进入步骤430。
[0073] 于一实施例中,当客户端装置与服务器端装置各自确认对方身分有误,则回到步骤410,重新传送信息,或是结束流程。
[0074] 于步骤430中,客户端装置使用服务器端装置的RSA公钥对前置主密钥以及金钥规则表进行加密后,将加密后的前置主密钥以及金钥规则表传送给服务器端装置。
[0075] 于步骤440中,服务器端装置收到加密后的前置主密钥以及金钥规则表,使用服务器端装置的私钥进行解密,确认前置主密钥以及金钥规则表后,回传一确认信息给客户端装置。
[0076] 于步骤450中,客户端装置与服务器端装置各自开始使用金钥规则表所储存的内容,以产生对称式加密金钥。
[0077] 于一实施例中,此对称式加密金钥为会话密钥。
[0078] 于步骤460中,客户端装置与服务器端装置通过对称式加密金钥以及对称式加密演算法进行数据传输。
[0079] 于一实施例中,步骤460所述的对称式加密金钥为步骤450所产生。
[0080] 于步骤470中,客户端装置与服务器端装置判断是否达到更新对称式加密金钥的条件。
[0081] 于一实施例中,当客户端装置及/或服务器端装置判断达到更新对称式加密金钥的条件,则进入步骤450。
[0082] 于一实施例中,当客户端装置及/或服务器端装置判断达到更新对称式加密金钥的条件,则进入步骤460。
[0083] 于一实施例中,重新排列时间点即为当前对称式加密金钥的更新时机,举例来说,客户端装置与服务器端装置可以规定当其中一方传送100笔数据后,就必须将原始数据重新排列进行杂凑计算,进而得到一把新的对称式加密金钥用于进行数据加密,当数据量又再一次达到设定值时(当其中一方传送100笔数据),再重复上述步骤。然,此处仅为一例,将当前对称式加密金钥使用期间(例如每24小时)作为条件,更新对称式加密金钥(例如每24小时更新一次),故本发明关于更新对称式加密金钥的条件,不限于此。
[0084] 综上,加密传输系统与加密传输方法可以让共同金钥在电子装置D1、D2各自的本地端计算出来,且电子装置D1、D2中的共同金钥会是相同的,共同金钥在后续可以应用作为对称式加密使用的钥匙,对称式加密的传送方与接收方的加解密皆使用同一把密钥,所以只要双方都拥有这把钥匙,当传送方传数据时,使用这把钥匙加密,接收方收到信息后,再用同一把钥匙解密,就能解开信息,在大量的数据要传输时,以非对称式加密可以较有效率的进行加解密。此外,由于共同金钥是在电子装置D1、D2各自的本地端计算出来,无须互相传递,借此,也减少了传递金钥被第三者拦截的风险,再者,当触发条件达到时,电子装置D1、D2各自的本地端可依据当前规则的下一个规则算出更新的共同金钥,且电子装置D1、D2中的更新的共同金钥会是相同的。因此,加密传输系统与加密传输方法优化了借由乱数产生金钥的方法,并达到兼顾传输效率及安全性的效果。
[0085] 本发明的方法,或特定型态或其部份,可以以代码的型态存在。代码可以包含于实体媒体,如软盘、光碟片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程式产品,其中,当代码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。代码也可以通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当代码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,代码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
[0086] 虽然本发明已以实施方式揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视前附的权利要求范围所界定者为准。

当前第1页 第1页 第2页 第3页
相关技术
传输系统相关技术
加密传输相关技术
陈庆安发明人的其他相关专利技术