自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Java的ProcessBuilder类

Java中的ProcessBuilder类用于创建进程,可以启动一个进程,并与之进行交互。:创建一个新的ProcessBuilder对象,使用指定的命令和参数。start():使用此ProcessBuilder创建一个新进程,并返回一个表示该进程的Process对象。:合并标准错误流和标准输出流,如果为true,则将标准错误流合并到标准输出流中,否则将标准错误流和标准输出流分别处理。:设置此ProcessBuilder的工作目录,即运行进程时的当前目录。:返回此ProcessBuilder的环境变量映射。

2023-03-28 22:07:35 1401

原创 Ubuntu的一些使用

上述方式可以开放指定的端口,但是如果服务器重启,不会保存,所以我们需要对上述规则进行一下持续化操作。此时如果直接输入ifconfig命令是会报错的,我们需要先下载一个工具包。1、首先安装iptables(一般情况,ubuntu默认是安装好的)下载完成之后,就可以使用ifconfig命令来查看ip地址了。2、安装完成后,开放指定端口,如8080,使用一下命令。

2023-03-27 23:02:03 69

原创 命令行常用指南

在很多关于命令行的文档中,经常会见到命令行中出现方括号尖括号等内容,对其含义在此处说明。方括号中的内容不是必填的。尖括号中的内容是必填的。

2023-03-03 20:54:38 89

原创 怎么Git

怎么Git下载一个git链接:https://git-scm.com/下载一个小乌龟链接:https://tortoisegit.org/download/[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayHNHAwL-1650702409268)(C:\Users\dryan\AppData\Roaming\Typora\typora-user-images\image-20220422211510274.png)]下载框框里面那俩安装一直下一步即可创建分支

2022-04-23 22:23:18 253

原创 secp256k1的结构——ECDH密钥交换

