首页 > 其他分享 >cryptohack wp day(8)

cryptohack wp day(8)

时间:2023-05-11 23:57:24浏览次数:39  
标签:Hellman 原根 cryptohack Alice 密钥 wp Diffie Bob day

(Diffie-Hellman Starter 1)


这里主要讲Diffie-Hellman协商算法,推荐一位佬的博客:https://www.cnblogs.com/qcblog/p/9016704.html

这道题求逆,这里直接给代码:


from sympy import mod_inverse

p = 991
g = 209

d = mod_inverse(g, p)

print(d) 

Diffie-Hellman Starter 2


给出代码:
求原根
在一个模数为p的剩余系中,如果存在一个整数g,它的幂可以生成整个剩余系,那么g就被称为p的一个原根。

简单来说,如果g是p的原根,那么对于任意一个a(1<=a<=p-1),都可以找到一个整数k,使得g^k ≡ a (mod p)。

求解一个数的原根通常需要用到数论中的一些性质和算法,比较常用的有原根判别法和试除法。另外,对于一些已知的特殊模数,如素数和Carmichael数,它们的原根已经被研究得比较清楚,可以直接查表使用。

如果模数p的原根存在,那么它是唯一的,且p的原根的个数为φ(φ(p)),其中φ为欧拉函数。

from sympy.ntheory import is_primitive_root

p = 28151
g = 2

while not is_primitive_root(g, p):
    g += 1

print(g)

Diffie-Hellman Starter 3

g = 2
p = 2410312426921032588552076022197566074856950548502459942654116941958108831682612228890093858261341614673227141477904012196503648957050582631942730706805009223062734745341073406696246014589361659774041027169249453200378729434170325843778659198143763193776859869524088940195577346119843545301547043747207749969763750084308926339295559968882457872412993810129130294592999947926365264059284647209730384947211681434464714438488520940127459844288859336526896320919633919
a = 972107443837033796245864316200458246846904598488981605856765890478853088246897345487328491037710219222038930943365848626194109830309179393018216763327572120124760140018038673999837643377590434413866611132403979547150659053897355593394492586978400044375465657296027592948349589216415363722668361328689588996541370097559090335137676411595949335857341797148926151694299575970292809805314431447043469447485957669949989090202320234337890323293401862304986599884732815
求g^a mod p,没啥,直接求:

print(pow(g,a,p))

Diffie-Hellman Starter 4

Diffie-Hellman密钥交换协议是一种公钥加密算法,用于在不安全的网络中安全地交换密钥。该协议是由惠特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)于1976年提出的。

Diffie-Hellman密钥交换协议的基本原理是,两个通信方(称为Alice和Bob)可以在不共享密钥的情况下,通过使用一些公共的参数(称为生成元和模数)来生成相同的密钥。这个密钥可以用于加密和解密消息,以确保消息的机密性。

具体来说,假设Alice和Bob希望安全地交换密钥,他们需要执行以下步骤:

Alice和Bob先共同选择一个大质数$p$和一个生成元$g$,并将它们公开。

Alice随机选择一个私钥$a$,计算$A = g^a \bmod p$并将$A$发送给Bob。

Bob随机选择一个私钥$b$,计算$B = g^b \bmod p$并将$B$发送给Alice。

Alice计算$K = B^a \bmod p$。

Bob计算$K = A^b \bmod p$。

现在Alice和Bob都有了相同的密钥$K$,可以用它来加密和解密消息。

Diffie-Hellman密钥交换协议的安全性基于离散对数问题的难解性。具体来说,即使知道$ga$和$gb$的值,也很难计算出$g^{ab}$的值。因此,攻击者很难通过监听Alice和Bob之间的通信来获取密钥$K$。

p=2410312426921032588552076022197566074856950548502459942654116941958108831682612228890093858261341614673227141477904012196503648957050582631942730706805009223062734745341073406696246014589361659774041027169249453200378729434170325843778659198143763193776859869524088940195577346119843545301547043747207749969763750084308926339295559968882457872412993810129130294592999947926365264059284647209730384947211681434464714438488520940127459844288859336526896320919633919
g = 2
A=70249943217595468278554541264975482909289174351516133994495821400710625291840101960595720462672604202133493023241393916394629829526272643847352371534839862030410331485087487331809285533195024369287293217083414424096866925845838641840923193480821332056735592483730921055532222505605661664236182285229504265881752580410194731633895345823963910901731715743835775619780738974844840425579683385344491015955892106904647602049559477279345982530488299847663103078045601
b= 12019233252903990344598522535774963020395770409445296724034378433497976840167805970589960962221948290951873387728102115996831454482299243226839490999713763440412177965861508773420532266484619126710566414914227560103715336696193210379850575047730388378348266180934946139100479831339835896583443691529372703954589071507717917136906770122077739814262298488662138085608736103418601750861698417340264213867753834679359191427098195887112064503104510489610448294420720
B= 518386956790041579928056815914221837599234551655144585133414727838977145777213383018096662516814302583841858901021822273505120728451788412967971809038854090670743265187138208169355155411883063541881209288967735684152473260687799664130956969450297407027926009182761627800181901721840557870828019840218548188487260441829333603432714023447029942863076979487889569452186257333512355724725941390498966546682790608125613166744820307691068563387354936732643569654017172

