安全规约第一章

news2024/11/17 3:39:49

文章目录

  • 传统密码和现代密码的区别
    • 古典密码
    • 近代密码
    • 现代密码
      • 定义
      • 模型
      • 证明
  • 现代密码学
    • Cryptography
    • Cryptanalysis
    • Cryptosystem
    • Scheme
  • 如何定义算法
    • 步骤
      • 第一步,搞清楚安全服务目标
      • 第二步,计算过程中需要几方的参与
      • 需要几个算法描述它
      • 算法命名
      • 谁来运行哪一个算法
      • 每一个算法的输入和输出的对象是谁
      • 正确性
    • 举例
  • 如何定于安全模型
    • 怎么定义
      • 游戏的形式
      • 实验的形式
    • 具体定义方法
    • 什么时间定义
    • 举例
  • 安全模型定义的注意点

传统密码和现代密码的区别

古典密码

一般是指的罗马时期

近代密码

二战期间

现代密码

1960或者70年代之后了
是一门学科,有严格的定义,模型和证明

定义

定义包括算法定义,困难问题的定义和概念的定义

模型

模型主要有两大类,一类是计算模型,一类是安全模型

证明

证明方法有很多,比如安全规约的 game-hopping,不同的密码体制有不同的主流证明方法
三者区别主要是手算,机器算和用数字电路去计算

安全规约并不适合所有的密码学的证明,所以要先确定好要学习

现代密码学

在这里插入图片描述

Cryptography

是一种提出来的方法,比如说公钥加密,私钥加密,椭圆曲线等
在这里插入图片描述

Cryptanalysis

主要是一种分析,如对对称密码的复杂在这里插入图片描述
性分析,公钥密码方案的安全性分析

Cryptosystem

提出了一种具体的算法,来达到安全服务的目的,比如数据的保密性和完整性
在这里插入图片描述

Scheme

一种具体的构造,对上一个的实现,可能一个Cryptosystem有很多个Scheme,Scheme的算法可以由一方独立进行残生结果的

在这里插入图片描述

如何定义算法

当我们每次提出一个Cryptosystem的时候,我们的第一步就是对它通过算法进行描述。

Cryptosystem就是为了达到某种security service,通过若干算法的组成来达到目的,当自己的研究领域有Cryptosystem的时候,可以采用前人的,但是如果说研究领域拓宽,没有算法可用,这时候就可以尝试自己去定义一个算法。

步骤

第一步,搞清楚安全服务目标

第二步,计算过程中需要几方的参与

比如,需不需要一个可信第三方,签名者,加密者,解密者等

需要几个算法描述它

可以理解为越少越好一般至少要有两个,能签名,也能认证

算法命名

谁来运行哪一个算法

现在密码研究分为理论方向和应用密码学方向,理论比较喜欢发表会议,应用密码喜欢发表期刊,其中靠近云计算的,刻画一个系统的时候喜欢使用Cryptosystem来刻画,去解决system的问题,这时候要强调是谁来运行的,要不然不搞密码学的不太懂

每一个算法的输入和输出的对象是谁

正确性

举例

在这里插入图片描述
这里是两个参与者,签名者和验证者,正式里面都用这种比如,比如可信第三方,签名者等,需要几个算法可以通过需要几个计算来看,这里是,产生,签名,验证 一共三个主要部分,但是在密钥生成的时候还有参数,这也需要一个算法,所以一共是四个。也可以不考虑参数生成,写成三个算法,这都一样。
在这里插入图片描述
取名字的时候,一定要看起来美观,尽量和现有的算法名字相同,通过这个名字的简写缩写,能够让阅读人很快的定义到这个算法是干什么用的
在这里插入图片描述
建议是标上谁运行这个代码
在这里插入图片描述
注意是箭头不是等号,这有区别
在这里插入图片描述
尽量不要一整句话都用别人的
满足正确性使得生成的东西,生成一次就可以直接用,而不用生成很多次

如何定于安全模型

可以去参考一下卧村密码学报里面的安全模型入门
在这里对安全模型进行一些解释

  • 首先,我们在设计一套密码方案的时候,我们不会去针对一系列攻击来专门设计,我们会在某个安全模型下说某个方案是安全的,从侧面来说,倒也是抵御了一系列攻击,只要这个攻击是符合这个安全模型的就可以
  • 这个攻击更注重敌手从中学到了什么信息,而不是敌手怎么学到了信息
  • 这个安全模型是为了一个cryptosystem定义的,而不是某个具体方案

怎么定义

两种形式

游戏的形式

在这里插入图片描述
一定是adversary和challenger两者之间的描述,图片中最后一个词应该是cryptosystem

实验的形式

可以当作是一个伪代码的形式,比较简洁,但是新手不好理解

具体定义方法

