Snooper中的PQC使用说明
本手册中涉及的Snooper版本为0.0.6.7。
目 录
1.1打开snooper.exe,选择“Calculate 2”
PQC(后量子密码)是抵御量子计算攻击的公钥密码技术,其安全基础为量子计算机无法有效求解的数学困难问题(如格理论、多变量方程) 。该技术通过重构经典密码算法结构,防御量子计算机利用Shor算法破解传统公钥密码体系
本PQC工具实现了fips-203, 204, 205三个功能,每个功能包括生成密钥对、读取生成的密钥对,对数据进行封装、解封或签名、验签。
Snooper 0.0.6.7版本中也加入了PQC全套的功能,下面对如何使用进行简单介绍。


可以输入D和Z值,也可以生成一个随机的D或Z。
点击“生成512”,则会生成EK和DK。

填入随机数,明文信息,则可进行封装操作,封装会产生封装结果和共享密钥。
点击解封按钮,则会对封装结果进行解封,并产生共享密钥,两个共享密钥应该是一致的。




本界面也有多个页面,也可以上下拖动内容。
Snooper最大的优势在于脚本,拥有大量可靠的、实用的函数,下面以加密、解密为例,介绍一下Snooper脚本。
打开脚本

将下面的脚本填入新打开的窗口中

|
clear
d = dup( 32, 11 ) z = dup( 32, 22 )
m = "this is my message" // 填充到32字节 m = pack00_len( $m, 20 )
x = fips203_keygen_512( $d, $z ) if $x != 00 ? pause endif
ek = fips203_get_ek() dk = fips203_get_dk()
c = fips203_encaps_512( $m, $ek ) sharekey1 = fips203_get_en_sharekey()
m1 = fips203_decaps_512( $c, $dk ) sharekey2 = fips203_get_de_sharekey()
// 带检查的解密 m2 = fips203_decaps_512( $c, $dk, $ek )
if $m != $m1 ? pause endif
if $m != $m2 ? pause endif
if $sharekey1 != $sharekey2 ? pause endif
clear
seed = random( 32 )
x = fips204_keygen_44( $seed ) if $x != 00 ? pause endif
sk = fips204_get_sk() pk = fips204_get_pk()
m = random( 32 ) rnd = random( 32 ) ctx = random( 32 )
// 对明文操作 sig = fips204_sign_44( $m, $sk, $ctx, $rnd, "" )
res = fips204_verify_44( $m, $sig, $pk, $ctx, "" ) if $res != 00 ? pause endif
// 对hash操作 h = fips204_prehash_sha256( $m, $ctx )
sig = fips204_sign_hash_44( $h, $sk, $rnd, "" )
res = fips204_verify_hash_44( $h, $sig, $pk, "" ) if $res != 00 ? pause endif
clear
sk_seed = random( 16 ) sk_prf = random( 16 ) pk_seed = random( 16 )
rnd = random( 16 ) m = random( 32 ) ctx = random( 32 )
// 生成密钥 x = fips205_keygen_sha2__128f( $sk_seed, $sk_prf, $pk_seed ) if $x != 00 ? pause endif
sk = fips205_get_sk() pk = fips205_get_pk()
// 对明文签名 sig = fips205_sign_sha2__128f( $m, $sk, $ctx, $rnd )
res = fips205_verify_sha2__128f( $m, $sig, $pk, $ctx ) if $res != 00 ? pause endif
// 对hash签名 h = fips204_prehash_sha512( $m, $ctx )
sig = fips205_sign_hash_sha2__128f( $h, $sk, $rnd )
res = fips205_verify_hash_sha2__128f( $h, $sig, $pk ) if $res != 00 ? pause endif
|

按F10逐行执行

或按F5全速执行。