信息安全与密码技术概述

news2024/11/28 20:48:42

1. 信息安全的法律法规

        2016年11月7日,中华人民共和国第十二届全国人民代表大会常务委员会第二十四次会议通过《中华人民共和国网络安全法》,自2017年6月1日起施行。

        2019年10月26日,中华人民共和国第十三届全国人民代表大会常务委员会第十四次会议通过《中华人民共和国密码法》,自2020年1月1日起施行。

        2021年6月10日,中华人民共和国第十三届全国人民代表大会常务委员会第二十九次会议通过《中华人民共和国数据安全法》,自2021年9月1日起施行。

        2021年8月20日,中华人民共和国第十三届全国人民代表大会常务委员会第三十次会议通过《中华人民共和国个人信息保护法》,自2021年11月1日起施行。

        《网络安全法》、《密码法》、《数据安全法》、《个人信息保护法》共同构建了我国数据治理法律框架,是我国数字经济时代重要法律基石。

2. 信息安全与密码技术的关系

        信息是当今社会的一种重要资源,信息产生利润、创造价值;现代信息系统要求必须有信息技术安全措施;信息加密是技术安全的主要措施之一。信息安全所面临的威胁与用来应对这些威胁的密码技术之间的关系如下图所示。

3. 密码技术的基础概念

        从明文生成密文的步骤,也就是加密的步骤,称为“加密算法”;而解密的步骤则称为“解密算法”;加密、解密的算法合在一起统称为密码算法。

        加密系统包括以下四个基本组成部分:

  • 待加密的数据(明文)

  • 加密后的数据(密文)

  • 加密、解密设备或算法

  • 用于加密解密的钥匙(密钥),通常是随机字符串

        加密:把明文加密成密文的过程

        解密:把密文还原成明文的过程

        密钥:加密和解密通常需要参数控制,我们把该参数称为密钥,有时也称为密码。加密时使用的叫加密密钥(加密密码),解密时使用的叫解密密钥(解密密码)。

        加密密钥和解密密钥可能相同也可能不相同,相同时称为对称密钥,不同时称为非对称密钥,因此根据密钥的不同,现代密码技术分为两类:对称加密和非对称加密。

4. 密码技术的常识

4.1 不要使用保密的密码算法

        很多企业都有下面这样的想法:“由公司自己开发一种密码算法,并将这种算法保密,这样就能保证安全。“然而,这样的想法却是大错特错,使用保密的密码算法是无法获得高安全性的。我们不应该制作或使用任何保密的密码算法,而是应该使用那些已经公开的、被公认为强度较高的密码算法。这样做的原因主要有以下两点。

  • 密码算法的秘密早晚会公诸于世

        从历史上看,密码算法的秘密最终无一例外地都会被暴露出来。1999年,DVD的密码算法被破解。2007年,NXP的非接触式IC卡MIFARE Classic的密码算法被破解。这些算法最初都是保密的,然而研究者可以通过逆向工程的手段对其进行分析,并找到漏洞进行破解。RSA公司开发的RC4密码算法曾经也是保密的,但最终还是有一位匿名人士开发并公开了与其等效的程序。一旦密码算法的详细信息被暴露,依靠对密码算法本身进行保密来确保机密性的密码系统也就土崩瓦解了。反之,那些公开的算法从一开始就没有设想过要保密,因此算法的暴露丝毫不会削弱它们的强度。

  • 开发高强度的密码算法是非常困难的

        要比较密码算法的强弱是极其困难的,因为密码算法的强度并不像数学那样可以进行严密的证明。密码算法的强度只能通过事实来证明,如果专业密码破译者经过数年的尝试仍然没有破解某个密码算法,则说明这种算法的强度较高。

        稍微聪明一点的程序员很容易就能够编写出“自己的密码系统”。这样的密码在外行看来貌似牢不可破,但在专业密码破译者的眼里,要破解这样的密码几乎是手到擒来。

        现在世界上公开的被认为强度较高的密码算法,几乎都是经过密码破译者长期尝试破解未果而存活下来的。因此,如果认为“公司自己开发的密码系统比那些公开的密码系统更强”,那只能说是过于高估自己公司的能力了,

        试图通过对密码算法本身进行保密来确保安全性的行为,一般称为隐蔽式安全性(security by obscurity),这种行为是危险且愚蠢的。

        反过来说,将密码算法的详细信息以及程序源代码全部交给专业密码破译者,并且为其提供大量的明文和密文样本,如果在这样的情况下破译一段新的密文依然需要花上相当长的时间,就说明这是高强度的密码。