在这里插入图片描述

什么时间定义

我们在定义安全模型的时候和算法一样,只考虑输入和输出,因为这个算法要适合所有的方案
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的trival attack就可以理解为不合理的问题,他这里把攻击抽象成了询问,比如已知密文攻击,问密文就给密文,但是它如果是要密钥就过分了,这时候就是trival attack
现实生活中不管攻击者为什么要这个密文,我们只负责在模型允许的情况下,他要什么给什么
确定优势是可忽略的

举例

在这里插入图片描述
目标:The adversary cannot forge signature of a new message.敌人不能伪造新信息的签名。
优势:The probability of successful forgery.成功伪造的可能性。

这个就是算法,可以借鉴别人的写法,但是不能copy
在这里插入图片描述

安全模型定义的注意点

  • 一个安全模型对应一个安全服务,但是有些时候,一个安全模型可以对应好几个安全服务
  • 一个安全服务的安全模型的定义可能不同,当功能和安全目的不一样的时候
    在这里插入图片描述
    standard security model是一种安全模型standard model是一种计算模型
    标准的安全模型并不一定是最强的安全模型,强安全模型能够抵御的攻击多
    得知的签名消息是不是由challenger决定的是非常重要的,所以这里是由强弱之分,强安全模型就是敌手强
    并不是一个方案在更安全的模型下提出就是更好的,这取决于应用,详见29期
    在这里插入图片描述
    弱安全模型并非没有存在的意义,如果在这个模型下,我们以后构建出了效率好的方案,这样的应用就是有意义的,或者是在强安全模型的情况下,有一个问题一直没能解决,这个时候就可以使用弱安全模型,先向前走半步

之所以要有把破解安全模型等同于破解计算难题,是为了以后的规约,所谓的安全规约,就是借鉴的计算复杂性中规约这个概念

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

03_Apache Pulsar的Local与分布式集群构建、Pulsar的分布式集群模式、Pulsar的分布式集群模式构建\启动\测试

1.3.Apache Pulsar的Local与分布式集群构建 1.3.1 Apache Pulsar的Local模式构建 1.3.1.1.Apache Pulsar的Local模式基本使用 1.3.2.Apache Pulsar的分布式集群模式 1.3.2.1.安装zookeeper集群 1.3.3.Apache Pulsar的分布式集群模式构建 1.3.4.Apache Pulsar的分布式集群模式启…

Sparx Systems Pro Cloud Server crack

Sparx Systems Pro Cloud Server crack 云服务器 添加了新的“OSLC会话超时”设置,以配置OSLC用户将注销的最长非活动时间。 改进了对重复SQL列名的处理。 FLS:为“组”添加了对其他Microsoft Active Directory名称格式的支持。 云配置客户端 在扩展服务…

香橙派5使用NPU加速yolov5的实时视频推理(二)

三、将best.onnx转为RKNN格式 这一步就需要我们进入到Ubuntu20.04系统中了,我的Ubuntu系统中已经下载好了anaconda,使用anaconda的好处就是可以方便的安装一些库,而且还可以利用conda来配置虚拟环境,做到环境与环境之间相互独立。…

SpringCloud Alibaba入门

作为微服务刚入门的小白,不足之处请多多指教 1. Cloud Alibaba简介2.Nacos简介和下载3.Nacos安装4.Nacos之服务提供者注册5.Nacos之服务消费者注册和负载6.Nacos服务注册中心对比提升7.Nacos之服务配置中心8.Nacos之命名空间分组和DataID三者关系9.Nacos之DataID配…

如何写好单测

1、为什么要写单测? 单测即单元测试(Unit Test),是对软件的基本组成单元进行的测试,比如函数、过程或者类的方法。其意义是: 功能自测,发现功能缺陷自我Code Review测试驱动开发促进代码重构并…

File、递归、IO流(一)、IO流(二)

目录 ​File类概述 File类的常用API 判断文件类型、获取文件信息 创建文件、删除文件功能 遍历文件夹 方法递归 递归的形式和特点 递归的算法流程、核心要素 递归常见案例 递归的经典问题 非规律化递归案例-文件搜索 非规律化递归案例-啤酒问题 字符集 常见字符集…

美团二面经历——如何设计一个百万人抽奖系统?

文章目录 导图V0——单体架构V1——负载均衡V2——服务限流防止用户重复抽奖拦截无效流量服务降级和服务熔断V3 同步状态V4线程优化V5业务逻辑V6流量削峰通用思路单一职责URL动态加密静态资源——CDN服务限流数据预热削峰填谷导图 导图按照由浅入深的方式进行讲解,架构从来不是…

西电计算机组成原理(计组)核心考点汇总(期末真题+核心考点)

