CN112597522A - 信息发布系统及方法 - Google Patents

信息发布系统及方法 Download PDF

Info

Publication number
CN112597522A
CN112597522A CN202011605896.8A CN202011605896A CN112597522A CN 112597522 A CN112597522 A CN 112597522A CN 202011605896 A CN202011605896 A CN 202011605896A CN 112597522 A CN112597522 A CN 112597522A
Authority
CN
China
Prior art keywords
share
index value
terminal
decryption key
key information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011605896.8A
Other languages
English (en)
Inventor
闻哲航
方刚
许伟
蔡焱
陈军
梁力
陈国华
卢一鸣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maxio Technology Hangzhou Ltd
Original Assignee
Maxio Technology Hangzhou Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Maxio Technology Hangzhou Ltd filed Critical Maxio Technology Hangzhou Ltd
Priority to CN202011605896.8A priority Critical patent/CN112597522A/zh
Publication of CN112597522A publication Critical patent/CN112597522A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

提供一种信息发布系统及方法,该系统包括中心服务器和多个终端,中心服务器构建多个解密关键信息,其中每个解密关键信息与多个终端中的一个终端对应;将每个解密关键信息拆分为多个份额,并确定每个份额的序号;基于终端标识和随机数计算每个份额的索引值,用以确定指定行,根据每个份额的序号确定指定列,将每个份额存储到解密信息表中的指定行和指定列;将解密信息表和随机数发给各终端;各终端根据自身的终端标识和中心服务器生成的随机数计算每个份额的索引值,确定每个份额的序号,进而根据各份额的索引值和序号从解密信息表中的指定行和指定列读取各份额,以获得自身的解密关键信息、解密已加密资源。该系统能提高解密关键信息的安全性。

Description

