After John wrote the abstract "在密码复杂性安全级别上实现程序安全保护方法,主要有两种:函数加密和程序混淆.程序混淆(programobfuscation)是一个编译器,它可将一个程序(布尔表达的电路)转化为可执行的混淆化程序,混淆后的程序与原始程序在相同输入情况下达到相同输出功能,但无法从混淆程序中获得有关原始程序或电路的任何有用信息.程序混淆使软件代码逆项工程在密码学上是可证明困难的,可用于软件产权保护、安全外包计算以及敏感代理操作等场合,也可实现密码学领域中的重加密、不可否认加密以及对称加密转换为公钥加密等应用.目前程序混淆已受到研究人员的广泛重视,然而Barak等(Eurocrypt'01)已证明对一般电路的理想化黑盒安全是不可能的.程序混淆设计要么针对某些具体函数电路,如点函数、多点函数、超平面关系函数以及重加密功能函数等,以达到虚拟黑盒安全的构造,要么弱化安全要求获得实用性可证明安全的程序混淆方案.鉴于程序混淆在理论研究与实际应用上的重要意义,该文对程序混淆技术的系统模型、安全性、方案设计以及性能等作综述性研究和比较分析,从混淆函数电路的可能性和不可能性角度作了归纳,并对典型的函数电路混淆作了描述和探讨.对VBB安全混淆、VGB安全混淆、最可能混淆、可提取混淆以及不可区分混淆等安全模型进行了分析探讨.最后对密码技术实现的混淆在性能上进行定义和归纳,对当前方案作比较分析,并对今后的研究方向作了展望.", he wrote these keywords "不可区分混淆, 功能保持, 虚拟黑盒, 实现". Do you think his choice of keywords was correct? Answer yes or no.
no