ecc小示例

来源:互联网 发布:松江主机编程说明 编辑:程序博客网 时间:2024/06/05 07:59

0001    clear
0002    
0003    set ecc_curve_id = 409
0004    
0005    generate ecc_keypair 0, 1, 2, 3
0006    
0007    message "公钥是          "     $data[ 0 ]
0008    
0009    message "私钥是          "     $data[ 1 ]
0010    
0011    message "P是             "     $data[ 2 ]
0012    
0013    message "n是             "     $data[ 3 ]
0014    
0015    set data[ 8 ] = $data[ 3 ]
0016    set data[ 8 ] = add( $data[ 8 ], 01 )
0017    set data[ 8 ] = $data[ 8 ] $data[ 8 ] $data[ 8 ] $data[ 8 ]
0018    
0019    message "明文是          "     $data[ 8 ]
0020    
0022    
0023    set data[ 20 ] = random( 23 )            //这样肯定小于N - 1
0024    
0025    set data[ 20 ] = 00 $data[ 20 ]
0026    
0027    message "随机数是        " $data[ 20 ]
0028    
0029    set data[ 9 ] = ecc_pub_encode( $data[ 8 ], $data[ 0 ],  $data[ 20 ] )
0030    message $data[ 9 ]
0031    
0032    //              ecc_pri_decode( 密文,       私钥 )
0033    set data[ 10 ] = ecc_pri_decode( $data[ 9 ], $data[ 1 ] )
0034    
0035    message $data[ 10 ]
0036    
0037    if $data[ 8 ] == $data[ 10 ]
0038        message "ecc 初步加解密成功"
0039    else
0040        message "ecc 失败"
0041        pause
0042    endif
0043    
0044    end
0045    

运行结果


//
[-]==========================[X]
//
|公钥是          433BC80B3D70465B1C832CB96E1F5D40C1FBF63890EF72A5131D8023CCB04F513CB65E4F2FA1A130A02636F3A2245ABF
//
[-]==========================[-]

//
[-]==========================[X]
//
|私钥是          A1309AB1E62338C3FDD2326C1A1A6BEEFA5D88A1
//
[-]==========================[-]

//
[-]==========================[X]
//
|P是             188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811
//
[-]==========================[-]

//
[-]==========================[X]
//
|n是             FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831
//
[-]==========================[-]

//
[-]==========================[X]
//
|明文是          

FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832

//[-]==========================[-]

//
[-]==========================[X]
//
|随机数是        00492C4E3A6E18BC96AAB91515CBB92AD6C7473F9EA06A0E
//
[-]==========================[-]

//
[-]==========================[X]
//
|D508BC5DA9F522E494C329E391B7FE43A240AD1FEB0BCF882EB0A8559BDBD05B29ADC2CA553E230A8898788CF108CD9C42A73A59CE983F425BAFE463E46282DF23CABA12C768BBD421FBCEFA7D275ED76BECC8D8501D1E18C3CC9E73EF1F2A7CD508BC5DA9F522E494C329E391B7FE43A240AD1FEB0BCF882EB0A8559BDBD05B29ADC2CA553E230A8898788CF108CD9C42A73A59CE983F425BAFE463E46282DF23CABA12C768BBD421FBCEFA7D275ED76BECC8D8501D1E18C3CC9E73EF1F2A7C
//
[-]==========================[-]

//--
//              ecc_pri_decode( 密文,       私钥 )
//
[-]==========================[X]
//
|FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22832
//
[-]==========================[-]

//
[-]==========================[X]
//
|ecc 初步加解密成功
//
[-]==========================[-]

//
结束,当前行 44