文章目录前言一、真题概览1.1 计组1历年真题1.2 计组2历年真题二、知识点说明2.1 计组12.1.1 冯诺依曼计算机组成和特点2.1.2 复杂指令系统计算机和特点2.1.3 精简指令系统计算机的特点2.1.4 指令长度的影响因素2.1.5 控制器2.1.6 微指令特性2.2 计组22.2.1 SMP特点与优点2.2.2…

QML动态对象管理

QML中有多种方式来动态创建和管理QML对象: Loader (加载器)Repeater(复制器)ListView,GridWiew,PethView(视图) (之后会介绍)使用加载器&#xff…

剖析G1 垃圾回收器

简单回顾 在Java当中,程序员在编写代码的时候只需要创建对象,从来不需要考虑将对象进行释放,这是因为Java中对象的垃圾回收全部由JVM替你完成了(所有的岁月静好都不过是有人替你负重前行)。 而JVM的垃圾回收由垃圾回收器来负责,在…

刷题记录:牛客NC200179Colorful Tree 奇奇怪怪的dfs序

传送门:牛客 题目描述: A tree structure with some colors associated with its vertices and a sequence of commands on it are given. A command is either an update operation or a query on the tree. Each of the update operations changes the color of a specifi…

论文阅读 - End-to-End Wireframe Parsing

文章目录1 概述2 L-CNN2.1 整体架构2.2 backbone2.3 juction proposal module2.4 line sample module2.5 line verificatoin module3 评价指标参考资料1 概述 本文是ICCV2019的一篇论文,核心是提出了一种简单的end-to-end的two-stage的检测图像中线段的方法。同时&…

192、【动态规划】leetcode ——64. 最小路径和:回溯法+动态规划(C++版本)

题目描述 原题链接&#xff1a;64. 最小路径和 解题思路 &#xff08;1&#xff09;回溯法 分别向右或下进行探查 class Solution { public:int res INT_MAX;void backtracking(vector<vector<int>>& grid, int x, int y, int pathSum) {// 超出边界&…

高可用 - 08 Keepalived集群中Master和Backup角色选举策略

文章目录概述实例说明“weight”值为正数“weight”值为负数总结概述 在Keepalived集群中&#xff0c;其实并没有严格意义上的主、备节点&#xff0c;虽然可以在Keepalived配置文件中设置“state”选项为“MASTER”状态&#xff0c;但是这并不意味着此节点一直就是Master角色。…

Python实现人脸识别,进行视频跟踪打码,羞羞的画面统统打上马赛克

哈喽兄弟们&#xff0c;我是轻松~ 今天我们来实现用Python自动对视频打马赛克前言准备工作代码实战效果展示最后前言 事情是这样的&#xff0c;昨天去表弟家&#xff0c;用了下他的电脑&#xff0c;不小心点到了他硬盘里隐藏的秘密&#xff0c;本来我只需要用几分钟电脑的&…

第一章初识Linux

文章目录Linux简介LInux的应用领域Linux OS和各种发行版的关系Linux和Unix的关系Linux相关环境配置图解VM和Linux的关系Linux自定义分三个区VMware网络连接的三种模式桥接模式NAT模式主机模式VMware快照功能Linux的操作方式Linux的目录结构各种Linux发行版本的常见目录注意事项…

GO进阶(5) 垃圾回收机制

一、前言 1、垃圾回收背景 编程语言通常会使用手动和自动两种方式管理内存&#xff0c;C、C 以及 Rust 等编程语言使用手动的方式管理内存&#xff0c;工程师需要主动申请或者释放内存&#xff1b;而 Python、Ruby、Java 和 Go 等语言使用自动的内存管理系统&#xff0c;一般都…

Java八股——wait、sleep与park

sleep()、wait()、park()都可以使线程进入等待状态&#xff0c;但是3种方式在使用上和功能上都有些不同。 共同点: wait()&#xff0c;wait(long)和sleep(long)的效果都是让当前线程暂时放弃CPU的使用权&#xff0c;进入阻塞状态它们都可以被打断唤醒都是native方法执行sleep…

java四种线程池(基本使用)

标题java四种线程池及使用示例 1、线程工厂 1、我们先来写ThreadFactory&#xff0c;在创建线程池时候可以传入自定义的线程工厂&#xff0c;线程工厂说白了就是用来定制线程的一些属性&#xff1a;名字、优先级、是否为守护线程。直接看代码即可。 当然创建线程池的时候可以…

控制台运行java

控制台执行java 新建java代码 新建一个记事本文件&#xff0c;将文件名改为HelloWorld.java&#xff0c;注意&#xff1a;后缀是.java。 若没有显示文件后缀&#xff0c;可以在资源管理器打开显示后缀&#xff0c;然后再次修改文件名&#xff0c;一定要修改成文件类型是java…