-
Reed-Solomon纠删码简析
Reed-Solomon编码(又叫RS编码、里德-所罗门编码)作为一种前向纠错编码,是一种很常见的数据冗余技术,也就是通过对数据增加冗余部分来保证当数据丢失时能够在一定程度上进行恢复。最典型的应用就是在现在最流行的QR二维码的编码设计中。 实现功能 他所解决的问题是:给定$n$个数据块$(d_1,d_2,d_3,...,d_n)$,对于一个确定的正整数$m$, RS编码能够根据这$n$个数据块生成$m$个校验块, $(c_1, c_2,..., c_m)$。 我们能够做到,从这$m+n$…
-
MD5算法应用
MD5(Message-Digest Algorithm 5)算法是一种非常常见的信息摘要hash算法,一般可以用来进行数字签名,或者理解成为一种压缩算法。他的本质是一种分组加密算法。百度上对MD5算法简要的叙述为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。用十六进制表示的话,每四位变成一个十六进制数,这样也就是生成了总共为32位的十六进制数,即MD5码。…
-
Elgamal加密与签名算法简述
简述 ElGamal算法,是由T.Elgamal于1984年提出的公钥密码体制和椭圆曲线加密体系。既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题即CDH假设。在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K,其实现依据是求解离散对数是困难的,而其逆运算指数运算可以应用快速幂的方法有效地计算。也就是说,在适当的群G中,指数函数是单向函数。 用于签名 1. 生成密钥: 确定一个大素数$p$和它的一个原根$g$,在$Z_p$域上…
-
Shamir密钥分享算法简析
简述 秘密共享技术是密码学和信息安全的一个重要研究内容,$Shamir$密钥分享算法最早是由$Shamir$和$Blackly$在1970年基于$Lagrange$插值和矢量方法提出的,其基本思想是分发者通过秘密多项式,将秘密$s$分解为$n$个秘密分发个持有者,其中任意不少于$k$个秘密均能恢复密文,而任意少于$k$个秘密均无法得到密文的任何信息。 实际应用 比如在门限体系中,为了保证信息安全性,一个秘密通常不能由单个持有者保存。比如一些重要场所的通行,比如遗嘱的生效等,必须将秘密分由…