博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的密码学实例
阅读量:7041 次
发布时间:2019-06-28

本文共 731 字,大约阅读时间需要 2 分钟。

 一个简单的密码学实例

分享一个密码学实例:

假设我们的主角是Alice和Bob,他们准备一同出去吃饭,但就去哪家餐厅并没有达成共识。此时通常的解决方法是猜拳、投硬币之类的手段来决定选择谁的方案。通常这种方式也算公平、合理,就像足球场上的掷币一样(概率是一半一半)。

但同样的事情如果环境变化了,这样的手段可能就会失灵。比如Alice通过电话或网络约Bob一同就餐,如果他们没有共同喜欢的餐厅的话,此时仍然采用猜拳亦或是投硬币的方式很显然是不合适的。因为这里面可能会出现作弊,并没有公证人可以公证真相!现代网络数据的传输有着同样让人头疼的问题。

而此时我们需要的是一种协议,这个协议可以被认为是一个游戏规则,而且如果这个游戏实在网络上或异地进行的话,我们还需要使用加密技术。

下面我们假设:

存在一个数α,由α经过一系列的运算可以很容易得出β,即β=f(α),且由β计算出α几乎是不可能的(使用超级计算机运算100年可以得出结果)

应用实现:

1.现在Alice与Bob达成共识,由Bob投币并选取一个随机的α(α为奇数表示投币结果为正面,α为偶数表示投币结果为反面)当并经过函数运算,将运算后的结果(β)告诉Alice。

2.Alice此时告诉Bob自己对正反面的猜测(即奇偶数的猜测)注:概率为50%。

3.Bob告诉Alice α的值。

4.Alice通过运算验证f(α)=β。

在现代网络的发展中这样的实例已经成为了数据安全通讯的基石。现在的加密算法很多是采用了这种不可逆函数的运算原理实现的。

密码学涉及很多方面,如:数据加密、身份验证、数据完整性等等。以上只是数据通讯协议与加密的一个小实例,还有很多细节没有提到,并需要你使少使用一种编程语言来实现她。

转载地址:http://istal.baihongyu.com/

你可能感兴趣的文章
.NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能 ...
查看>>
JDK8新特性之Optional
查看>>
Spark2.4.0源码分析之WorldCount 触发作业提交(二)
查看>>
Python零基础学习笔记(四十)—— datetime和Calendar ...
查看>>
事故现场:MySQL 中一个双引号的错位引发的血案 ...
查看>>
MaxCompute_UDF_开发指南
查看>>
云MSP服务案例丨某知名制造集团的Oracle RAC部署实践 ...
查看>>
如何基于ReplayKit实现低延迟rtmp推屏
查看>>
说说JSON和JSONP,也许你会豁然开朗
查看>>
没有所谓好与不好,只是能否适用和用的好
查看>>
程序员写简历时必须注意的技术词汇拼写(持续更新...)
查看>>
ams光学传感器助力小米手机创新发展
查看>>
Python 特色介绍
查看>>
JavaScript_知识点梳理note1
查看>>
PostgreSQL 开启with-llvm(JIT)后,新增插件异常(clang: Command not found)处理
查看>>
思考设计SQL优化方案
查看>>
tomcat 调优-生产环境必备
查看>>
浅析C++的引用与const指针与各种传递方式
查看>>
Java并发编程75道面试题及答案
查看>>
仓储+调度,YOGO智能配送站能否改变外卖配送格局?
查看>>