一、目标 李老板:什么叫白盒AES算法? 奋飞: 将密钥进行白盒化处理,融入到整个加密过程中,使密钥无法跟踪还原,保障密钥安全。 我们今天用一个源码实例来操作一下,还原白盒AES算法的密钥 二、步骤 构造缺陷数据 DFA攻击简单来说就是在倒数第一轮列混合和倒数第二轮列混合之间(在AES-128中也就是第8轮和第9轮之间,因为最后第 今天我们主要走一遍DFA还原白盒密钥的流程,所以,我们找了一个AES的源码来做演示,这份源码的AES加密流程一目了然,最适合学习AES算法了。 三、总结 1、DFA的原理和数学推导请参考下列资料,还有白龙写的 白盒 AES 密码学系列 也非常棒。 4、分析加密算法,最好找个清晰的源码实现,然后和样本里的逻辑相互对照。 图片 美妙人生的关键在于你能迷上什么东西。
白盒测试:是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解, 白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。 白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。 3. 黑盒测试又叫功能测试,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。 灰盒测试:白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。灰盒测试就是这类界于白盒测试和黑盒测试之间的测试。 人工检查: (1)、检查算法的逻辑正确性:确定所编写的代码算法、数据结构定义(如:队列、堆栈等)是否实现了模块或方法所要求的功能。
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
文章转自:http://www.51testing.com/html/44/n-3713444.html 白盒测试用例设计的一个很重要的评估标准就是对代码的覆盖度。 一说到覆盖,大家都感觉非常熟悉,但是常见的覆盖都有哪些?各自有什么优缺点?在白盒测试的用例设计中我们应该如何自如地运用呢?今天小编就为大家总结了一下几种常见的覆盖以及各自的优缺点。 白盒测试中常见的覆盖有六种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。下面我们就分别看看这几种不同的覆盖究竟是什么鬼。 当然不能讲得这么绝对,它的缺点也是显而易见的:由于需要对所有可能的路径全部进行覆盖,那么我们需要设计数量非常巨大的而且较为复杂的测试用例,用例数量将呈现指数级的增长。 在实际的操作中,要正确使用白盒测试的代码覆盖方法,就要从代码分析和代码调研入手,根据调研的结果,可以选择上述方法中的某一种,或者好几种方法的结合,设计出高效的测试用例,尽可能全面地覆盖到代码中的每一个逻辑路径
图像卡通化的例子 如上图所示,左图为真实图片,右图为卡通化的结果。 [这里文章没有给出明确的证据] 那么这个工作的特点在于借助一下绘画专家的知识以及绘画的一些行为,提出了3种白盒表征(White Box Representation): 表面表征(Surface Representation 结构表征 如上图所示,应该有两个步骤: 超像素处理 选择性搜索 作者首先使用felzenszwalb算法对图像进行分割,该算法是一个基于图的分割算法,这里不多赘述。 超像素方法会对这些分割块进行染色,一般来说会使用区域的平均像素值作为染色的值。 作者发现,在超像素处理过程中,更低的对比度,会使图片更暗,进而产生迷雾(hazing effect)的效果。 内容误差形式 这个内容误差是为了保证语义的不变性而设置的。 针对具体的效果,这里只展示部分结果,有兴趣的同学可以去他的github查看 ?
读者提问:什么是白盒测试,测试方法有哪些 ? 阿常回答: 一、白盒测试 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 我们可以把软件当成一个透明的盒子,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。 需要注意的是,做白盒测试需要精通编程语言哦。 二、测试方法 1、白盒测试法 代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。 2、覆盖标准 逻辑覆盖、循环覆盖和基本路径测试。 阿常碎碎念: 因为白盒测试对于编程水平要求较高,白盒测试通常是由开发人员在做单元测试时执行的。 精通一门编程语言比如 Java / Python 的测试人员,写自动化脚本时可以通过做白盒测试来检查程序的内部逻辑。
一 白盒测试的主要技术 对简单的程序流程而言,确定程序的路径有多少条可通过:语句覆盖(覆盖率100%);分支(判定)覆盖(覆盖率85%);条件覆盖;分支-条件覆盖;条件组合覆盖;路径覆盖(覆盖率80%) 来确定,这也是白盒测试的主要技术。 1.1语句覆盖(覆盖率100%) 使程序中每个语句至少执行一次 1.2分支(判定)覆盖(覆盖率85%) 使每个判定的真假分支都至少执行一次 1.3条件覆盖 使每个判定的每个条件的可能取值至少执行一次 1.4分支-条件覆盖 选取足够多的测试用例,使判断中的每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。 1.5条件组合覆盖 所有可能的条件取值组合至少执行一次 1.6路径覆盖(覆盖率80%) 二、白盒测试的辅助技术 对简单的程序流程而言,可通过以上方法确定程序的路径有多少条,但对复杂的程序,必须通过程序的控制流图来确定程序的路径
这些扫描工作是异步进行的,而且只有启动扫描的用户自己才能看到扫描结果。 Raptor的一些特性: 插件体系结构(新加入的插件能直接使用+生成统一报告) WEB服务可以定时自动化运行(不需要去UI界面操作) 为新的漏洞或者编程语言,进行创建/编辑/删除签名的操作 笔者声明一下 ,这个项目是为了帮助社区和初创企业进行代码安全检测,可能不会有商业产品的那样的质量保证。 /文件名的正则匹配,避免raptor去扫一些无用的文件如jquery.min.js,或者去深入扫描/test/这样的目录。 这是在扫描器扫描完issue后进行的,它会依次遍历发现的issue,然后去除其中(ignore_list.rulepack)里面匹配到的内容。
,即白盒测试,主要用于帮Java开发人员编写单元测试代码。 Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这些条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。 由于Junit相对独立于所编写的代码,所以测试代码的编写可以先有实现代码的编写,XP中推崇的Test First Design的实现有了现成的手段:用Junit写测试代码,写实现代码,运行测试,测试失败 ,修改实现代码,在运行测试,直到测试成功。 TestCase继承自Assert,因此可以实现各种断言。
白盒和黑盒模型 AI模型可以是(i)白盒或(ii)黑盒。 白盒模型可以通过设计来解释。因此,它不需要额外的功能来解释。 黑盒模型本身是无法解释的。 基于规则和基于案例的学习算法比较 假设我们的模型需要学习如何做苹果派的食谱。我们有蓝莓派、奶酪蛋糕、牧羊人派和普通蛋糕的食谱。 XAI: 设计白盒模型 包括基于规则和基于案例的学习系统,我们有四种主要的白盒设计: 手工制作的专家系统; 基于规则的学习系统:从归纳逻辑规划、决策树等数据中学习逻辑规则的算法; 案例学习系统:基于案例推理的算法 他们利用例子、案例、先例和/或反例子来解释系统输出;和 嵌入式符号和提取系统:更多的生物启发算法,如神经符号计算。 最后总结 在本文中,我们: 简要介绍XAI与NSC的异同; 定义并比较黑盒和白盒模型; 使黑盒模型可解释的方法(模型属性,局部逻辑,全局逻辑); 比较基于规则的解释和基于案例的解释,并举例说明。
白盒测试方法按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。 白盒测试的主要方法有逻辑覆盖、基本路径测试等 逻辑覆盖包括: 1、语句覆盖 2、判断覆盖 3、条件覆盖 4、判断/条件覆盖 5、条件组合覆盖 6、路径覆盖 黑盒测试并不涉及程序的内部结构和内容特性,主要根据规格说明 ,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。
这跟utf-8的规则有关,UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。 剩下的没有提及的二进制位,全部为这个符号的unicode码。 世界上的多字节编码有很多,特别是韩国、日本及一些非英语国家的cms,都可能存在由字符编码造成的安全问题,大家应该有扩展性的思维。 这篇文章是我对于自己白盒审计经验的一点小总结,但自己确实在很多方面存在欠缺,文中所提到的姿势难免存在纰漏和错误,希望有相同爱好的同学能与我指出,共同进步。 但我确实在写文章以及以前的审计过程中找到不少cms存在的编码问题。 所以我用实验的形式,自己写了的php小文件,给大家作为例子,希望不会因为例证的不足,影响大家学习的效果。
大多数解释方法可以分为黑盒和白盒两类,白盒解释方法假设神经网络的所有参数都是已知的,可以用来解释神经网络的输出结果。因此,这类方法不依赖于近似,可以直接根据神经网络的结构计算出函数fN的解释。 如图1所示,通过计算曲线下面积(AUC)可知,白盒解释方法的简洁性平均比黑盒方法高30%,且白盒方法的效果总是接近甚至优于Brute-force方法。 在稀疏性方面,白盒解释方法的稀疏度比黑盒方法高19%,白盒方法为更多特征分配了接近于零的值,而黑盒解释方法给出的特征的相关性值在零附近的分布更广,从而使MAZ的斜率更小,接近于0。 使用白盒(上)和黑盒(下)方法对VulDeePecker系统的决策进行解释。 根据表2的结果可知,在白盒和黑盒解释方法中,效果最好的分别是IG和LIME。 根据是否掌握神经网络的架构和参数,可以选择使用白盒或者黑盒的解释方法来理解系统的决策。
编者按:白盒交换机将软件与硬件进行解耦,用户可以在白盒交换机上自主灌装软件,用户的选择空间更大,而且性价比非常高。在这个“用户为王”的时代白牌交换机受到越来越多人的推崇。 随着SDN的初始用例不断增多,白盒交换机的基本设计方案在未来SDN发展中将占据越来越重要的位置。 ? 白盒交换机通常被视为一种降低成本的方法,但是它更大的价值在于提高网络的可编程能力和自动化。 Cumulus Networks有适用于数据中心的白盒交换机。人们通常会用它来支持SDN堆叠网络,但是它本身并不是SDN。” 下面将针对这个特点来介绍三个使用拍盒交换机实现网络可编程性的用例。 在白盒交换机上运行Cumulus Linux可以帮助DreamHost提升Linux平台的性能和实现网络可见性,同时让它的工程师能够使用现有的Linux服务器管理工具实现网络自动化。 一个Linux服务器可能只有2~4个2层和3层连接以太网端口,而Cumulus白盒交换机则有48个10GB端口。 DreamHost使用DevOps工具Opscode Chef实现服务器与网络编制。
AT&T计划在未来几年内在其网络中安装超过6万台开源软件驱动的白盒设备,以支持其5G计划。该运营商本周一表示,这些白盒路由器是其积极重组网络架构的重要组成部分,也是支持5G服务的关键。 ? AT&T实验室首席技术官兼总裁Andre Fuetsch在一份声明中表示:“白盒代表了传统服务提供商模式的根本改变,我们不再受传统厂商的芯片和功能的限制,我们正在为白盒编写开放的硬件规格,并为这些设备提供开源软件 dNOS将作为支持AT&T的5G蜂窝基站部署的白盒内操作系统使用。 AT&T实验室兼Domain 2.0高级副总裁Chris Rice表示,dNOS的努力以及发布的白皮书是该运营商内部白盒工作的高潮。 虽然AT&T在dNOS白皮书中提到了路由器,但那是因为在AT&T看来在路由上的实现更难。” MEC和ONAP 部署在6万台白盒设备上的dNOS软件将成为AT&T围绕多接入边缘计算(MEC)工作的重要组成部分,结合5G技术,将有助于实现低延迟的应用,如增强现实和无人驾驶汽车。
根据IHS Markit的数据显示,数据中心领域白盒服务器的采用已经超过了品牌服务器。 ? 白盒OEM厂商包括QCT、Wiwynn、Inventec在内的提供机架式服务器硬件与单独销售的操作系统软件,在2018年第一季度数据中心出货量中占据了27%的市场份额,出货量超过了72.4万台白盒设备。 白盒设备在数据中心服务器收入中排名第一,占第一季度收入的21%,约为38亿美元。Dell EMC排行第二,约占第一季度收入的20%,约为36亿美元。其次是HPE,占比为18%,约为32亿美元。 IHS的数据在IDC公布数据之后一周发布,IDC的数据中将Dell EMC列为全球服务器收入和服务器提供商的第一名。根据IDC的数据显示,HPE在服务器收入和出货量方面排行第二。 据IHS称,开放计算服务器在第一季度也有不错的表现。第一季度的开放计算收入同比增长68%,达到13亿美元。 根据IHS的数据,整个数据中心服务器的收入在2018年第一季度达到了179亿美元。
一、白盒测试的主要测试方法 1、代码检查法2、静态结构分析法3、静态质量度量法4、逻辑覆盖法5、基本路径测试法(应用最广泛)6、域测试7、符号测试8、Z路径覆盖9、程序变异 二、基本路径测试法 1、定义 设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。 2、基本路径测试法的基本步骤 1) 程序的控制流图:描述程序控制流的一种图示方法。 2) 程序圈复杂度:McCabe复杂性度量。 4) 准备测试用例:确保基本路径集中的每一条路径的执行。 3、基本路径测试法的工具方法 1) 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。 三、程序的控制流图 控制流程图是描述程序控制流的一种图示方法。圆圈称为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句流图只有二种图形符号:图中的每一个圆称为流图的结点,代表一条或多条语句。 有以下三种方法计算圈复杂度: A 流图中区域的数量对应于环型的复杂性; B给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图 中结点的数量; C 给定流图G的圈复杂度
GMSSL模块介绍 GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法、项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。 安装模块 pip install gmssl #https://github.com/duanhongyi/gmssl/blob/master/README.md官方文档 SM2算法 RSA算法的危机在于其存在亚指数算法 ,对ECC算法而言一般没有亚指数攻击算法 SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题 gmssl是包含国密SM2算法的Python实现, 提供了 encrypt、 decrypt等函数用于加密解密, 用法如下: 1. gmssl是包含国密SM4算法的Python实现, 提供了 encrypt_ecb、 decrypt_ecb、 encrypt_cbc、 decrypt_cbc等函数用于加密解密, 用法如下: 1.
SM2、SM3、SM4商用密码算法。 10-11.png (6)白盒密钥管理 在访问API接口服务时,需要API鉴权的密钥或者Token,例如云API访问时需要 SecretId 和 SecretKey,对于这类特殊数据的保护场景,推荐使用白盒加密的方式来保护 白盒算法是将算法和密钥进行混淆,整个加密过程中都不需要明文密钥,从而解决了标准密码算法中明文密钥的问题。 使用过程中用户作为管理员角色,创建白盒密钥对API Key进行加密,并把白盒解密密钥和API Key密文分发给相应的开发或运维人员部署,使用白盒解密密钥和白盒SDK解密API Key密文至内存中使用,通过这样的方式有效对 11.png 另外,白盒密钥管理支持指定设备绑定,限定白盒密钥解密的环境,即使密钥全部丢失情况下,脱离环境也无法进行解密,进一步加固保护API Key的安全性。 2.
大家好,又见面了,我是你们的朋友全栈君。 网上有很多网友问算法SM2怎么使用?什么是压缩公钥和非压缩公钥?xB和yB这参数是什么?怎么使用SM2做加解密?如何签名和验签? 这里分享个自己用QT造的一个小工具,简单好用,同时也增加支持了SM3、SM4国密算法。且有详细的过程日志,可以保存为文件。用来对SM2国密算法做加解密和签名,验签,秘钥生成再合适不过了。 完整版的下载: sm2国密算法工具完整版,包含sm2,sm3和sm4-QT文档类资源-CSDN下载 工具源码的下载: sm2国密算法加解密、签名、验签QT工具源码(包含sm2,sm3和sm4源代码)-C 感兴趣的可以查下什么是对数问题。 查阅《GMT 0003-2012》这份标准文档,有SM2算法的设计背景知识供解读。 对于开发者而言,在使用ECC密码学的时候,就是选择具体的命名曲线。 SM2算法是ECC算法的一种,相当于是设计了一条ECC命名曲线。 为什么要大力推广国密算法,当然是因为安全了。
SM2算法 SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能 SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高 学习sm2算法,首先学习ECC算法 ECC 另外,SM2推荐了一条256位的曲线作为标准曲线。 SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。 ) 下面的是实现了SM3的标准输出 SM4 此算法是一个分组算法,用于无线局域网产品。 基本密码部件:SM4密码算法使用了S盒、非线性变换τ、线性变换部件L、合成变换T基本密码部件。 轮函数:SM4密码算法采用对基本轮函数进行迭代的结构。利用上述基本密码部件,便可构成轮函数。
密钥管理系统(KMS)是一款数据加密类服务,可以让您轻松创建和管理加密应用中的密钥,保护密钥的保密性、完整性和可用性,符合行业监管和国密合规要求。
扫码关注腾讯云开发者
领取腾讯云代金券