密码学
文章平均质量分 70
RSABLOCKCHAIN
Anything is possible.
展开
-
先加密后签名还是先签名后加密?
先说结论,签名算法计算出来的签名是为了验证消息的完整性,签名算法有比如HMAC-SHA256,加密算法则是为了保证消息的机密性,类似AES-GCM、AES-CBC,这两种加密算法的安全性并不一致。GCM的填充方式更加的安全,CBC则不然。如果先加密的话,因为加密之后值会随着随机因子的变化而变化,此时去校验加密之后密文的完整性是没有意义的,因为你只能校验加密之后密文的完整性,而加密之后密文的完整性是可以通过解密的过程来校验的。那谁来校验加密之前的消息的完整性呢?假设是先加密后签名,会发生什么事情?原创 2023-08-24 15:40:12 · 2676 阅读 · 0 评论 -
零知识证明技术概述
零知识证明又被称为零知识协议,利用数学知识在双方不需要直接传递信息本身的前提下来验证信息的正确性。这个思想首先被发表在1985年出版的MIT的论文里。原创 2023-08-06 17:32:13 · 791 阅读 · 1 评论 -
RSA原理
M *(1 + N的倍数)^{k} + N的倍数^d。= M^{kφ(N) + 1} + N的倍数^d。= M * M^{kφ(N)} + N的倍数^d。= M * M^{φ(N)K} + N的倍数^d。攻击者要破解C得到M,必须要知道d,攻击者只能拿到N、e、C。= M^{ed} + N的倍数^d。C^d = (M^e + N的倍数)^d。-> 要知道φ(N),必须要知道P、Q。原创 2023-07-16 22:33:46 · 392 阅读 · 0 评论 -
【ECDH java后端和javaScript前后端互通实现】
Elliptic-curve Diffie-Hellman(ECDH)是一种通过两方达成密钥协商的密钥生成算法,每一方都有一个椭圆双曲线的公私钥对,双方在不安全的通信通道间传递信息达成密钥生成协议。在初始时刻,Alice和Bob共享了些域的参数(p a,b,G,n,h),Alice在整数范围[t,n-1]中随机选择一个私钥d,并通过计算(Q=d·G)web前端和后端之间的通信不一定可靠,如果不方便使用预共享密钥的方式完成身份的确认,那么可以使用ECDH密钥协商算法在前端和后端进行密钥间的协商。原创 2022-12-12 00:33:59 · 1314 阅读 · 0 评论 -
https会话过程详解
这里写自定义目录标题https预置条件httpshttp协议无法证明客户端和服务器的合法性,客户端可以接受所有服务的response,服务器也可以接受所有客户端的request,无法抵御中间人攻击,为了解决这个问题https协议就诞生了,https协议就是http协议在应用层和传输层之间加了一层SSL层,该层即对应用层传输内容进行加密,具体过程如下图所示:预置条件客户端和服务器端需要预制证书,该证书由可信第三方机构颁发,具体过程见下一篇博客。使用该证书可以用来验证请求是否合法。...原创 2021-09-05 23:40:48 · 412 阅读 · 0 评论 -
golang将pkcs1格式的公钥转换为pkcs8格式的公钥
前言在工作中遇到golang编写的sdk作为客户端,java语言编写程序作为服务器端的情况,需要使用go生成一个RSA公钥发送给服务器端,此公钥用于加密某些消息,使用的是RSAOAEP的相关算法,该具体算法包含了两次哈希函数,建议都采用sha256作为哈希的函数。具体互通方法我会在后续博客中更新。此文主要介绍将pkcs1格式的公钥转成pkcs8格式公钥的方法。密钥格式下表为常见的密码学术语:TermDefinitionPKIPublic Key Cryptography. Pu原创 2020-12-23 00:03:56 · 2104 阅读 · 3 评论