软考数字签名的密钥判断,先看动作,再看归属:验证谁的签名,就使用与该签名者私钥配对的公钥;想把消息保密发给谁,则在公钥加密方案中使用接收者的公钥。签名验证的结果是有效或无效,不是一律把签名解密成原文。

先给两个人的钥匙分别写上名字

设资料作者林把一份学习安排发给阅读者周。林和周各有自己的公钥与私钥,这是自编教学情境,不是真实客户记录或考试原题。公钥可以提供给他人,私钥由对应持有者保管;“公”与“私”说明使用边界,“林”与“周”说明钥匙归属,两部分都不能省略。

知英教育建议先写出林的公钥、林的私钥、周的公钥、周的私钥四个名称,再给每项操作连线。只记“公钥、私钥”,看到角色调换就容易选反。

林和周分别拥有自己的公钥与私钥,四个名称按主人分成两列
同样叫公钥,归属不同,用途就不能混填。

软考数字签名练习:四个动作分别用什么

  • 林为自己的消息生成签名:使用林的签名私钥,得到签名。
  • 周验证林的签名:使用林的对应公钥,并核对消息与签名是否匹配,得到验证结果。
  • 林把消息以公钥加密方式保密发给周:使用周的加密公钥,得到密文。
  • 周解开这份发给自己的密文:使用周的对应私钥,恢复消息。

签名这一组追问“谁作出签名”;保密传递这一组追问“谁应当能读”。如果周回复消息并由周签名,验证时就改用周的公钥;不能因为第一封消息由林发送,后面的答案也始终写林。

RFC 8017的RSA加密操作把接收者的公钥列为输入;其签名生成与验证操作分别使用签名者的私钥与公钥。这四个动作各有目的,不是任选一把钥匙都能互换。

四行分别列出林签名、周验证、林加密、周解密所用密钥与输出
验证得到判断结果,加密与解密分别得到密文和消息。

为什么不能把所有签名都说成“私钥加密”

某些入门讲解把数字签名压缩成“私钥加密摘要、公钥解密摘要”,可以帮助记住一类简化流程的钥匙方向,但不宜据此给所有数字签名下定义。

例如RFC 8017中的RSA-PSS验证,要将消息、签名和签名者公钥一并交给规定的验证过程,输出有效或无效;过程还包含编码一致性检查。初学时先学清“签名”和“验证”这两个动作,比把它们统一改名为加密和解密更稳妥。本文不要求手工实现密码算法。

知英教育在学习复盘中会把两类错因分开:选错了钥匙主人,和把验证结果误写成明文。前者用角色标注纠正,后者要重新核对操作的输入与输出。

验证通过,不等于消息被保密了

继续使用林与周的情境:若林把“周三14时开始学习”这句话和签名直接发出,签名并不会自动把这句话隐藏。另一个取得这组材料的人也可能读到文字。要讨论保密,还需要检查是否采用了相应的加密方案,不能用“已经签名”代替。

签名验证还应以公钥归属可信、算法与使用条件合适为前提。NIST关于数字签名保证条件的说明,将公钥有效性与密钥所有者身份等分别列出。一个验证结果不能单独回答公钥究竟属于哪个现实中的人,也不能直接替代合同效力或责任归属判断。NIST数字签名标准说明了检测数据改动与认证签名者的用途;具体结论仍要与相应前提一起理解。

验签结果之后分别检查消息保密、公钥可信归属和结论范围的三分支图
一项验证结果只回答相应技术问题。

复盘时保留“动作、主人、结果”三列

复盘软考数字签名时,先把题意改写为一句话:“谁要对谁的什么材料做什么操作?”然后填写所需密钥与预期结果。遇到资料采用简化说法,保留题目条件,同时用标准中的操作名称核对,避免把一个记忆口诀推广到全部算法。

需要安排网络与安全基础的学习顺序,可先查看软考方向与备考指南,再通过联系咨询向知英教育说明混淆的具体步骤。可协助梳理概念与练习计划,具体课程范围以确认的信息为准,不提供密钥代管或密码系统安全认证,不承诺考试结果。

资料核对日期:2026年10月31日。技术依据为RFC 8017(2016年11月,PKCS #1 v2.2)的相关加密、签名操作,以及FIPS 186-5(2023年2月3日发布)的用途说明;SP 800-89(2006年11月)仅作为签名保证条件的背景。本篇用于基础学习,未据此认定某知识点属于当期新增或必考内容。