美文网首页密码学
「密码学」-Merkle-Hellman

「密码学」-Merkle-Hellman

作者: 雨落八千里 | 来源:发表于2019-09-26 23:23 被阅读0次

Merkle-Hellman背包密码体制

  • 加密:
    选择任何一个超递增集\{s_1,s_2,...,s_n\}陷门有任意大于\sum_is_i的素数p和任意小于p的整数a组成,这两个数和集合\{s_1,s_2,...,s_n\}都是保密的。公开的整数集是\{t_1,t_2,...,t_n\},其中t_i=a_i*s_i(mod\ \ \ p)。二进制明文(b_1,b_2,...,b_n)的加密操作为y=\sum_ib_it_i。整数y是密文。
  • 解密:
    找到a^{-1}(mod\ \ p)。因为p是质数,a^{-1}(mod\ \ p)一定存在。计算a^{-1}y (mod\ \ p)。得到a^{-1}y (mod\ \ p)这使得
    a^{-1}y=a^{-1}\sum_ib_it_i(mod\ \ p)=\sum_ib_i(a^{-1}as_i)(mod\ \ p)=\sum_ib_is_i
    因为集合\{s_1,s_2,...,s_n\}是超递增集,所以很容易定位明文位

超递增集:每一个整数都大于它前面整数之和
陷门:超递增集必须被隐藏在陷门后
a^{-1}(mod\ \ p)a^{-1}是a在模p的情况下的逆元

习题
  • 给定一个超递增集\{3,5,11,20,41,81,167,339\}和素数701以及一个整数a=223,构造一个Merkle-Hellman加密集\{t_i\}。对二进制消息(10011101)进行加密;并对密文进行解密。

依题意可知:
s=\{3,5,11,20,41,81,167,339\}
p=701,a=223
b=(10011101)

加密过程:
根据t_i=a_i*s_i(mod\ \ \ p),可以得到t=\{669,414,350,254,30,538,88,590\}
密文y=\sum_ib_it_i。可以得到y=2081

解密过程:
通过扩展欧几里得可以得到a在模p的情况下的逆元a^{-1}=679
所以\sum_ib_is_i=a^{-1}y=484
484=s_1+s_4+s_5+s_6+s_8
b=(10011101)

扩展欧几里得

#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
#define mod 1000000007
using namespace std;
void exgcd(ll a,ll b,ll &gcd,ll &x,ll &y)
{
   if(b==0)
   {
       gcd=a;
       x=1;
       y=0;
   }
   else
   {
       exgcd(b,a%b,gcd,y,x);
       y-=x*(a/b);
   }
}
ll inv(ll a,ll b)
{
   ll gcd,x,y;
   exgcd(a,b,gcd,x,y);
   return gcd==1?(x%b+b)%b:-1;
}
int main( )
{
   ll a,b;
   while(~scanf("%lld%lld",&a,&b))//a是被模数,b是模数,-->a%b
   {
       printf("%lld\n",inv(a,b));
   }
   return 0;
}

相关文章

  • 「密码学」-Merkle-Hellman

    背包密码体制加密:选择任何一个超递增集。陷门有任意大于的素数和任意小于的整数组成,这两个数和集合都是保密的。公开的...

  • 前后端数据传输安全——加密浅析

    加密 本文内容: 密码学起源 古典密码学 现代密码学 对称加密 非对称加密 数字签名 哈希 密码学起源: 在战争中...

  • 1.什么是密码学

    重点:密码学的主要功能及其含义现代密码学与信息安全的关系现代密码学的主要研究内容 1. 密码学定义 密码学是一个...

  • 关于区块链密码学

    什么是密码学 以下是密码学在维基百科中的解释: 密码学(英语:Cryptography)可分为古典密码学和现代密码...

  • 密码学基础知识

    密码学 推荐书籍 图解密码技术 结城浩 著 周自恒 译 密码学概览 密码学概览图密码学概览 消息的特性 机密...

  • iOS逆向攻防之密码学基础及RSA数学原理、Base64编码

    直接上密码学入门级知识部分,今天的内容如下: 一、密码学概述与发展历史 1、密码学的概述 2、密码学的主要发展历史...

  • IOS 逆向开发(一)密码学 RSA

    IOS 逆向开发(一)密码学 RSA 1. 密码学发展简介 密码学是指研究信息加密,破解密码的技术科学。密码学的起...

  • RSA加密

    一、密码学 密码学是指研究信息加密,破解密码的技术科学。密码学的起源可追溯到2000年前。而当今的密码学是以数学为...

  • 密码那些事儿|(二十八)战争对密码学的作用

    说完密码学对战争的作用,我们再来看看战争对密码学的影响。 在密码学的发展历史上,有这么一个规律 ——密码学总是在信...

  • 密码学-RSA

    密码学 密码学是指研究信息加密,破解密码的技术科学。密码学的起源可追溯到2000年前。而当今的密码学是以数学为基础...

网友评论

    本文标题:「密码学」-Merkle-Hellman

    本文链接:https://www.haomeiwen.com/subject/rotxuctx.html