信息发布系统及方法
技术领域
本发明涉及网络通信技术领域,更具体地,涉及一种信息发布系统及方法。
背景技术
随着网络技术的快速发展,已经有越来越多的重要信息在网络上传送,人们对信息传输安全也越来越重视。按照传送对象的不同,可以将互联网通信分为一机对一机、一机对多机和多机对多机三种情形,不同类型的互联网通信基于不同方式实现信息传输的安全性。
在一机对多机(1:n)通信中,中心服务器生成解密关键信息提供给各个终端,每个终端根据解密关键信息对已加密资源进行解密,这里所述的资源可以是软件发布包、音视频文件、内部保密资料等等。图1是一机对多机(1:n)的信息发布系统的示意图。如图上所示,信息发布系统10包括中心服务器11以及通过互联网与中心服务器11通信连接的多个终端U1至Un。中心服务器11向多个终端U1至Un发布信息,从而实现一机对多机(1:n)通信。在建立传送敏感信息的安全信道之前,所有终端U1至Un通过开放信道分别向中心服务器11发送终端标识Id1至Idn,中心服务器11收到终端标识Id1至Idn后,产生诸如对称密钥、验证码等解密关键信息A1至An,并将解密关键信息A1至An通过开放信道分别发送给终端U1至Un。至此,中心服务器11和终端U1至Un之间建立了安全通信,中心接收机11可用解密关键信息加密资源,并将已加密资源M1至Mn分别发送给终端U1至Un,终端U1至Un根据各自的解密关键信息A1至An进行解密。
但是在这个过程中,解密关键信息是通过开放信道传输的,攻击者可以通过攻击网络传输得到解密关键信息。由此解密关键信息的安全性难以得到保证。
发明内容
有鉴于此,本发明提供一种信息发布系统及方法,以提高解密关键信息的传输安全性。
根据本发明的第一方面,提供一种信息发布系统,所述系统包括中心服务器和多个终端,其中,所述中心服务器执行以下步骤:
构建多个解密关键信息,其中,每个所述解密关键信息与所述多个终端中的一个终端对应;
将每个终端的解密关键信息拆分为第1至第N份额,并确定每个份额的序号,N是大于或等于2的整数;
对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值,将每个份额存储到解密信息表中的指定行和指定列,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定;
将所述解密信息表和所述随机数发送给对应终端;
所述多个终端中的每个终端执行以下步骤:
根据自身的终端标识和由所述中心服务器生成的随机数计算出每个份额的索引值,并确定每个份额的序号;
从解密信息表中的指定行和指定列读取每个份额,以获得自身的解密关键信息,并基于所述自身的解密关键信息解密已加密资源,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定。
可选地,所述对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值包括:
生成第1随机数,根据终端标识和所述第1随机数计算第1份额的索引值;
对于第2份额至第N份额中的第K份额的索引值,使用第(K-1)随机数和第(K-1)份额作特定运算,以得到第K随机数,并使用第K随机数和终端标识计算第K份额的索引值,其中,K大于或者等于2且K小于或者等于N。
可选地,每个终端还执行以下步骤:经过安全信道将自身的终端标识发送给所述中心服务器。
可选地,所述中心服务器还执行以下步骤:基于每个终端的解密关键信息加密待发送资源,得到已加密资源并将所述已加密资源发送给每个终端。
可选地,所述中心服务器还执行以下步骤:
为每个终端的解密关键信息生成校验数据;
将每个校验数据存储到所述解密信息表中的相应行中,所述相应行由与所述校验数据对应的解密关键信息的第N份额的索引值确定;
每个终端还执行以下步骤:
从所述解密信息表中读出校验数据;
根据校验数据校验解密关键信息。
可选地,所述中心服务器还执行以下操作:
为所述解密信息表中未被占用的存储空间填充随机值,所述解密信息表中,为多个解密关键信息分配多个设定大小的存储空间,所述设定大小的存储空间大于每个解密关键信息实际需要的存储空间。
可选地,所述基于终端标识和随机数计算出每个份额的索引值包括:
当计算出的特定份额的索引值与在先计算出的任意一个索引值相同时,则重复地获取新的随机数,并基于新的随机数和终端标识计算出新的索引值,直到新的索引值与在先计算出的任意索引值都不相同。
可选地,所述基于终端标识和随机数计算出每个份额的索引值包括:
对于每个份额,计算出两个索引值;
如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值;
如果两个索引值都被占用,则针对占用其中之一索引值的第一其他份额,判断其另一个索引值是否被占用,如果否,则将所述第一其他份额移动到所述第一其他份额的另一个索引值的指定行中,如果是,则针对占用所述第一其他份额的另一个索引值的第二其他份额,执行所述判断其另一个索引值是否被占用的操作,直到所述两个索引值之一的索引值未被占用。
可选地,所述两个索引值包括主索引值和备用索引值,所述如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值包括:
在所述主索引值未被占用的情况下,将所述主索引值作为所述份额的索引值;
在所述主索引值被占用的情况下,将所述备用索引值作为所述份额的索引值。
可选地,所述特定运算为异或运算,以及基于哈希算法使用第K随机数和终端标识计算第K份额的索引值。
根据本发明的第二方面,提供一种信息发布方法,所述方法应用于中心服务器和多个终端,其中,所述中心服务器执行以下步骤:
构建多个解密关键信息,其中,每个所述解密关键信息与所述多个终端中的一个终端对应;
将每个终端的解密关键信息拆分为第1至第N份额,并确定每个份额的序号,N是大于或等于2的整数;
对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值,将每个份额存储到解密信息表中的指定行和指定列,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定;
将所述解密信息表和所述随机数发送给对应终端;
所述多个终端中的每个终端执行以下步骤:
根据自身的终端标识和由所述中心服务器生成的随机数计算出每个份额的索引值,并确定每个份额的序号;
从解密信息表中的指定行和指定列读取每个份额,以获得自身的解密关键信息,并基于所述自身的解密关键信息解密已加密资源,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定。
可选地,所述对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值包括:
生成第1随机数,根据终端标识和所述第1随机数计算第1份额的索引值;
对于第2份额至第N份额中的第K份额的索引值,使用第(K-1)随机数和第(K-1)份额作特定运算,以得到第K随机数,并使用第K随机数和终端标识计算第K份额的索引值,其中,K大于或者等于2且K小于或者等于N。
可选地,每个终端还执行以下步骤:经过安全信道将自身的终端标识发送给所述中心服务器。
可选地,所述中心服务器还执行以下步骤:基于每个终端的解密关键信息加密待发送资源,得到已加密资源并将所述已加密资源发送给每个终端。
可选地,所述中心服务器还执行以下步骤:
为每个终端的解密关键信息生成校验数据;
将每个校验数据存储到所述解密信息表中的相应行中,所述相应行由与所述校验数据对应的解密关键信息的第N份额的索引值确定;
每个终端还执行以下步骤:
从所述解密信息表中读出校验数据;
根据校验数据校验解密关键信息。
可选地,所述中心服务器还执行以下操作:
为所述解密信息表中未被占用的存储空间填充随机值,所述解密信息表中,为多个解密关键信息分配多个设定大小的存储空间,所述设定大小的存储空间大于每个解密关键信息实际需要的存储空间。
可选地,所述基于终端标识和随机数计算出每个份额的索引值包括:
当计算出的特定份额的索引值与在先计算出的任意一个索引值相同时,则重复地获取新的随机数,并基于新的随机数和终端标识计算出新的索引值,直到新的索引值与在先计算出的任意索引值都不相同。
可选地,所述基于终端标识和随机数计算出每个份额的索引值包括:
对于每个份额,计算出两个索引值;
如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值;
如果两个索引值都被占用,则针对占用其中之一索引值的第一其他份额,判断其另一个索引值是否被占用,如果否,则将所述第一其他份额移动到所述第一其他份额的另一个索引值的指定行中,如果是,则针对占用所述第一其他份额的另一个索引值的第二其他份额,执行所述判断其另一个索引值是否被占用的操作,直到所述两个索引值之一的索引值未被占用。
可选地,所述两个索引值包括主索引值和备用索引值,所述如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值包括:
在所述主索引值未被占用的情况下,将所述主索引值作为所述份额的索引值;
在所述主索引值被占用的情况下,将所述备用索引值作为所述份额的索引值。
可选地,所述特定运算为异或运算,以及基于哈希算法使用第K随机数和终端标识计算第K份额的索引值。
本发明提供的信息发布方法和系统用于发布解密关键信息,能够提供解密关键信息的安全性。
附图说明
通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出一机对多机的信息发布系统的示意性框图;
图2示出本发明第一实施例提供的信息发布系统的示意性框图;
图3示出本发明第一实施例提供的信息发布系统的交互示意图;
图4是本发明第一实施例所使用的解密信息表的数据结构示意图;
图5是本发明第二实施例所使用的解密信息表的数据结构示意图;
图6是校验数据的示例图;
图7是本发明第一实施例的软件包的发布系统的交互示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
本申请使用以下术语。
开放信道:任何用户都能够在该信道上发送和接收信息。
暴力破解:对于所有可能的密钥进行尝试,来找到正确的密钥。
解密信息表:由信息发布平台发布到开放信道上,里面分散存储着所有用户的解密关键信息,最终被用户接受,并从中提取出对应的解密关键信息。
除非另有定义,本文所使用的所有的技术和术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
应该理解的是,本申请的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图3示出本发明一实施例提供的信息发布方法的交互示意图。该信息发布方法基于计算机程序实现,并可实施在图2所示的信息发布系统20上。如图3所示,
步骤S01是终端22通过安全信道向中心服务器21发送终端标识。
步骤S02是中心服务器21收集多个终端22的终端标识。在图2中示出了终端U1至Un,n大于或等于2。这里中心服务器21接收到的终端标识可以是终端U1至Un中一部分终端唯一的终端标识,但必须大于或等于2。
步骤S03是中心服务器21计算每个终端对应的一个解密关键信息。多个解密关键信息可以相同也可以不同。可以采用多个终端22各自的终端标识来生成解密关键信息,但不必须如此。
步骤S04是中心服务器21建立解密信息表,生成随机数并基于终端标识和随机数将上一步骤计算到的解密关键信息存储到解密信息表中。
步骤S05是中心服务器21将解密信息表和随机数发送给终端22。这里的随机数是用于计算每个解密关键信息在解密信息表中的索引值时生产并采用的随机数。
步骤S06是终端22根据中心服务器生成的随机数和解密信息表计算自身的解密关键信息的索引值。
步骤S07是终端22根据索引值从解密信息表内取出自身的解密关键信息。
步骤S08是终端22基于自身的解密关键信息解密已加密资源。已加密资源可由中心服务器21传输给每个终端22,也可以由中心服务器21传输到一个资源服务器上,由每个终端22下载得到。
在本实施例中,解密关键信息可包括激活码、共享密钥等等,待发送资源可以是软件发布包、音视频播放文件、内部保密资料等等。中心服务器21基于每个终端的解密关键信息对待发送资源进行加密,得到已加密资源。例如,中心服务器21可采用共享密钥对待发送资源进行加密,终端22接收到共享密钥时,就可以采用共享密钥解密已加密资源。中心服务器21还可定期向终端22发送激活码,终端22对于已下载的软件包,必须定期输入最新的激活码才能够正常使用。
在本实施例中,步骤S03使用一种有限域内的2阶矩阵方程来计算解密关键信息,计算得到的解密关键信息a具有以下几个特点:终端根据终端标识(终端的唯一标识)和解密关键信息很容易得出对称加密算法的共享密钥k,对于没有终端标识只能使用暴力破解才能获得对称加密算法的共享密钥k。用户可以根据解密关键信息a和终端标识获得软件的使用权。
和现有技术的关键不同在于,现有技术直接在开放信道上发送每个解密关键信息,但是本实施例是终端通过安全信道向中心服务器发送终端标识,中心服务器基于该终端标识和随机数,将多个解密关键信息构建成解密信息表,然后再采用开放信道发送解密信息表和随机数。解密信息表的构建步骤是步骤S04。下面基于图4和图5详细介绍该步骤。
图4示出了第一实施方式的解密信息表的数据结构。如图上所示,解密信息表基于索引组织数据(包括解密关键信息和校验数据),并可通过索引检索数据,但是多个解密关键信息的存储顺序并不固定,即每个终端(等同于终端12)的解密关键信息在解密信息表中的索引并不固定,但是每个终端的解密关键信息的索引可基于自身的终端标识和随机数得到。
在一个实施例中,将每个终端的终端标识和中心服务器所产生的随机数代入到一个哈希(hash)算法中,得到该终端的解密关键信息在解密信息表内的索引值。该算法可表示为公式(1):
index=H([Vi],r) 公式(1)
其中H为设定Hash函数,[Vi]是终端标识,r是一个随机数。也就是说,以index为地址将解密关键信息a存入解密信息表A[index]中。可用行和列来解释图4中的解密信息表,索引index指出了解密关键信息a所存储的行。
在一个实施例中,当采用公式(1)计算出的索引值与在先计算出的索引值相同时,则重复以下步骤,直到得到与在先计算出的任意索引值都不同的索引值:获取新的随机数,并基于新的随机数和公式(1)计算新的索引值。
在一个实施例中,还可以采用以下方法还解决通过公式(1)计算出的索引值相同的问题。其核心思想是:对于同一解密关键信息的每个份额,计算出两个索引值作为主索引和备用索引;
如果其中之一的索引值(主索引或备用索引)未被占用,则将未被占用的索引值作为该份额的索引值;
如果两个索引值都被占用,则针对占用其中之一索引值的第一其他份额,判断其另一个索引值是否被占用。如果否,则将第一其他份额移动到另一个索引值的指定行中;如果是,则针对占用了第一其他份额的另一个索引值的第二其他份额,执行判断其另一个索引值是否被占用的操作,直到两个索引值之一的索引值未被占用。举例说明,对于解密关键信息的n个份额A1、A2至An,n大于或者等于2,其中Ak为解密关键信息的第k份额,k大于或等于1且k小于或等于n。index1Ak和index2Ak是为Ak计算出来的主索引和备用索引。在主索引值index1Ak未被占用的情况下,将主索引值index1Ak作为Ak的索引值,在主索引值index1Ak被占用的情况下,将备用索引值index2Ak作为Ak的索引值。如果这两个索引值都被占用,以index1Ak为例,假设占用它的份额为A(k+j1),j1是大于0的整数,且(k+j1)小于或等于n。则A(k+j1)一定还有另一个索引(主索引或备用索引),如果A(k+j1)的另一个索引没有被占用,将A(k+j1)移动到A(k+j1)的另一个索引上,这样就空出了index1Ak由Ak使用。但如果A(k+j1)的另一个索引也被占用,假设占用A(k+j1)的另一个索引的其他索引为A(k+j2),j2是大于0且不等于j1的整数,且(k+j2)小于或等于n。A(k+j2)同样还有另一个索引,则判断A(k+j2)的另一个索引值是否被占用。如果A(k+j2)的另一个索引值没有被占用,则将A(k+j2)移动到A(k+j2)的另一个索引上,并将A(k+j1)移动到A(k+j1)的另一个索引上,这样就空出了index1Ak由Ak使用。如果A(k+j2)的另一个索引值被占用,则针对占用了A(k+j2)的另一个索引值的其他索引执行判断该其他索引的另一个索引值是否被占用的操作,直到空出index1Ak由Ak使用。
在获取解密关键信息时,由于使用两个哈希函数生成两个索引值,使用这两个索引值会找到两个解密关键信息,必须要通过校验数据来找到正确的解密关键信息。
继续参考图4所示,从图4可以看出,在构建解密信息表时,还可以为每个解密关键信息添加校验数据,校验数据可用于校验解密关键信息的完整性,每个终端的解密关键信息的校验数据可与终端标识相关。如图4所示,校验数据和其对应的解密关键信息位于解密信息表的同一个行中。当终端从解密信息表中取出自身的解密关键信息和校验数据,可通过校验数据校验取出的解密关键信息是否被破坏、被篡改。
参考图4所示,在一个实施例中,可为每个终端(包括解密关键信息、校验数据和索引值)设定固定长度的存储空间,如果这些信息不足以填充该存储空间,则可以填充随机信息,以提高解密信息表的解析难度,例如,可以1:1的比例存储包括解密关键信息、校验数据和索引值等有用数据以及随机信息;在另一个实施例中,可采用特定分隔符分隔每个由解密关键信息、校验数据和索引值构成的有用信息,特定分隔符例如为分号、‘$’符号等等。
根据上述实施例,每个解密关键信息作为一个整体,基于终端标识和随机数生成每个解密关键信息的索引值,以索引组织形式将所有解密关键信息组织在解密信息表中,通过开放信道传输给终端,同时终端通过开放信道会接收到用于生成解密关键信息的随机数,从而终端能够根据用户唯一的终端标识和接收到的随机数得到自身的解密关键信息在解密信息表中的索引值,进而取出自身的解密关键信息进行解密操作,如此提高了解密关键信息的安全性,进而提高了基于解密关键信息进行解密操作的安全性。
图5示出了第二实施方式的解密信息表的数据结构示意图。
如图5所示,解密信息表50是用于存储4个解密关键信息的存储空间,解密关键信息的数量是示意性的,可以是大于或等于2的任意整数。和图4相同的是,解密关键信息50也采用索引组织方式进行存储,但是和图4不同之处在于,图5中的每个解密关键信息都被拆分为N个份额,并记录每个份额的序号1至N,计算解密关键信息的1至N个份额中的每个份额的索引值,可以得到(4*N)个份额的索引值。基于每个分额的索引值以及每个份额的序号能够将所有份额都组织存储到解密信息表中。如果按照行和列来理解图5所示的解密信息表,则可以这样描述:根据一个份额的索引值确定该份额在解密信息表中的指定行,通过该份额的序号确定该份额在解密信息表中的指定列,即多个不同份额在同一行中的排列顺序。例如,图上索引值为1对应的数据为:终端3的解密关键信息的第1份额,……,终端1的解密关键信息的第(N-1)份额,终端4的解密关键信息的第N份额。通过将每个终端的解密关键信息打乱分布在解密信息表中的不同行,避免每个终端的解密关键信息作为一个整体被暴力破解,进一步提高了解密关键信息的安全性。
下面以终端1为例来详细如何将终端1的解密关键信息填充到解密信息表中,以及终端1如何从解密信息表中取出解密关键信息。
首先计算index1=H(V,r1),其中H()代表一种Hash函数,V表示终端1唯一的终端标识,r1是随机生成的一个128bit的第1随机数。r1会随着解密信息表一起在开放信道上传输给终端1。将终端1的解密关键信息拆分为N个份额,并按顺序将每个份额称为第1份额至第N份额。然后将第1份额放在解密信息表中index1所对应的指定行中的第一列位置上。然后获得第2随机数r2,其中,r2=r1异或(终端1的解密关键信息的第1份额)。然后计算index2=H(V,r2),并将终端1的解密关键信息的第2份额放在解密信息表中index2所对应的指定行中的第二列位置上,然后更新第3随机数r3,r3=r2异或(终端1的解密关键信息的第2份额)。以此类推,直到将终端1的解密关键信息的第1至第N份额都填充到解密信息表中。按照上述步骤,可将多个终端的解密关键信息填充到解密信息表中。然后生成终端1的解密关键信息的若干位校验数据,并存储在解密信息表中。该校验数据可以存储在解密信息表中indexN所对应的相应行中第N个份额的后面,也可以将rN异或(终端1的解密关键信息的第N个份额),计算得到r(N+1),然后计算index(N+1)=H(V,r(N+1)),并将校验信息存储在解密信息表中index(N+1)所对应的相应行中所有份额的后面。
本实施例中,每个终端的第1随机数相同。由于各终端唯一的终端标识互不相同,因此每个终端的解密关键信息拆分的第1份额的索引值互不相同。在其他一些实施例中,每个终端的第1随机数可以互不相同,各第1随机数具有相应的终端标签,各第1随机数及其终端标签会随着解密信息表一起在开放信道上传输给各终端,可以进一步提高解密关键信息的安全性。
当然,并不一定必须是所有解密关键信息的第N份额都存储到第N列上,也可以是第N份额存储到第(N-1)列,而第(N-1)份额存储到第N列上,诸如此类。但是这样做的前提是,所有解密关键信息的相同序号的份额都应该存在相同的列中。
图6是一个示例性的校验数据。该示例性的校验数据包括n个子校验数据,从子校验数据1至N分别为图5的属于同一个索引值的不同解密关键信息的N个份额。当然,即使将一个解密关键信息分成N个份额,但是还是可以如图4所示,为每个解密关键信息只生成一个校验数据,该校验数据可与其中之一的份额存储在同一行中,例如,对于一个解密关键信息,将其对应的校验数据存储在其第N份额所在的行中,如果一个行上有两个或以上的校验数据,则这两个或以上的校验数据可通过分隔符隔开,并且可通过例如标记等方式指定校验数据与解密关键信息的对应关系。
在将校验数据填充到解密信息表中时,还可以有多种填充方式。例如,校验数据到解密信息表的的填充方式与接收解密信息表的终端联系起来。例如,终端1收到的解密信息表内,只填充与终端1的解密关键信息的各个份额相关的校验数据。
当完成解密信息表的填充之后,中心服务器11就可以将解密信息表和由该中心服务器生成的随机数发送给多个终端。当终端1从开放信道上获取解密信息表和r1,首先将r1和终端1唯一的终端标识V进行hash运算:index1=H(V,r1),从解密信息表中将索引为index1的第一列数据作为终端1的解密关键信息的第1份额。然后更新r2=r1异或(终端1的解密关键信息的第1份额),计算index2=H(V,r2),从解密信息表中将index2的第二列数据作为终端1的解密关键信息的第2份额。以此类推,可以将终端1的解密关键信息全部提取出来,同时根据indexn所在位置的校验数据,根据该校验数据校验终端1的解密关键信息是否正确。
上述将解密关键信息拆分成多个份额并打散存储在解密信息表中的方法进一步提高了解密关键信息的安全性,从而提高了基于解密关键信息进行解密操作的安全性。
基于上述实施例,发明人想到可将上述技术方案应用于软件包的发布中。由于软件的可修改性和可复制性,导致软件能够被复制到未经授权的设备上或者当软件被修改后安装到授权的设备上,导致软件使用者运行有漏洞的程序。为了避免这种风险,软件开发者会将软件包加密后再发布到资源服务器上,而软件使用者需要向软件开发者申请密钥才能够从资源服务器下载加密软件包解密。
图7是本发明第一实施例的软件包的发布系统的交互图。如图上所示,其中步骤S11至S17与图3中的步骤S01至S07完全相同,这里就不在重复描述。
步骤S18是中心服务器71将加密待发布软件包。
步骤S19是中心服务器71将已加密软件包发布到资源服务器上。
步骤S20是终端72从资源服务器获取已加密软件包,并根据解密关键信息解密已加密软件包。中心服务器71也可将已加密软件包发送给各个终端72。而终端72接收后,通过解密获得软件包的使用权。
在此所用的术语“模块”可以指代以下各项、作为以下各项的一部分或者包括以下各项:专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供所描述的功能性的其他合适的组件。
本领域技术人员可以理解,根据本发明的数据处理系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
根据本发明的数据处理系统和方法可以部署在单个或多个服务器上。例如,可以将不同的模块分别部署在不同的服务器上,形成专用服务器。或者,可以在多个服务器上分布式部署相同的功能单元、模块或系统,以减轻负载压力。所述服务器包括但不限于在同一个局域网以及通过Internet连接的多个PC机、PC服务器、刀片机、超级计算机等。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种信息发布系统,其特征在于,所述系统包括中心服务器和多个终端,其中,所述中心服务器执行以下步骤:
构建多个解密关键信息,其中,每个所述解密关键信息与所述多个终端中的一个终端对应;
将每个终端的解密关键信息拆分为第1至第N份额,并确定每个份额的序号,N是大于或等于2的整数;
对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值,将每个份额存储到解密信息表中的指定行和指定列,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定;
将所述解密信息表和所述随机数发送给对应终端;
所述多个终端中的每个终端执行以下步骤:
根据自身的终端标识和由所述中心服务器生成的随机数计算出每个份额的索引值,并确定每个份额的序号;
从解密信息表中的指定行和指定列读取每个份额,以获得自身的解密关键信息,并基于所述自身的解密关键信息解密已加密资源,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定。
2.根据权利要求1所述的信息发布系统,其特征在于,所述对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值包括:
生成第1随机数,根据终端标识和所述第1随机数计算第1份额的索引值;
对于第2份额至第N份额中的第K份额的索引值,使用第(K-1)随机数和第(K-1)份额作特定运算,以得到第K随机数,并使用第K随机数和终端标识计算第K份额的索引值,其中,K大于或者等于2且K小于或者等于N。
3.根据权利要求1所述的信息发布系统,其特征在于,每个终端还执行以下步骤:经过安全信道将自身的终端标识发送给所述中心服务器。
4.根据权利要求1所述的信息发布系统,其特征在于,所述中心服务器还执行以下步骤:基于每个终端的解密关键信息加密待发送资源,得到已加密资源并将所述已加密资源发送给每个终端。
5.根据权利要求1至4中任一项所述的信息发布系统,其特征在于,所述中心服务器还执行以下步骤:
为每个终端的解密关键信息生成校验数据;
将每个校验数据存储到所述解密信息表中的相应行中,所述相应行由与所述校验数据对应的解密关键信息的第N份额的索引值确定;
每个终端还执行以下步骤:
从所述解密信息表中读出校验数据;
根据校验数据校验解密关键信息。
6.根据权利要求1所述的信息发布系统,其特征在于,所述中心服务器还执行以下操作:
为所述解密信息表中未被占用的存储空间填充随机值,所述解密信息表中,为多个解密关键信息分配多个设定大小的存储空间,所述设定大小的存储空间大于每个解密关键信息实际需要的存储空间。
7.根据权利要求1所述的信息发布系统,其特征在于,所述基于终端标识和随机数计算出每个份额的索引值包括:
当计算出的特定份额的索引值与在先计算出的任意一个索引值相同时,则重复地获取新的随机数,并基于新的随机数和终端标识计算出新的索引值,直到新的索引值与在先计算出的任意索引值都不相同。
8.根据权利要求1所述的信息发布系统,其特征在于,所述基于终端标识和随机数计算出每个份额的索引值包括:
对于每个份额,计算出两个索引值;
如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值;
如果两个索引值都被占用,则针对占用其中之一索引值的第一其他份额,判断其另一个索引值是否被占用,如果否,则将所述第一其他份额移动到所述第一其他份额的另一个索引值的指定行中,如果是,则针对占用所述第一其他份额的另一个索引值的第二其他份额,执行所述判断其另一个索引值是否被占用的操作,直到所述两个索引值之一的索引值未被占用。
9.根据权利要求8所述的信息发布系统,其特征在于,所述两个索引值包括主索引值和备用索引值,所述如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值包括:
在所述主索引值未被占用的情况下,将所述主索引值作为所述份额的索引值;
在所述主索引值被占用的情况下,将所述备用索引值作为所述份额的索引值。
10.根据权利要求2所述的信息发布系统,其特征在于,所述特定运算为异或运算,以及基于哈希算法使用第K随机数和终端标识计算第K份额的索引值。
11.一种信息发布方法,其特征在于,所述方法应用于中心服务器和多个终端,其中,所述中心服务器执行以下步骤:
构建多个解密关键信息,其中,每个所述解密关键信息与所述多个终端中的一个终端对应;
将每个终端的解密关键信息拆分为第1至第N份额,并确定每个份额的序号,N是大于或等于2的整数;
对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值,将每个份额存储到解密信息表中的指定行和指定列,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定;
将所述解密信息表和所述随机数发送给对应终端;
所述多个终端中的每个终端执行以下步骤:
根据自身的终端标识和由所述中心服务器生成的随机数计算出每个份额的索引值,并确定每个份额的序号;
从解密信息表中的指定行和指定列读取每个份额,以获得自身的解密关键信息,并基于所述自身的解密关键信息解密已加密资源,其中,所述指定行由每个份额的索引值确定,所述指定列由每个份额的序号确定。
12.根据权利要求11所述的信息发布方法,其特征在于,所述对于每个终端的解密关键信息的第1至第N份额,基于终端标识和随机数计算出每个份额的索引值包括:
生成第1随机数,根据终端标识和所述第1随机数计算第1份额的索引值;
对于第2份额至第N份额中的第K份额的索引值,使用第(K-1)随机数和第(K-1)份额作特定运算,以得到第K随机数,并使用第K随机数和终端标识计算第K份额的索引值,其中,K大于或者等于2且K小于或者等于N。
13.根据权利要求11所述的信息发布方法,其特征在于,每个终端还执行以下步骤:经过安全信道将自身的终端标识发送给所述中心服务器。
14.根据权利要求11所述的信息发布方法,其特征在于,所述中心服务器还执行以下步骤:基于每个终端的解密关键信息加密待发送资源,得到已加密资源并将所述已加密资源发送给每个终端。
15.根据权利要求11至14中任一项所述的信息发布方法,其特征在于,所述中心服务器还执行以下步骤:
为每个终端的解密关键信息生成校验数据;
将每个校验数据存储到所述解密信息表中的相应行中,所述相应行由与所述校验数据对应的解密关键信息的第N份额的索引值确定;
每个终端还执行以下步骤:
从所述解密信息表中读出校验数据;
根据校验数据校验解密关键信息。
16.根据权利要求11所述的信息发布方法,其特征在于,所述中心服务器还执行以下操作:
为所述解密信息表中未被占用的存储空间填充随机值,所述解密信息表中,为多个解密关键信息分配多个设定大小的存储空间,所述设定大小的存储空间大于每个解密关键信息实际需要的存储空间。
17.根据权利要求11所述的信息发布方法,其特征在于,所述基于终端标识和随机数计算出每个份额的索引值包括:
当计算出的特定份额的索引值与在先计算出的任意一个索引值相同时,则重复地获取新的随机数,并基于新的随机数和终端标识计算出新的索引值,直到新的索引值与在先计算出的任意索引值都不相同。
18.根据权利要求11所述的信息发布方法,其特征在于,所述基于终端标识和随机数计算出每个份额的索引值包括:
对于每个份额,计算出两个索引值;
如果其中之一的索引值未被占用,则将未被占用的索引值作为所述该份额的索引值;
如果两个索引值都被占用,则针对占用其中之一索引值的第一其他份额,判断其另一个索引值是否被占用,如果否,则将所述第一其他份额移动到所述第一其他份额的另一个索引值的指定行中,如果是,则针对占用所述第一其他份额的另一个索引值的第二其他份额,执行所述判断其另一个索引值是否被占用的操作,直到所述两个索引值之一的索引值未被占用。
19.根据权利要求18所述的信息发布方法,其特征在于,所述两个索引值包括主索引值和备用索引值,所述如果其中之一的索引值未被占用,则将未被占用的索引值作为所述份额的索引值包括:
在所述主索引值未被占用的情况下,将所述主索引值作为所述份额的索引值;
在所述主索引值被占用的情况下,将所述备用索引值作为所述份额的索引值。
20.根据权利要求12所述的信息发布方法,其特征在于,所述特定运算为异或运算,以及基于哈希算法使用第K随机数和终端标识计算第K份额的索引值。
CN202011605896.8A 2020-12-30 2020-12-30 信息发布系统及方法 Pending CN112597522A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011605896.8A CN112597522A (zh) 2020-12-30 2020-12-30 信息发布系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011605896.8A CN112597522A (zh) 2020-12-30 2020-12-30 信息发布系统及方法

