利索能及
我要发布
收藏
专利号: 2022107575362
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-30
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于区块链交易的无载体隐写方法,其特征在于:该方法包括以下步骤:(1)发送方地址A00生成n个兄弟地址A01,A02,...,A0n,n为兄弟地址的数量,生成一个儿子地址A10,A10生成n个兄弟地址A11,A12,...,A1n;

A00的私钥sk00是一个随机产生的二进制串,发送方地址A00的兄弟地址A01的私钥sk01使用sk00和密钥psk0生成,地址A01的兄弟地址A02的私钥sk02使用sk01和密钥psk0生成;

A00的公钥pk00由sk00通过椭圆曲线加密算法生成,地址A00的儿子地址A10的私钥sk10使用sk00和密钥psk1生成,地址A10的兄弟地址A11的私钥sk11使用sk10和密钥psk0生成;

对于A00的兄弟地址A01,私钥生成具体过程为:

sk00=sk00||psk0

sk=connect(sk00,S0,S1)

其中,||是或运算;sk是sk00填充后的比特流,其长度满足512的最低倍数;sk00长度为

256bit;S0是填充数据,其长度加上sk00长度满足对512取模后余数为448;S1是sk00的长度,用64位二进制表示;connect(sk00,S0,S1)是连接函数,用于对sk00,S0和S1进行拼接;

设定如下迭代公式:

W[j]=W[j‑2]+W[j‑7]+σ0(W[j‑15])+W[j‑16]填充后的512位sk分成16个32bit二进制流W[0]到W[15],每个二进制流长32bit,通过迭代公式构造48个二进制流W[16]到W[63],48个二进制流长也是32bit,σ(x)是逻辑函数,对32位二进制流进行操纵,并输出32位二进制流,定义如下:

7 18 3

σ(x)=S(x)⊕S (x)⊕R(x)

i j

其中,x是32bit二进制流;S(x)是x循环右移i位,R(x)是x右移j位;⊕是异或运算;

设a,b,c,d,e,f,g,h是私钥的组成部分,分别为私钥第一到第八个中间变量,其大小均为32bit;a,b,c,d,e,f,g,h的初始值是自然数中前8个质数,即2,3,5,7,11,13,17,19的平方根的小数部分取前32bit;a,b,c,d,e,f,g,h的迭代过程如下:h=g,g=f,f=e

e=d+h+e+K[j]+W[j]

d=c,c=b,b=a

a=h+e+K[j]+W[j]+a

其中,K[j]是自然数中前64个质数的立方根的小数部分取前32bit;对a,b,c,d,e,f,g,h进行64次迭代后,最终a,b,c,d,e,f,g,h合并成的256bit数据为A01的私钥;

A01的公钥pk01由A01的私钥sk01通过椭圆曲线加密算法生成;对于A00的儿子地址A10,私钥由A00的私钥和密钥psk1生成步骤(1)包括:A00的私钥sk00是一个随机产生的二进制串,发送方地址A00的兄弟地址A01的私钥sk01使用sk00和密钥psk0生成,地址A01的兄弟地址A02的私钥sk02使用sk01和密钥psk0生成;

A00的公钥pk00由sk00通过椭圆曲线加密算法生成,地址A00的儿子地址A10的私钥sk10使用sk00和密钥psk1生成,地址A10的兄弟地址A11的私钥sk11使用sk10和密钥psk0生成;

对于A00的兄弟地址A01,私钥生成具体过程为:

sk00=sk00||psk0

sk=connect(sk00,S0,S1)

其中,||是或运算;sk是sk00填充后的比特流,其长度满足512的最低倍数;sk00长度为

256bit;S0是填充数据,其长度加上sk00长度满足对512取模后余数为448;S1是sk00的长度,用64位二进制表示;connect(sk00,S0,S1)是连接函数,用于对sk00,S0和S1进行拼接;

设定如下迭代公式:

W[j]=W[j‑2]+W[j‑7]+σ0(W[j‑15])+W[j‑16]填充后的512位sk分成16个32bit二进制流W[0]到W[15],每个二进制流长32bit,通过迭代公式构造48个二进制流W[16]到W[63],48个二进制流长也是32bit,σ(x)是逻辑函数,对32位二进制流进行操纵,并输出32位二进制流,定义如下:

7 18 3

σ(x)=S(x)⊕S (x)⊕R(x)

i j

其中,x是32bit二进制流;S(x)是x循环右移i位,R(x)是x右移j位;⊕是异或运算;

设a,b,c,d,e,f,g,h是私钥的组成部分,分别为私钥第一到第八个中间变量,其大小均为32bit;a,b,c,d,e,f,g,h的初始值是自然数中前8个质数,即2,3,5,7,11,13,17,19的平方根的小数部分取前32bit;a,b,c,d,e,f,g,h的迭代过程如下:h=g,g=f,f=e

e=d+h+e+K[j]+W[j]

d=c,c=b,b=a

a=h+e+K[j]+W[j]+a

其中,K[j]是自然数中前64个质数的立方根的小数部分取前32bit;对a,b,c,d,e,f,g,h进行64次迭代后,最终a,b,c,d,e,f,g,h合并成的256bit数据为A01的私钥;

A01的公钥pk01由A01的私钥sk01通过椭圆曲线加密算法生成;对于A00的儿子地址A10,私钥由A00的私钥和密钥psk1生成;

(2)发送方将信息嵌入到zcash系统的交易金额里,随机选择A00,A01,...,A0n中的一个地址发送带有信息的金额给A10,A11,...,A1n中的一个地址,接收方通过链上监控地址和地址是否交易,从交易金额里提取信息。

2.根据权利要求1所述的基于区块链交易的无载体隐写方法,其特征在于:步骤(2)zcash系统中,拥有私钥的一方有权查看地址和交易金额,并且交易存储在区块链上;

zcash交易的输入输出是note,note=(pk,v,r);其中,pk为发送方的公钥,v是金额,r是区分该note的序列号;note的hash值commitment作为对资产的声明;

交易过程中不存在交易接收者的地址信息,交易的验证过程利用同态隐藏技术。

3.根据权利要求1所述的基于区块链交易的无载体隐写方法,其特征在于:步骤(2)嵌入和提取信息过程为:发送方首先通过链下和接收方共享自己的私钥sk00、密钥psk0和psk1,生成兄弟地址的数量n;

发送方选择A00和它的兄弟地址中任意一个地址对A10和它的兄弟地址中任意一个地址交易,秘密信息作为交易金额;

接收方事先收到发送方的私钥sk00、密钥psk0、psk1和生成兄弟地址的数量n,通过区块链浏览器监控A00和它的兄弟地址对A10和它的兄弟地址是否进行交易判断发送方是否嵌入消息;

若判断已嵌入信息,通过事先与发送方约定好的地址生成方法,监控发送方所有的地址是否交易,即可从交易金额中提取信息。