技术领域
[0001] 本发明属于数据加密的技术领域,具体地涉及一种金融数据加密方法及系统。
相关背景技术
[0002] 对于金融管理平台而言,每个用户上传至金融管理平台的数据其具备一定的私密性,因此在实际的金融数据上传、传输的过程中,应当对金融数据进行相应的加密过程,而对于现有技术中的加密算法而言,其通常采用MD5、EDS算法对数据进行加密处理,但在实际的传输过程中,面对外部的攻击或者其他因素,极其导致解密的密钥存在泄露的情况,进而侵犯了用户的隐私,其安全性较低且效率低下。
具体实施方式
[0018] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,旨在用于解释本发明的实施例,而不能理解为对本发明的限
制。
[0019] 在本发明实施例的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对
本发明的限制。
[0020] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0021] 在本发明实施例中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明实施例中的具体含义。
[0022] 实施例一在本发明的实施例一中,如图1所示,一种金融数据加密方法,包括:
S1、在有限域中任意选取第一素数与第二素数,基于所述第一素数与所述第二素
数计算加密参数与主密钥;
其中,所述步骤S1包括:
S11、构建双线性映射 以及哈希函数 ,其中,、 分
别表示第一算法循环群、第二算法循环群, 表示数量为 的有限域;
具体的,第一算法循环群与第二算法循环群均为阶数为 的算法循环群, 具体
为与算法循环群有关的素数集合,其具体为一个有限域,该在有限域中存在 个素数。
[0023] S12、在 中任意选取第一素数 与第二素数 ,并在第一算法循环群中选取参数集合 ,其中, 分别表示第一 第七参数;
~
具体的,第一参数具体为第一算法循环群的生成元,第二 第七参数分别为第一算
~
法循环群中的系数。
[0024] S13、基于所述第一素数、所述第二素数、所述参数集合计算加密参数 与主密钥:
;
;
具体的,此处的加密参数为整个加密算法的全局参数,主密钥具体为中间权威机
构的主密钥。
[0025] S2、基于所述加密参数计算公钥与私钥;其中,所述步骤S2包括:
S21、在数量为 的有限域 中选取素数集合 ,基于所述素数集合 计算私有信
息 :
;
式中, 、 分别表示素数集合中第 、个素数, 表示第一参数,表示用户数量。
[0026] S22、在数量为 的有限域 中选取第三素数 ,基于第三素数 与私有信息 计算公钥 与私钥 :
; ;
式中,表示双线性映射;
具体的,此处的公钥与私钥为属性权威机构的公钥与私钥。
[0027] S3、获取用户下发的金融明文数据,对所述用户进行匿名处理,以得到匿名身份信息;其中,所述步骤S3包括:
S31、为所述用户设置用户私钥 以及用户公钥 ,其中, 表示
第一参数。
[0028] S32、在数量为 的有限域 中选取第四素数 与第五素数 ,基于所述第四素数、第五素数 、用户公钥 确定用户身份信息 :
;
式中,为哈希函数。
[0029] S33、在数量为 的有限域 中选取第六素数 与第七素数 ,基于第六素数 、第七素数 确定匿名信息 :
;
式中, 分别表示第二参数、第三参数。
[0030] S34、基于匿名信息 与用户身份信息 确定匿名身份信息 :;
式中, 表示第 个用户的身份编号。
[0031] S4、基于所述加密参数、所述主密钥、所述公钥与所述私钥对所述金融明文数据进行加密处理,以得到密文数据;其中,所述步骤S4包括:
S41、选择任意随机数 并在数量为 的有限域 中选取第八素数 与第九素数
。
[0032] S42、基于所述随机数 计算第一密文数据 、第二密文数据 、第三密文数据与第四密文数据 :
; ;
; ;
式中, 表示第一参数,、 分别表示双线性映射、哈希函数,表示金融明文数
据, 分别表示第二、第三素数。
[0033] S43、基于第八素数 与第九素数 计算第五密文数据 、第六密文数据 、第七密文数据 、第八密文数据 、第九密文数据 :
; ; ; ;
;
式中, 分别表示第四、第五、第六、第七参数,表示调整因子,
表示第一素数。
[0034] S44、基于第一密文数据 第九密文数据 确定密文数据 :~
。
[0035] S5、基于所述匿名身份信息进行身份验证,若身份验证通过,则基于所述加密参数、所述主密钥、所述公钥与所述私钥计算解密密钥;
其中,所述步骤S5包括:
S51、判断所述用户的匿名身份信息是否满足身份验证条件,若满足身份验证条
件,则身份验证通过,其中,身份验证条件为:
。
[0036] S52、基于所述加密参数、所述主密钥、所述公钥与所述私钥计算第一子密钥 、第二子密钥 、第三子密钥 、第四子密钥 、第五子密钥 、第六子密钥 、第七子密钥 :; ;
; ;
; ;
;
式中, 表示第一参数, 分别表示第二、第三、
第四、第五、第六、第七、第十素数, 表示匿名信息,表示随机数, 表示用户公钥,、
分别表示双线性映射、哈希函数, 表示调整因子, 分别表示第四、第
五、第六、第七参数。
[0037] S53、基于第一子密钥 第七子密钥 确定解密密钥 :~
;
具体的,此处的解密密钥由用户确定得到,即在用户手里。
[0038] S6、基于所述解密密钥对所述密文数据进行本地解密处理,以得到解密后的金融明文数据。
[0039] 其中,所述步骤S6包括:S61、基于所述解密密钥确定本地解密密钥 :
;
; ; ; ; ;
; ;
式中,表示盲化因子, 分别为第一 第七本地子密钥;
~
具体的,此处的盲化因子可在数量为 的有限域 中选取。
[0040] S62、基于所述本地解密密钥 计算第一解密信息 、第二解密信息 与第三解密信息 :
;
;
;
式中, 、 分别表示第三、第四、第五、第六、第七、
第八、第九密文数据,表示双线性映射。
[0041] S63、基于所述第二解密信息 与第三解密信息 计算最终解密信息 :。
[0042] S64、判断是否满足解密条件,若满足解密条件,则计算解密后的金融明文数据,其中,解密条件为:
;
式中, 、 分别表示第一、第二密文数据, 为哈希函数;
具体的,如果不满足解密条件,则说明返回的解密密钥是错误的,因此需要重复执
行上述步骤;
需要说明的是,由于每个用户均存在与之对应的匿名身份信息,因此当出现密钥
泄露的情况时,可通过密钥检查算法得到密钥所有者的身份,并通过黑盒白盒追踪算法追
踪到泄密者的身份。
[0043] 本发明实施例一提供的金融数据加密方法,首先在有限域中任意选取第一素数与第二素数,基于第一素数与第二素数计算加密参数与主密钥;然后基于加密参数计算公钥
与私钥;然后获取用户下发的金融明文数据,对用户进行匿名处理,以得到匿名身份信息;
然后基于加密参数、主密钥、公钥与私钥对金融明文数据进行加密处理,以得到密文数据;
然后基于匿名身份信息进行身份验证,若身份验证通过,则基于加密参数、主密钥、公钥与私钥计算解密密钥;然后基于解密密钥对密文数据进行本地解密处理,以得到解密后的金
融明文数据,本发明采用改进的加密算法对金融数据进行加密处理,同时对用户身份进行
相应的匿名处理,以此避免密钥的滥用以及泄露,同时有效保护了用户的隐私,且本发明所提供的加密方法具备可追踪性,其可具体追溯到相应的泄密者,以提升数据的安全性以及
加密的效率。
[0044] 实施例二如图2所示,在本发明的实施例二提供了一种金融数据加密系统,所述系统包括:
参数模块1,用于在有限域中任意选取第一素数与第二素数,基于所述第一素数与
所述第二素数计算加密参数与主密钥;
公私钥模块2,用于基于所述加密参数计算公钥与私钥;
匿名模块3,用于获取用户下发的金融明文数据,对所述用户进行匿名处理,以得
到匿名身份信息;
加密模块4,用于基于所述加密参数、所述主密钥、所述公钥与所述私钥对所述金
融明文数据进行加密处理,以得到密文数据;
密钥模块5,用于基于所述匿名身份信息进行身份验证,若身份验证通过,则基于
所述加密参数、所述主密钥、所述公钥与所述私钥计算解密密钥;
解密模块6,用于基于所述解密密钥对所述密文数据进行本地解密处理,以得到解
密后的金融明文数据。
[0045] 所述参数模块1包括:构建子模块,用于构建双线性映射 以及哈希函数 ,
其中,、 分别表示第一算法循环群、第二算法循环群, 表示数量为 的有限域;
集合子模块,用于在 中任意选取第一素数 与第二素数 ,并在第一算法循环
群中选取参数集合 ,其中, 分别表示第一 第七参数;
~
参数子模块,用于基于所述第一素数、所述第二素数、所述参数集合计算加密参数
与主密钥 :
;
。
[0046] 所述公私钥模块2包括:私有子模块,用于在数量为 的有限域 中选取素数集合 ,基于所述素数集合
计算私有信息 :
;
式中, 、 分别表示素数集合中第 、个素数, 表示第一参数,表示用户数量;
公私钥子模块,用于在数量为 的有限域 中选取第三素数 ,基于第三素数
与私有信息 计算公钥 与私钥 :
; ;
式中,表示双线性映射。
[0047] 所述匿名模块3包括:用户公私钥子模块,用于为所述用户设置用户私钥 以及用户公钥
,其中, 表示第一参数;
身份子模块,用于在数量为 的有限域 中选取第四素数 与第五素数 ,基于
所述第四素数 、第五素数 、用户公钥 确定用户身份信息 :
;
式中,为哈希函数;
匿名子模块,用于在数量为 的有限域 中选取第六素数 与第七素数 ,基于
第六素数 、第七素数 确定匿名信息 :
;
式中, 分别表示第二参数、第三参数;
信息输出子模块,用于基于匿名信息 与用户身份信息 确定匿名身份信息 :
;
式中, 表示第 个用户的身份编号。
[0048] 所述加密模块4包括:选择子模块,用于选择任意随机数 并在数量为 的有限域 中选取第八素数
与第九素数 ;
第一密文输出子模块,用于基于所述随机数 计算第一密文数据 、第二密文数
据 、第三密文数据 与第四密文数据 :
; ;
; ;
式中, 表示第一参数,、 分别表示双线性映射、哈希函数,表示金融明文数
据, 分别表示第二、第三素数;
第二密文输出子模块,用于基于第八素数 与第九素数 计算第五密文数据 、
第六密文数据 、第七密文数据 、第八密文数据 、第九密文数据 :
; ; ; ;
;
式中, 分别表示第四、第五、第六、第七参数,表示调整因子,
表示第一素数;
密文数据子模块,用于基于第一密文数据 第九密文数据 确定密文数据 :
~
。
[0049] 所述密钥模块5包括:判断子模块,用于判断所述用户的匿名身份信息是否满足身份验证条件,若满足
身份验证条件,则身份验证通过,其中,身份验证条件为:
;
子密钥子模块,用于基于所述加密参数、所述主密钥、所述公钥与所述私钥计算第
一子密钥 、第二子密钥 、第三子密钥 、第四子密钥 、第五子密钥 、第六子密钥
、第七子密钥 :
; ;
; ;
; ;
;
式中, 表示第一参数, 分别表示第二、第三、
第四、第五、第六、第七、第十素数, 表示匿名信息,表示随机数, 表示用户公钥,、
分别表示双线性映射、哈希函数, 表示调整因子, 分别表示第四、第
五、第六、第七参数;
解密密钥子模块,用于基于第一子密钥 第七子密钥 确定解密密钥 :
~
。
[0050] 所述解密模块6包括:本地子模块,用于基于所述解密密钥确定本地解密密钥 :
;
; ; ; ; ;
; ;
式中,表示盲化因子, 分别为第一 第七本地子密钥;
~
解密信息子模块,用于基于所述本地解密密钥 计算第一解密信息 、第二解密
信息 与第三解密信息 :
;
;
;
式中, 、 分别表示第三、第四、第五、第六、第七、
第八、第九密文数据,表示双线性映射;
解密子模块,用于基于所述第二解密信息 与第三解密信息 计算最终解密信
息 :
;
明文子模块,用于判断是否满足解密条件,若满足解密条件,则计算解密后的金融
明文数据 ,其中,解密条件为:
;
式中, 、 分别表示第一、第二密文数据, 为哈希函数。
[0051] 在本发明的另一些实施例中,本发明实施例提供以下技术方案,一种计算机,包括存储器102、处理器101以及存储在所述存储器102上并可在所述处理器101上运行的计算机程序,所述处理器101执行所述计算机程序时实现如上所述的金融数据加密方法。
[0052] 具体的,上述处理器101可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
[0053] 其中,存储器102可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器102可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器102可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器102可在数据处理装置的内部或外部。在特定实施例中,存储器102是非易失性(Non‑Volatile)存储器。在特定实施例中,存储器102包括只读存储器(Read‑Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read‑Only Memory,简称为PROM)、可擦除PROM(Erasable
Programmable Read‑Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable Programmable Read‑Only Memory,简称为EEPROM)、电可改写ROM(Electrically
Alterable Read‑Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random‑Access
Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为
DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic
Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存
(Synchronous Dynamic Random‑Access Memory,简称SDRAM)等。
[0054] 存储器102可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器101所执行的可能的计算机程序指令。
[0055] 处理器101通过读取并执行存储器102中存储的计算机程序指令,以实现上述金融数据加密方法。
[0056] 在其中一些实施例中,计算机还可包括通信接口103和总线100。其中,如图3所示,处理器101、存储器102、通信接口103通过总线100连接并完成相互间的通信。
[0057] 通信接口103用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。通信接口103还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
[0058] 总线100包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线100包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线100可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro Channel Architecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI‑Express(PCI‑X)总线、串行高级技术附件(Serial Advanced
Technology Attachment,简称为SATA)总线、视频电子标准协会局部(Video Electronics Standards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多
个以上这些的组合。在合适的情况下,总线100可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
[0059] 该计算机可以基于获取到金融数据加密系统,执行本发明的金融数据加密方法,从而实现金融数据加密。
[0060] 在本发明的再一些实施例中,结合上述的金融数据加密方法,本发明实施例提供以下技术方案,一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的金融数据加密方法。
[0061] 本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0062] 可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0063] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0064] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存
在矛盾,都应当认为是本说明书记载的范围。
[0065] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。