4.2 使用低强度的密码比不进行任何加密更危险

        一般人们会认为:就算密码的强度再低,也比完全不加密要强吧?其实这样的想法是非常危险的。

        正确的想法应该是:与其使用低强度的密码,还不如从一开始就不使用任何密码。

        这主要是由于用户容易通过“密码”这个词获得一种“错误的安全感”。对于用户来说,安全感与密码的强度无关,而只是由“信息已经被加密了”这一事实产生的,而这通常会导致用户在处理一些机密信息的时候麻痹大意。

        早在16世纪,当时的苏格兰女王玛丽就曾认为没有人能够破译自己使用的密码。正是由于对密码的盲信,她将刺杀伊丽莎白女王的计划明明白白地写在了密信中,结果密码遭到破译玛丽也因此被送上了断头台。

4.3 任何密码总有一天都会被破解

        如果某种密码产品宣称“本产品使用了绝对不会被破解的密码算法”,那么你就要对这个产品的安全性打个问号了,这是因为绝对不会被破解的密码是不存在的。

        无论使用任何密码算法所生成的密文,只要将所有可能的密钥全部尝试一遍,就总有一天可以破译出来。因此,破译密文所需要花费的时间,与要保密的明文的价值之间的权衡就显得非常重要。

4.4 密码只是信息安全的一部分

        我们以Alice给Bob发送加密邮件的例子。即便不去破解密码算法,也依然有很多方法能够知道Alice所发送的邮件内容。

        例如,攻击者可以不去试图破译经过加密的邮件,而是转而攻击Alice的电脑以获取加密之前的邮件明文。

        上面提到的攻击手段,都与密码的强度毫无关系。

        要保证良好的安全性,就需要理解“系统”这一概念本身的性质。复杂的系统就像一根由无数个环节相连组成的链条,如果用力拉,链条就会从其中最脆弱的环节处断开。因此,系统的强度取决于其中最脆弱的环节的强度。

        最脆弱的环节并不是密码,而是人类自己。

5. 国密算法

        国密算法即国家密码局认定的国产密码算法,主要有SM1(对称算法),SM2(非对称算法),SM3(单向散列(哈希)算法),SM4(对称算法)。

        为保障重要经济系统密码应用安全,国家密码管理局于2011年发布了《关于做好公钥密码算法升级工作的通知》,要求“自2011年3月1日起,在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用国密算法。自2011年7月1日起,投入运行并使用公钥密码的信息系统,应使用SM2算法。”

5.1 SM1

        SM1为对称加密算法,其加密强度与AES相当;该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

5.2 SM2

        SM2为非对称加密,该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。

5.3 SM3

        SM3 为消息摘要算法,该算法已公开。SHA-1算法的输出长度为160比特,SM3算法的输出长度为256比特,因此SM3算法的安全性要高于SHA-1算法。

5.4 SM4

        SM4为对称密码算法,该算法已公开。要保证一个对称密码算法的安全性的基本条件是其具备足够的密钥长度,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算法。

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

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

相关文章

Ubuntu虚拟机使用纯命令行对根分区进行扩展

Ubuntu虚拟机使用纯命令行对根分区进行扩展 前排提示 因为Ubuntu再安装时,根分区是没有使用LVM进行磁盘管理的,所以如果想扩展根分区,我们不得不使用另外一种暴力的方法。简单来说就是利用fdisk删除原来的根分区再基于原来的起始块号重新建…

PHP超详细安装及应用

目录 所需安装包如下 一、PHP安装 依赖包安装 安装扩展工具(先将PHP所需的软件包全部拖进centos根目录下) 安装libmcrypt 安装mhash 安装mcrypt 安装PHP 二、设置LAMP组件环境(要保证mysql、http都安装完成了) Php.ini的建…

MySQL常用的库操作、表操作、INSERT、DELETE

库操作 查询数据库: show databases; 创建数据库: create database chat; 删除数据库: drop database chat; 选择数据库: use chat; 表操作 查询表: show tables&am…

数据库同步软件PanguSync常见错误解决方法

​​​​​​在部署PanguSync数据库同步软件的过程中,常常会遇见一些错误提示,某些老铁可能会一脸懵逼,本文对一些常见的错误信息进行了总结,并提供了解决方法。 1.")"附近有语法错误 该问题是由于源表未设置主键&…

中国现代书法第一人颜廷利:全球知名哲学家思想家教育家

在人生的旅途中,如果一个人的所有追求仅仅是为了满足自己的需求和欲望,而非出于善意、行善或造福他人,那么无论其遭受了多少苦难,这样的生活是难以赢得他人的同情或怜悯的。这是东方哲学家、科学家颜廷利教授在其著作《升命学说》…

