密码学人需要知道的52个问题
计算机工程学
- 下面的处理器有什么不同:
通用处理器
带有指令集扩展的通用处理器
专用处理器
现场可编程门阵列(FPGA)
-
多核处理器和向量处理器有什么不同
-
请评估下面这些工具相应的计算和存储能力:
智能卡
微型控制器,如传感器节点
嵌入式或者移动计算机,如移动手机和掌上电脑(PDA)
便携试电脑和台式机
理论计算机科学
-
什么是 P类复杂性问题
-
什么是NP类复杂性问题
-
如何解释一个NP类的证明可用多项式时间检验
-
随机性在计算中的作用,什么是BPP类问题
-
交互在计算中的作用,什么是IP类问题
-
香农对熵和信息的定义
数学背景
-
RSA和Strong RSA的区别
-
离散对数问题(DLP),计算性Diffie-Hellman问题(CDH),决策性Diffie-Hellman问题(DDH)分别是什么
-
什么是椭圆曲线群法则
-
简述投影点表示法的用途和优势
-
什么是密钥对
基础密码方案和协议
-
描述RSA-OAEP和ECIES这两个方案的密钥生成,加密,解密算法过程
-
描述 DSA,Schnorr ,RSA-FDH这三个方案的密钥生成,签名和认证算法过程
-
描述并比较DES和AES,尤其是它们轮函数的区别
-
画出ECB,CBC和CTR组密码操作模式
-
描述门限密钥共享方案(Shamir)
-
描述Merkle-Damgaard类型的hash函数
密码部署细节
-
中国剩余定理(CRT)如何提高RSA的性能
-
如何利用Montgomery算法实现快速幂模运算
-
用C实现Montgomery算法
-
描述大整数幂模运算的三种算法:二进制算法,m-ary算法,滑动窗口算法
-
描述利用GF§和GF(2^n)的素数进行模运算的方法
-
描述非邻接表标量乘法运算
安全定义和证明
-
关于对称加密的IND-CCA安全定义是什么
-
关于公钥加密的IND-CCA安全定义是什么
-
关于电子签名的UF-CMA安全定义是什么
-
关于密钥协商的BR安全定义是什么
-
使用game hopping对密码协议进行证明
-
基于规则的安全定义(game based)和基于模拟的安全定义(simulator)有什么不同
数学分析攻击
-
复件攻击如何利用CRT攻击RSA
-
Baby-Step/Giant-Step攻击如何破坏离散对数问题
-
Pollard rho,Pollard “kangaroo”,parallel Pollard rho攻击如何破坏椭圆曲线中的离散对数问题
-
什么是指数计算算法
-
数域筛法(NFS)是怎么工作的
实际攻击
-
隐蔽信道和边信道有什么不同
-
边信道攻击和故障攻击有什么不同
-
DPA和SPA攻击有什么不同
-
是否所有的边信道攻击都和能量分析有关
-
C代码写的Montgomery算法是否会泄露边信道信息
-
描述AES中抵御边信道攻击的基本方法
-
描述ECC中抵御边信道攻击的基本方法
-
描述RSA中抵御边信道攻击的基本方法
先进的协议和体系
-
什么是Fiat-Shamir信息交互协议
-
Sigma协议中的正确性,健壮性,零知识证明是什么
-
TPM安全芯片的用途
-
描述IPSec和TLS的基础安全原理
-
基于签名协议的BLS对是什么
-
基于身份的加密算法模型是什么,描述一个IBE协议
-
某些先进的应用中,例如电子投票,电子竞拍,多平台计算,需要满足什么样的安全需求