2021SC@SDUSCsecp256k1的结构——公钥恢复与密钥交换公钥恢复共享密钥其实公钥恢复和共享密钥并没有实质性的关联,之所以把这两个放在一篇写,是因为这两个部分内容有点少,分开写的话都凑不出一篇。公钥恢复RecoveryIdTag used for public key recovery from signatures.impl RecoveryId { /// Parse recovery ID starting with 0. pub fn parse(p: u8)

2021-12-26 20:36:31 10266

原创 secp256k1的结构——数字签名(下)

2021SC@SDUSCsecp256k1的结构——数字签名(下)数字签名Signature数字签名Signatureimpl Signature { /// Parse an possibly overflowing signature.A SECP256K1 signature is usually required to be within 0 and curve order. This function, however, allows signatures larger than c

2021-12-12 20:49:55 8728

原创 secp256k1的结构——数字签名(上)

2021SC@SDUSCsecp256k1的结构——数字签名DER签名数字签名SignatureDER签名数字签名Signature/// An ECDSA signature.pub struct Signature { pub r: Scalar, pub s: Scalar,}impl Signature { /// Parse an possibly overflowing signature. /// /// A SECP256K1 sign

2021-12-12 16:48:39 8953

原创 secp256k1的结构——私钥

2021SC@SDUSCsecp256k1的结构——私钥

2021-12-05 22:06:20 2643

原创 secp256k1的结构——公钥

2021SC@SDUSCsecp256k1的结构——公钥公钥解析的格式Raw public key原始公钥Full length public key未压缩公钥Compressed public key压缩公钥公钥PublicKey总述公钥生成函数反序列化序列化调整结合本文将介绍secp256k1定义的公钥结构,主要介绍公钥的三种格式以及公钥相应的函数实现。公钥解析的格式公钥的格式下面例举了三种,分别是Compressed、Full和Raw:pub enum PublicKeyFormat {

2021-11-28 22:02:55 1631

原创 secp256k1的结构——哈希摘要

2021SC@SDUSCimpl Message { pub fn parse(p: &[u8; util::MESSAGE_SIZE]) -> Message { let mut m = Scalar::default(); // Okay for message to overflow. let _ = m.set_b32(p); Message(m) } pub fn parse_slice(

2021-11-20 17:22:28 2530

原创 secp256k1曲线Curve结构定义——两种运算类型的实现

2021SC@SDUSCsecp256k1曲线Curve结构定义——两种运算类型的实现ScalarECMultContext签名验证verify公钥恢复recoverECMultGenContext签名sign在libsecp256k1比特币密码算法开源库(五)中介绍了签名验证、公钥恢复和数字签名的数理逻辑,在具体代码实现中对aP+bGaP + bGaP+bG类型和aGaGaG类型(即标题中的两种运算类型)的运算进行了一定的提速。在数理逻辑中曾经介绍过,签名验证和公钥恢复中有一步需要计算一个点QQQ,

2021-11-13 21:05:37 3269

原创 密码学数论

密码学数论素数费马小定理欧拉定理欧拉函数欧拉定理素性检验Fermat素性检验Miller Rabin素性检验中国剩余定理离散对数整理一下常用的密码学数论知识,不定期更新完善校正……素数任意整数a>1a >1a>1都可以唯一地因子分解为a=p1α1×p2α2×…×ptαta = p_1^{\alpha _1}×p_2^{\alpha _2}×… × p_t^{\alpha _t}a=p1α1​​×p2α2​​×…×ptαt​​,其中p1,p2,…,ptp_1,p_2 ,…,p_tp1​

2021-11-10 08:30:42 399

原创 secp256k1曲线Curve结构定义——域元素的运算与压缩存储

Field域元素FieldStorage域元素紧凑存储在libsecp256k1中对域元素进行了定义,其中Field定义secp256k1的有限域GFpGF(p)GFp元素,为了方便进行域下的模加法和模乘法运算,在libsecp256k1库中定义的Field元素是320位,并不是常见的256位。在进行相应的运算结束后会在中实现紧凑的域元素存储,将Field中的元素压缩为256位,便于存储。由于域元素都是长达256位的大整数,对大整数的存储采用数组来实现,在有的资料中也将这个过程称为序列化。

2021-11-07 21:55:05 2273 1

原创 secp256k1曲线Curve结构定义——坐标转换

Curve曲线结构Affine 仿射坐标Jacobian加重射影坐标本篇将介绍libsecp256k1中如何定义Affine坐标和Jacobian加重射影坐标,并实现其相应的函数。椭圆曲线——从仿射坐标到雅可比坐标的转换中写的比较详细了,有需要可以去了解一下。包(package):一个用于构建、测试并共享crate的Cargo功能。单元包(crate):一个用于生成library(库)或可执行文件的树形模块结构。模块(module)、use:控制代码结构、作用域及路径的私有路径。路径(path)

2021-10-25 21:30:46 1462

原创 椭圆曲线——从仿射坐标到雅可比坐标的转换

2021SC@SDUSC曲线Curve结构定义一级目录/// Curve related structs.pub mod curve { pub use crate::{ field::{Field, FieldStorage}, group::{Affine, AffineStorage, Jacobian, AFFINE_G, CURVE_B}, scalar::Scalar, }; pub use crate::ecmul

2021-10-24 21:57:49 10670 3

原创 椭圆曲线数字签名应用原理

深入理解数字签名收发文件场景下的数字签名区块链场景下的数字签名收发文件场景下的数字签名比特币区块链场景下的数字签名

2021-10-22 17:54:39 648

原创 libsecp256k1代码分析综述

由于本人目前对这个项目整体认识不足,所以这一篇会随着我对后续代码细节理解的加深随时更改,后续的几篇会详细分析secp256k1开源库实现上述五个功能的代码段以及所用到的各种算法。先求斜率l,P点纵坐标减Q点纵坐标再乘以P点横坐标减Q点横坐标模p的乘法逆元,最后结果再对p取模。如果P和Q是相反的点,那么两点的纵坐标之和等于p,模p的结果为0,可以直接返回结果为无穷远点;如果P和Q是相同的点,那么两点的纵坐标之和模p的结果一定不为0,就对自身(P或Q)取二倍。P和Q是同一个点,横纵坐标一致;

2021-10-20 20:41:37 805

原创 ECDSA和ECDH原理

ECDSA原理secp256k1的参数签名验签ksecp256k1的参数签名验签k

2021-10-18 11:20:03 1295

原创 ECDSA的底层数学原理(下)——有限域下的椭圆曲线

2021SC@SDUSCECDSA的底层数学原理(下)模运算和有限域二级目录在上一篇中介绍了椭圆曲线的相关运算,但在实际的加密过程中使用的是离散量而不是连续量(这是由小数不能参加模运算决定的),因此不能使用椭圆曲线方程y^2 = x^3 +ax + b 。我们说的ECDSA椭圆曲线数字签名算法要使用如下方程:由于该图像不再是连续图像,因此呈现在坐标系中是离散的点,直观上看上去不再是“椭圆曲线”,但是连续椭圆曲线图像的一些性质还在这个方程中得以保留。模运算和有限域二级目录...

2021-10-16 22:14:05 1212

原创 ECDSA的底层数学原理(上)——实数域下的椭圆曲线

2021SC@SDUSC这里写目录标题一级目录一级目录一级目录一级目录比特币中的非对称加密实现使用的是ECDSA椭圆曲线,曲线的参数采用secp256k1算法生成。一级目录一级目录

2021-10-16 08:51:07 1824

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除