#A = g^a mod p
#B = g^b mod p
#K = A^b mod p or K = B^a mod p

print(pow(A,b,p))

标签:Hellman,原根,cryptohack,Alice,密钥,wp,Diffie,Bob,day
From: https://www.cnblogs.com/Cryglz/p/17389834.html

相关文章

  • day70(2023.5.11)
    1.计算机网络通信 2.TCP/IP协议群 3.TCP协议传输特点 4.服务端口 5.数据包与处理流程 6.HTTP协议简介 7.HTTP协议特点 8.HTTP协议发展和版本     9.HTTP协议中URI、URL、URN10.HTTP协议的......
  • Java-Day-19( 对集合实现类的选择 + TreeSet + TreeMap )
    Java-Day-19总结-开发中如何选择集合实现类在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择先判断存储的类型(一组对象或一组键值对)一组对象(单列):Collection接口允许重复:List增删多:LinkedList[底层维护了一个双向链......
  • DAY5
    DAY5静态路由准备路由:给数据包指路静态路由:人工配置动态路由:提前配置一些指令,路由器自己学习网关是优先级最低的静态路由直连路由静态路由:路由器转发功能1.echo‘ner.ipv4.ip_forward=1'>>/etc/sysctl.conf2.sysctl-psystemctlrestartnetwork重启计......
  • Day_09 项目下拉
    1.切换菜单1.1*从数据库中获取:我创建的我参与的1.2循环显示1.3当前页面需要显示/其他页面也需要显示【inclusion_tag】#1.在注册app下创建文件templatetags/project.pyfromdjango.templateimportLibraryfromwebimportmodelsregister=Library()@regi......
  • Day01 Markdown学习
    Markdown学习标题三级标题四级标题字体两边加星号变粗体两边一个星号变斜体一个星两个星斜体加粗两边两个波浪号删除线引用一个>符号出引用效果分割线三个减号三个星号图片![截图](C:\Users\GE62\Pictures\CameraRoll\002.jpg)超链接点击跳转到狂神说JAVA......
  • 算法学习day13栈与队列part03-239、347
    packageLeetCode.StackAndQueuepart03;importjava.util.ArrayDeque;/***239.滑动窗口最大值*给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。*你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。*返回滑动......
  • 算法学习day11栈与队列part02-20、1047、150
    packageLeetCode.StackAndQueuepart02;/***20.有效的括号*给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。*有效字符串需满足:*左括号必须用相同类型的右括号闭合。*左括号必须以正确的顺序闭合。*每个右括号都有一个对应的相同类型的......
  • [SWPUCTF 2021 新生赛]老鼠走迷宫
    查壳:熟悉的配方,解包,反编译吧:进入.py文件:题目是走迷宫,进去后也发现了地图,那么我们将它打印出来:得到这么一张地图,那么看看起点和终点,起点:第一行第二个,终点:最后一行倒数第二个。画地图咯:得到Des='sssssddssddssaaaassssddwwddddssssssaawwaassssddssaassddddwwddssddwwwwwww......
  • day3 Hadoop安装与使用-Hadoop安装篇【上】
    【os】因为最近没有带大数据实验那本书,这几篇使用的都是大数据原教材-大数据技术原理运用(第三版)。其实两本内容差不多,但是实验那本教材安装过程更详细一点。 【正文】2.Hadoop安装【Hadoop单机安装】Hadoop使用版本:3.1.3下载地址:https://archive.apache.org/dist/hadoop/co......
  • DAY4
    DAY4DDOS如何防御认识dos利用tcp三次握手,形成的攻击叫做dos攻击tcpudptcp端口号范围0-6553510000以内作为常用端口给服务端用其他的给客户端做端口一个请求4kb*5w个=200000kb内存ddos攻击封IP直接关进小黑屋(从一个地方进行攻击的)直接拔网线关自己门停止动......