1.一种基于分组密码算法的电子钱包生成方法,其特征是,包括以下步骤:通过运用分组长度为16字节的分组密码,组合其输出,形成28、32字节伪随机序列,实现用16字节分组密码建构数字钱包,具体为:获取电子钱包用户的随机种子,所述随机种子的序列长度和所用分组密码的密钥长度相关;所述随机种子由序列表示,当电子钱包是基于密钥长度k≥24字节的分组密码Ek建构时,序列长度为32字节,当电子钱包基于密钥长度为16字节的分组密码E16建构时,序列长度为28字节;根据随机种子,生成钱包主密钥,所述钱包主密钥的内容包含链码、数字签名私钥以及与数字签名私钥对应的数字签名系统公钥,三者的长度和分组密码的密钥长度相关;根据钱包主密钥,生成实际收发账的密钥,所述密钥包括多次会话密钥,每次的会话密钥均包含整数表示的数字签名私钥,及与其对应的数字签名公钥;当电子钱包基于密钥长度k≥32字节的分组密码Ek建构时,钱包主密钥内容包括一个32字节链码、一个32字节无符号整数表示的数字签名私钥、与之对应的数字签名系统公钥;生成方法包括:令s=k-32,计算mchL = Ek(seed || [0]_s, [0]_1 || [0]_15),mchR= Ek(seed || [0]_s, [0]_1 || [1]_15),mch = mchL || mchR,msk1 = Ek(seed ||[0]_s, [0]_1 || [2]_15),msk2 = Ek(seed || [0]_s, [0]_1 || [3]_15),msk = Num_p256(msk1 || msk2),mpk = msk×G256;当电子钱包基于密钥长度24字节的分组密码E24建构时,钱包主密钥内容包括一个32字节链码、一个32字节无符号整数表示的数字签名私钥、与之对应的数字签名系统公钥;生成方法为:计算seedL=msb_24(seed),seedR=lsb_8(seed),mchL = E24(seedL,[0]_1 || [0]_7 || seedR) xor ([0]_1 || [0]_7 || seedR),mchR = E24(seedL, [0]_1 || [1]_7 || seedR) xor ([0]_1 || [1]_7 || seedR),mch = mchL || mchR,msk1 =E24(seedL, [0]_1 || [2]_7 || seedR) xor ([0]_1 || [2]_7 || seedR),msk2 = E24(seedL, [0]_1 || [3]_7 || seedR) xor ([0]_1 || [3]_7 || seedR),msk = Num_p256(msk1 || msk2),mpk = msk×G256;当电子钱包基于密钥长度16字节的分组密码E16建构时,钱包主密钥内容包括一个28字节链码、一个28字节无符号整数表示的数字签名私钥,以及与之对应的数字签名系统公钥;生成方法为:计算seedL=msb_16(seed),seedR=lsb_12(seed),mchL = E16(seedL,[0]_1 || [0]_3 || seedR) xor ([0]_1 || [0]_3 || seedR),mchR = lsb_12( E16(seedL, [0]_1 || [1]_3 || seedR) xor ([0]_1 || [1]_3 || seedR)),mch = mchL ||mchR,msk1 = E16(seedL, [0]_1 || [2]_3 || seedR) xor ([0]_1 || [2]_3 ||seedR),msk2 = lsb_12( E16(seedL, [0]_1 || [3]_3 || seedR) xor ([0]_1 || [3]_3|| seedR)),msk = Num_p224(msk1 || msk2),mpk = msk×G224。
2.如权利要求1所述的一种基于分组密码算法的电子钱包生成方法,其特征是,计算钱包主密钥内容时,将随机种子的序列写成两个部分,分别计算每个部分的链码和数字签名私钥,融合各部分,形成最终的链码和数字签名私钥,根据最终的数字签名私钥生成最终的数字签名系统公钥。
3.如权利要求2所述的一种基于分组密码算法的电子钱包生成方法,其特征是,当基于密钥长度k≥32字节的分组密码Ek建构时,对1≤i≤2 40 ,第i次会话密钥(ski, pki)的计算过程为:令s=k-32,s≥0,计算deltaiL = Ek(mch || [0]_s, [1]_1 || [i-1]_15), deltaiR= Ek(mch || [0]_s, [2]_1 || [i-1]_15), deltai = Num_p256(deltaiL || deltaiR),ski = (msk + deltai) mod p256,pki = ski G256。
4.如权利要求2所述的一种基于分组密码算法的电子钱包生成方法,其特征是,当基于密钥长度24字节的分组密码E24建构时,对1≤i≤2 40 ,第i次会话密钥(ski, pki)的计算过程包括:deltaiL = E24(mchL, [1]_1 || [i-1]_7 || mchR) xor ([1]_1 || [i-1]_7 ||mchR),deltaiR = E24(mchL, [2]_1 || [i-1]_7 || mchR) xor ([2]_1 || [i-1]_7 ||mchR), deltai = Num_p256(deltaiL || deltaiR), ski = (msk + deltai) mod p256,pki = ski×G256。
5.如权利要求2所述的一种基于分组密码算法的电子钱包生成方法,其特征是,当基于密钥长度16字节的分组密码E16建构时,1≤i≤2 24 ,第i次会话密钥(ski, pki)的计算过程包括:deltaiL = E16(mchL, [1]_1 || [i-1]_3 || mchR) xor ([1]_1 || [i-1]_3 ||mchR), deltaiR = lsb_12( E16(mchL, [2]_1 || [i-1]_3 || mchR) xor ([2]_1 ||[i-1]_3 || mchR) ), deltai = Num_p224(deltaiL || deltaiR), ski = (msk +deltai) mod p224,pki = ski G224。
6.一种基于分组密码算法的电子钱包生成系统,其特征是,包括:随机种子获取模块,被配置为获取电子钱包用户的随机种子,所述随机种子的序列长度和所用分组密码的密钥长度相关;所述随机种子由序列表示,当电子钱包是基于密钥长度k≥24字节的分组密码Ek建构时,序列长度为32字节,当电子钱包基于密钥长度为16字节的分组密码E16建构时,序列长度为28字节;钱包主密钥生成模块,被配置为根据随机种子,生成钱包主密钥,所述钱包主密钥的内容包含链码、数字签名私钥以及与数字签名私钥对应的数字签名系统公钥,三者的长度和分组密码的密钥长度相关;当电子钱包基于密钥长度k≥32字节的分组密码Ek建构时,钱包主密钥内容包括一个32字节链码、一个32字节无符号整数表示的数字签名私钥、与之对应的数字签名系统公钥;生成方法包括:令s=k-32,计算mchL = Ek(seed || [0]_s, [0]_1 || [0]_15),mchR= Ek(seed || [0]_s, [0]_1 || [1]_15),mch = mchL || mchR,msk1 = Ek(seed ||[0]_s, [0]_1 || [2]_15),msk2 = Ek(seed || [0]_s, [0]_1 || [3]_15),msk = Num_p256(msk1 || msk2),mpk = msk×G256;会话密钥生成模块,被配置为根据钱包主密钥,生成实际收发账的密钥,所述密钥包括多次会话密钥,每次的会话密钥均包含整数表示的数字签名私钥,及与其对应的数字签名公钥。