CTF_打卡DAY17&DAY18

本文介绍了数字签名的概念,通过RSA、Elgamal和DSA三种签名方案阐述其工作原理,并通过示例解析了签名的有效验证。同时,提到了数字签名在法律纠纷中的作用和安全性问题。

跟着《深入浅出密码学——常用加密技术原理和应用》学

P245-254,P255-276

第十章《数字签名》

一个有趣的举例:
假设ALICE拥有一些新汽车的经销权,用户可以在线选择和预定汽车。假设顾客BOB和经销商ALICE使用Diffie-Hellman密钥交换建立起一个共享密钥kab。现在BOB说明了他喜欢的汽车,包括车的内部眼色为粉色,外部颜色为橘色等——这个搭配是绝大多数人不会选择的;利用AES加密将这个订单发送给ALICE.ALICE解密这个订单,并为售出了另一个价值25000美元的型号而感到高兴。由于他的配偶在看到该车后威胁要与他离婚,所以在三个星期后这辆汽车交付时,BOB再次考虑了一下这个选择。但是,对BOB和他的家庭而言,ALICE申明了“不退货”政策。而且ALICE是一个经验丰富的经销商,她非常清楚卖出一个粉色和橘色的汽车是十分困难的,因此她也决不会做任何让步。由于BOB现在可以声称他从来没有预定过这辆汽车,ALICE除了起诉他外别无选择。在法庭上,ALICE的律师展示了BOB的数字汽车订单及对应的加密版本。显而易见,ALICE的律师可以肯定地说BOB一定生成了这个订单,因为他拥有生成密文所需要的密钥kab。然而,如果BOB的律师称职的话,他会详细地向法官解释:经销商ALICE也知道kab,并且,ALICE自己生成假汽车订单的动机更大。事实证明,法官也无法判断此明文-密文是由BOB还是ALICE生成。根据大多数国家的法律,BOB可能侥幸逃脱因为撒谎而带来的惩罚。

数字签名协议:
在这里插入图片描述
数字签名的核心属性:被签名的消息可以明确地追踪到他的发起人,因为只有唯一的签名者的私钥才能计算出有效的签名。只有签名者自己才能生成一个签名,因此证明:前名方的确生成了该消息

RSA签名方案

RSA中的加密操作和数字签名操作基本上是完全相同

### 使用Python 使用`requests`库可以方便地实现同时发送带有参数的GET和POST请求。以下是示例代码: ```python import requests # 发送GET请求 get_url = "https://example.com" # 替换为实际的URL get_params = {'get_param': 'ctf_get'} get_response = requests.get(get_url, params=get_params) print("GET请求响应:", get_response.text) # 发送POST请求 post_url = "https://example.com" # 替换为实际的URL post_data = {'post_param': 'ctf_post'} post_response = requests.post(post_url, data=post_data) print("POST请求响应:", post_response.text) ``` ### 使用Hackbar Hackbar是Firefox浏览器的一个扩展,用于测试HTTP请求。 1. 打开Firefox浏览器并安装Hackbar扩展。 2. 打开需要测试的网页。 3. 打开Hackbar,在URL栏输入目标URL。 4. 对于GET请求,在URL后面添加`?get_param=ctf_get`。 5. 对于POST请求,切换到POST模式,在POST数据框中输入`post_param=ctf_post`。 6. 分别点击发送按钮发送GET和POST请求。 ### 使用curl 使用`curl`可以通过命令行发送请求。 ```bash # 发送GET请求 curl "https://example.com?get_param=ctf_get" # 发送POST请求 curl -X POST -d "post_param=ctf_post" "https://example.com" ``` ### 使用Postman 1. 打开Postman应用程序。 2. 创建一个新的请求。 3. 对于GET请求,选择GET方法,在URL栏输入目标URL,并在Params中添加键值对`get_param`和`ctf_get`。 4. 点击发送按钮发送GET请求。 5. 创建另一个新的请求。 6. 对于POST请求,选择POST方法,在URL栏输入目标URL,在Body中选择`x-www-form-urlencoded`,并添加键值对`post_param`和`ctf_post`。 7. 点击发送按钮发送POST请求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值