Publications (1)

Publication Number Publication Date
CN112597522A true CN112597522A (zh) 2021-04-02

Family

ID=75204163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011605896.8A Pending CN112597522A (zh) 2020-12-30 2020-12-30 信息发布系统及方法

Country Status (1)

Country Link
CN (1) CN112597522A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692651A (zh) * 2009-09-27 2010-04-07 中兴通讯股份有限公司 一种哈希查找表的方法和装置
CN105450620A (zh) * 2014-09-30 2016-03-30 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN108270561A (zh) * 2017-01-04 2018-07-10 阿里巴巴集团控股有限公司 数据发送方法及装置、密钥索引的生成方法及装置
CN110099064A (zh) * 2019-05-08 2019-08-06 广州创想云科技有限公司 一种基于物联网的文件处理方法、装置、设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692651A (zh) * 2009-09-27 2010-04-07 中兴通讯股份有限公司 一种哈希查找表的方法和装置
CN105450620A (zh) * 2014-09-30 2016-03-30 阿里巴巴集团控股有限公司 一种信息处理方法及装置
CN108270561A (zh) * 2017-01-04 2018-07-10 阿里巴巴集团控股有限公司 数据发送方法及装置、密钥索引的生成方法及装置
CN110099064A (zh) * 2019-05-08 2019-08-06 广州创想云科技有限公司 一种基于物联网的文件处理方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US10454674B1 (en) System, method, and device of authenticated encryption of messages
CN105051750B (zh) 用于加密文件系统层的系统和方法
US7127067B1 (en) Secure patch system
CN100592683C (zh) 来自数字权利管理加密解密器的受保护的返回路径
CN102484638B (zh) 经由多个中间客户端在线递送的身份数据的分层保护和验证
KR100702499B1 (ko) 메시지 무결성 보증 시스템, 방법 및 기록 매체
CN109981255B (zh) 密钥池的更新方法和系统
US11113408B2 (en) Providing a secure object store using a hierarchical key system
US20100098246A1 (en) Smart card based encryption key and password generation and management
WO2006019614A2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution cd
CN101689240A (zh) 信息安全装置及信息安全系统
CN102419804A (zh) 具有冗余安全性的可靠的软件产品验证和激活
EP4057566B1 (en) Systems, methods, and computer-readable media for protecting cryptographic keys
EP3163789B1 (en) Forward-secure crash-resilient logging device
CN112115461B (zh) 设备认证方法、装置、计算机设备和存储介质
US9571273B2 (en) Method and system for the accelerated decryption of cryptographically protected user data units
US11128455B2 (en) Data encryption method and system using device authentication key
CN106408069B (zh) Epc卡的用户数据写入与读取方法和系统
US7953970B2 (en) Method and apparatus for storage of security keys and certificates
CN110176992B (zh) 安全密钥管理系统和方法及其安全元件
US10402573B1 (en) Breach resistant data storage system and method
CN109302442B (zh) 一种数据存储证明方法及相关设备
CN114244620B (zh) 一种板卡入网验证方法、装置及板卡控制中心
CN116484379A (zh) 系统启动方法、包含可信计算基软件的系统、设备及介质
CN110764797A (zh) 一种芯片中文件的升级方法、装置、系统及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310051 room c1-604, building C, No. 459, Qianmo Road, Xixing street, Binjiang District, Hangzhou, Zhejiang Province

Applicant after: Lianyun Technology (Hangzhou) Co.,Ltd.

Address before: 6 / F, block C1, spotlight center, 459 Qianmo Road, Binjiang District, Hangzhou City, Zhejiang Province, 310051

Applicant before: MAXIO TECHNOLOGY (HANGZHOU) Ltd.

CB02 Change of applicant information