如何借助ChatGPT写文献综述?从文献搜索到综述生成,顶级高效指令值得收藏

欢迎关注EssayBot,为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI工具的相关问题可以添加作者七哥沟通 在学术研究的过程中,文献综述是学术论文的核心组成部分,其主要目的在于对特定问题的先行研究成果进行总结和梳理&a…

往前冲,

最近换了个手机,原因是之前的手机存储空间一直不够,隔一段时间就提醒我删除东西,刚好那天去三诺出差,那边有一个工程师给我推荐了红米手机Turbo3,存储直接干到了1T。 第二天,就下定决心要换手机&#xff0c…

哈希表与哈希扩容

一,哈希表 哈希表简单的理解:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。 哈希表基于数组的,正因为数组创建后难于扩展某些哈希表被基本填满时,性能下…

【SQLAlChemy】怎么进行简单的增删改查,CRUD操作是什么?

CRUD 所有的 CRUD 操作,必须在 session 的前提下进行。 构建 session 对象(实例) 所有和数据库的 ORM 操作都必须通过一个叫做 session 的会话对象来实现。 from sqlalchemy.orm import sessionmaker# 构建 session 对象 # engine 为之前创建的数据库连接引擎 s…

透视亚马逊云科技中国峰会:生成式AI全面提速,加速行业应用落地

导读:亚马逊云科技在中国,生成式AI与行业化战略齐头并进。 “亚马逊云科技致力于成为企业构建和应用生成式AI的首选。” 近日2024亚马逊云科技中国峰会上,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松分享了亚马逊云科技中国业务最新进…

Maven核心功能依赖和构建管理

1.依赖管理和配置 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等…

【Python机器学习】NMF——模拟数据

与使用PCA不同,我们需要保证数据是正的,NMF能够对数据进行操作。这说明数据相对于原点(0,0)的位置实际上对NMF很重要。因此,可以将提取出来的非负向量看作是从(0,0)到数据的方向。 举例:NMF在二维玩具数据上的结果: …

SSH反向代理

介绍 SSH反向代理是一种通过SSH协议实现的安全远程访问方式。在这种方式中,客户端通过SSH连接到一台具有公网IP的主机,然后这台主机再将请求转发给内部网络中的目标主机。这样做的好处是可以隐藏内部网络的细节,提高安全性,同时也…

Docker搭建可道云

Docker搭建可道云(存储) 文章目录 Docker搭建可道云(存储)介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、搭建可道云私有云盘3.1、编写Dockerfile3.2、上传资源到指定目录3.3、查看目录下所有资源 四、构建镜像五、…

易于上手的requests

Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…

C# 绘图及古诗填字

绘图 绘图的结果如下: 绘图部分主要使用了 Bitmap、Graphics 具体的函数是 MakeMap 入参说明 string bg : 背景图 Rectangle rect :绘图区域 int row_count :行数 int col_count :列数 string fn :保存到的文件 …

HTML+CSS+JS 密码灯登录表单

效果演示 实现了一个登录页面,包括一个标题、两个输入框(用户名和密码)、一个登录按钮和一个眼睛图标。点击眼睛图标可以显示或隐藏密码。页面背景有两个圆形的半透明元素,整个页面使用了flex布局,并且在水平和垂直方向上都居中对齐。登录框使用了阴影效果和圆角边框,并且…

Django 表里做删除

先看效果图 点击 删除 按钮之后&#xff0c;就可以下面的效果 操作步骤&#xff1a; 1. 在 urls.py 文件里&#xff0c;添加路劲&#xff1a; urlpatterns [path(asset/<int:aid>/delete/, am_views.asset_delete),]2. 在 views.py 文件里&#xff0c;实现一个新的函…

【CS.AL】八大排序算法 —— 快速排序全揭秘:从基础到优化

文章目录 1. 快速排序简介1.1 定义1.2 时间复杂度1.3 相关资源 2. 最优的Partition算法 &#x1f525;2.1 Introsort简介2.2 过程示例 3. 非递归快速排序3.1 实现 4. 递归快速排序4.1 实现 5. 有问题的Partition5.1 实现 6. 三中位数主元选择6.1 实现 7. 总结 1. 快速排序简介 …

微信小程序基础工作模板

1.轮播图 点击跳转官方文档 简单例子 <!-- 顶部轮播图 --> <swiper indicator-dots"true" class"banner" autoplay"true" interval"2000"><swiper-item><image src"../../images/轮播图1.jpg" >…