(共23张PPT)
数据加密与安全
1.打开“注册账号”文件夹中“主程序.py”(见左图),按F5运行该程序。
2.代码运行成功后,通过浏览器访问http://127.0.0.1:5000(见右图),可以输入用户名“小林”,密码“Xinxi12”,然后点击“注册”按钮。
实践活动:注册账号
账号注册成功,如下图所示:
问题:users和users*哪个更安全?
Users*
经过加密处理的密文更安全!
密文:加密处理后的文本
明文:未加密处理的文本
实践活动:注册账号
(可直接登录账号,造成个人信息泄露)
当今社会,信息系统中的数据面临着一系列的安全问题。
保密性
不可否认性
完整性
加密措施
数字签名
容灾备份和恢复
数据加密与安全
这是密码学要实现的主要目标。
QQ密码
WiFi密码
取款密码
密码无处不在,它是保证数据安全的一道重要屏障。
密码的概念
但从严格意义上讲,这里所谓的密码应该被称之为口令,
用于认证用户身份。
口令
密码的概念
密码是指按特定的编码规则,对通信双方的数据信息进行从明文到密文变换的技术方法。这种独特的信息编码算法就是密码。
密文
明文
那什么是密码呢?——教材P105
密码最早起源于古希腊,通常是密码算法的简称,它由加密算法和解密算法组成。
加密算法
解密算法
逆序法,就是将明文中的字符倒过来输出。
探究活动——加密算法1
①换位密码法:
将明文中的字符位置通过一定的规则重新排列。
最简单的换位就是逆序法。
Python代码实现:
p="Xinxi12"
c=p[::-1]
Xinxi12 → X12inxi
换位密码,但不是逆序法。
如何加密?
密文
明文
探究活动——加密算法2
如何加密?
密文
明文
账号密码 (明文) 加密算法2
(密文)
【任务】注册多个账户,使用不同的密码,记录明文和密文,填写在在表格中,并写出明文到密文的变换规则。
ABCDEF DEFGHI
探究活动——加密算法2
账号密码 (明文) 加密算法2
(密文)
ABCDEF DEFGHI
UVWXYZ XYZABC
abcdef defghi
67890 67890
①只对字母进行处理
②不改变字母的大小写
③明文字母被其他字母替代了,明文字母右移3位即为替代字母
明文中的所有字母被右移3位后的字母替代。
②替代加密法:将明文中每个位置的字符用其它字符替代。
简单加密算法
23 24 25 0 1 2 3 4 5 …
… 0 1 2 3 4 5 6 7 8
①字母A~Z的编号依次为0~25
提问:Python如何实现?
明文"Y" 密文"B"
ASCII码值(65~90),ord()函数
②由n1算得n2,调用chr()函数
p="Y"
n1=ord(p)-ord("A")=89-65=24
n2=(n1+3)%26=1
c=chr(n2+ord("A"))="B"
编号n1=24 编号n2=1 满足等式:n2=(n1+3)%26
88 89 90 65 66 67 68 69 70 …
简单加密算法
p="Y"
n1=ord(p)-ord("A")=89-65=24
n2=(n1+3)%26=1
#由密文编号n2,得到对应字符B
c=chr(n2+ord("A"))="B"
明文"Y"→密文"B"
明文"y"→密文"b" Python如何实现?
c=chr((ord(p)-ord("A")+3)%26+ord("A"))
简单加密算法
mingwen=input("请输入明文:")
n=len(mingwen)
miwen=""
for i in range(n):
ch=mingwen[i]
if "A"<=ch<="Z": #大写字母
ch=chr((ord(ch)-ord("A")+3)%26+ord("A"))
elif "a"<=ch<="z": #小写字母
________________________________________
miwen=miwen+ch
print("加密后的密文为:",miwen)
ch=chr((ord(ch)-ord("a")+3)%26+ord("a"))
打开jiami.py文件,填写代码并进行调试。
课堂任务——数字的加密
1.某加密算法能将数字字符前移2位(例如"5"→"3","0"→"8"),以下python程序能实现该功能的有( )(填字母,多选)
A.c=chr((ord(p)-ord("A")-2)%26+ord("A"))
B.c=chr((ord(p)-ord("A")-2)%10+ord("A"))
C.c=chr((ord(p)-ord("0")-2)%10+ord("0"))
D.c=str((int(p)-2)%10)
课堂任务——数字的加密
1.某加密算法能将数字字符前移2位(例如"5"→"3","0"→"8"),以下python程序能实现该功能的有( )(填字母,多选)
A.c=chr((ord(p)-ord("A")-2)%26+ord("A"))
B.c=chr((ord(p)-ord("A")-2)%10+ord("A"))
C.c=chr((ord(p)-ord("0")-2)%10+ord("0"))
D.c=str((int(p)-2)%10)
C、D
简单加密算法
右移11位,ABC→LMN
右移3位,ABC→DEF
密钥为3的凯撒密码
密钥为11的凯撒密码
偏移位数就是密钥
密码系统包括明文P、密文C、密钥K和密码算法四个方面。
密钥(Key,简称K)是指在密码算法中引进的控制参数,对一个算法采用不同的参数值,其解密结果就不同。加密算法中的控制参数称加密密钥,解密算法中的控制参数称解密密钥。
密钥的概念
3 简单加密算法
加密代码:
ch="Y"
c=chr((ord(ch)-ord("A")+3)%26+ord("A"))
解密代码:
ch="B"
?c="A"p=chr((ord(pord("A")%26+ord("A"))
p=chr((ord(ch)-ord("A")-3)%26+ord("A"))
密文C
明文P
加密:右移3位,密钥K1为3
解密:?
左移3位,密钥K2为3
加密密钥K1==解密密钥K2,对称加密算法
③简单异或法:将明文转为二进制数再按位进行异或运算,数学符号为“ ”。
异或运算规则:
0 0=0
0 1=1
1 0=1
1 1=0
明文(P):01011000(大写字母X)
密钥(K):00100101
密文(C):
01111101
3 简单加密算法
P K = C
C K =
01111101 (密文)
00100101 (密钥)
01011000
P
(明文)
简单异或加密,就是将明文与密钥进行异或运算;
解密,则是对密文用同一密钥进行异或运算。
3 简单加密算法
加密算法 基本思想
替代密码 将明文中的每个位置的字符用其他字符替代,如凯撒密码
换位密码 将明文中字符位置通过一定的规则重新排列。最简单的换位就是逆序法
简单异或 将明文与密钥进行异或运算,解密则是对密文用同一密钥进行异或运算
简单异或
替代密码
换位密码
以下3种加密算法分别对应哪一种加密算法?
明文
用一种或多种简单加密算法,设计一个自己的加密算法。(1)明文与密文
明文:XYZdef67
密文:___________________
(2)编写python程序(参考文件jiami.py)
课堂任务——设计加密算法
用一种或多种简单加密算法,设计一个自己的加密算法。(1)明文与密文
明文:XYZdef67
密文:___________________
(2)编写python程序(参考文件jiami.py)
课堂任务——设计加密算法
54ihgCBA
替代密码+换位密码
课堂任务
mingwen=input("请输入明文:")
n=len(mingwen)
miwen=""
for i in range(n):
ch=mingwen[i]
if "A"<=ch<="Z": #大写字母
ch=chr((ord(ch)-ord("A")+3)%26+ord("A"))
elif "a"<=ch<="z": #小写字母
ch=chr((ord(ch)-ord("a")+3)%26+ord("a"))
miwen=miwen+ch
print("加密后的密文为:", miwen[::-1] )
elif "0"<=ch<="9": #数字字符
ch=chr((ord(ch)-ord("0")-2)%10+ord("0"))
①
②
1. 密码的概念
2. 密钥的概念
3. 简单加密算法
4. 设计加密算法
课堂小结
(1)替代密码
(2)换位密码
(3)简单异或