软考密码学(二)

密码学应用

更多内容请访问我的博客

数字签名

完善的签名需要满足三个条件:

  • 签名者事后不能抵赖
  • 任何其他人不能伪造签名
  • 如果双方关于签名真伪发生争执,能够在公正的仲裁者面前通过验证签名来确认真伪

数字签名包括两个方面:施加签名和验证签名

RSA的签名机制

使用RSA
签名:S_A=D(M,K_{dA})=(M^d)\quad mod \quad n\\ 验证:E(S_A,K_{eA})=(M^d)^e \quad mod \quad n=M
使用签名需要注意:

  1. 不对M签名而应该对Hash(M)签名
  2. 使用时间戳
  3. 如果需要同时确保秘密性和完整性,应该先签名后加密

SM2的签名算法

签名过程:

  1. M'=Z_A||M
  2. 计算e=H_v(M'),将e转换为整数
  3. 用随机数发生器生成k,[1,n-1]
  4. 计算椭圆曲线点(x_1,y_1)=[k]G,x1转换为整数
  5. 计算r=(e+x_1)mod\quad n,若r=0r+k=n则返回第三步
  6. 计算s=((1+d_A)^{-1} (k-rd_A)mod\quad n若s=0返回第三步
  7. 将r,s转换为字符串,M的签名为(r,s)

验证过程:

  1. 验证r',s'是否在[1,n-1]
  2. M_1'=Z_A||M'
  3. 计算e'=H_v(M_1'),将e‘转换为整数
  4. 将r',s'转换为整数,计算t=(r'+s')\quad mod \quad n,若t=0,验证不通过
  5. 计算椭圆曲线点(x_1',y_1')=[s']G+[t]P_A
  6. 计算R=(e'+x_1')\quad mod\quad n,验证R=r',相等则通过,不等则不通过

认证

认证的基本思想:通过验证称谓者的一个或多个参数的真实性和有效性

常用参数:口令、标识符、密钥、信物、智能卡、指纹、虹膜等

对比签名与验证:

  • 认证总是基于收发双方共享的保密数据来认证被鉴别对象;数字签名中验证签名的数据是公开的
  • 认证允许双方互相验证,不允许第三方认证;数字签名任何人都可以验证
  • 数字签名具有发送不能抵赖、接受不能伪造、公证人前可以解决纠纷的能力,认证不一定具有

如果收发双方都是诚实的,只有认证就够了,不需要签名

身份认证

身份认证目的在于识别用户合法性

  • 口令认证
  • 生物特征认证

口令认证

简单的口令认证存在的一些问题

  1. 攻击者可能从口令表获取用户口令
  2. 攻击者可能在传输线路截获用户口令
  3. 系统和用户地位不平等,用户无法验证系统身份

改进:

  1. 系统存储中利用单向函数加密口令,不保存明文
  2. 利用数字签名的方法验证口令
  3. 口令的双向验证
  4. 一次性口令

双向验证的过程如下,A与B通信,P_A,P_B为两者的口令

  1. A->B:\quad R_A
  2. B->A:\quad f(P_B||R_A)||R_B
  3. A->B:\quad f(P_A||R_B)

这个步骤的前提是,A、B本地均有对方的真实密钥,但是不确定通信的对方是真实的,因此通信中不能将自身的真实密钥发送过去

上面的f代表的是一个单向函数

生物特征认证

使用生理特征的认证要求该特征具有不可复制的特点,必须具有唯一性 和稳定性

报文认证

报文认证的目的是能够确认:

  • 报文是意定的发送方发出的
  • 报文发给的是意定的接收方
  • 报文内容没有被篡改或错误
  • 报文按照确定的次序接受

报文源认证

传统密码

设通信双方为A,B;AB共享密钥K_S, A的标识为ID_A

B为接收方,要验证A
A->B:\quad E(ID_A||M,K_S)
因此该过程中A的每一份报文都需要增加表示ID_A,然后用K_S加密发给B

公钥密码

使用公钥密码认证报文源的过程很简单,只需要发送方对报文签名,接收方验证签名即可;
A->B:\quad D(ID_A||M,K_{dA})

报文宿认证

传统密码

在每份报文中加入接收方的标识符ID_B
A->B:\quad E(ID_B||M,K_S)

公钥密码

发送方对每份报文使用接收方的公钥加密即可
A->B:\quadE(ID_B||M,K_{eB})

报文内容认证

报文内容认证使接收方能够确认报文内容的真实性,可以通过MAC的正确性实现

报文加密

即传统密码直接加密

MAC

通信双方共享密钥K,发送信息时计算MAC=C(M,K)
A->B:\quad M||MAC
接收方收到后先用K计算MAC,对比是否相等

HMAC

HMAC_K=H[(K^+ \oplus opad)||H[(K^+\oplus ipad)||M]]

其中K^+指的是在K左边填充0后形成标准块的b位结果

opad=01011100重复b/8次的结果

ipad=00110110重复b/8次的结果

b为每个分组所含的位数

密钥管理

密钥管理包括密钥的产生、存储、分配、组织、使用、停用、更换、销毁等问题

密钥管理的基本原则:

  • 区分密钥管理的策略和机制
  • 全程安全原则
  • 最小权利原则
  • 责任分离原则
  • 密钥分级原则
  • 密钥更换原则
  • 密钥应选择长度足够,随机

密钥的分级安全性

密钥分为三级

  • 初级密钥
  • 二级密钥
  • 主密钥

初级密钥直接用于加解密数据,记为K

其中用于通信的密钥K_C

用于会话的密钥K_S

用于加密文件的密钥K_F

初级密钥受到二级密钥的保护

二级密钥生存周期相对更长,可以由专业的密钥安装人员批准后由系统自动产生也可以时直接由专职密钥安装人员提供

二级密钥记作K_{NC}K_{NF}

二级密钥受到主密钥保护

主密钥记为K_M由密钥专职人员随机产生并妥善安装

对称密码密钥管理

对密钥的要求:良好的随机性、长周期性、非线性、等概性及不可预测性

密钥的产生

主密钥应该是高质量的真随机序列

二级密钥可以用主密钥和一个强密码算法生成,也可以是真随机的
K_N=E(E(E(E(i,RN_1),RN_2),RN_1),RN_3)
经过四层加密得到二级密钥,其中三个RN都是用生成主密钥一样的方法生成的随机数

i为一个序数,即使知道i也很难猜测出K_N

初级密钥常常直接是收到高级密钥和随机数生成的
RD=E(K_S,K_M)或RD=E(K_S,K_{NC})\\ K_S=D(RD,K_M)或K_S=D(RD,K_{NC})

密钥的存储

主密钥只能以明文形式存储,因此要求存储器高度安全

二级密钥可以是明文也可以是密文,相对的以密文存储时对存储器要求降低

初级密钥的生命周期与会话时间/文件生命周期相同,因此一般以二级密钥加密的形式存储

非对称密码密钥管理

非对称密码的加密钥可以公开,但是需要保护其真实性和完整性

公钥基础设施PKI

采用数字签名可以确保公钥的安全分配,需要由CA签署证书

本质上PKI是一种公钥密码的密钥管理平台

CA签发机构;RA注册机构;证书的签发;证书的撤销;

CA采用证书目录的方式集中存储和管理证书

证书目录目前没有一个统一的标准,但X.500标准比较受欢迎

此外还有LDAP协议,即轻型目录存取协议

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 密钥   ——秘密的精华 什么是密钥 密钥就是一个巨大的数字  在使用对称密码、公钥密码、消息认证码、数字签名等密...
    Invincibled阅读 2,528评论 0 3
  • PGP    ————密码技术的完美组合 PGP简介  PGP是于1990年左右由菲利普.季默曼(Philip Z...
    Invincibled阅读 2,226评论 0 3
  • 原文地址 https://mbinary.coding.me/introduction-to-bitcoin.ht...
    mbinary阅读 5,088评论 0 4
  • 1 公钥私钥 2 公钥加密 别人用A的公钥加密传输的信息,只有A的私钥可以解密。保证了传输的信息的安全性。 2 私...
    skykira阅读 948评论 0 1
  • 巨蟹的本性,有个温暖的家,属于自己的小天地。 现在的我寄居在姐姐家里的一张上下铺的上铺,因为这里够私密,够没人打扰...
    你的蓝胖子阅读 142评论 0 0