第五个知识点 复杂性为NP类是什么意思 原文地址:http://bristolcrypto.blogspot.com/2014/11/52-things-number-5-what-is-meant-by.html 这是52个密码学知识点的第五篇.我们继续关于NP的复杂性理论部分. 上周,Ryan给我们介绍了P类复杂问题的定义: P 就是一类能被确定的图灵机在有限时间内判定的语言. 这周我们介绍另一个复杂类: NP就是一类能被非确定的图灵机在有限时间内判定的语言. 什么是非确定的图灵机(NDTM…
Java反射机制demo(五)—获得并调用一个类中的方法 这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMethos()方法. 待获取的类: package com.aaron.reflect; public class Heros { private String name;//名字 private String type;//类型 private i…
Python 五个知识点搞定作用域 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(name) for i in range(10): age = i print(age) 我们先看下执行结果 #输出 1 lzl 9 代码执行成功,没有问题:在Java/C#中,执行上面的代码会提示name,age没有定义,而在Python中可以执行成功,这是因为在Python中是没有块级作用域的,代码块里的变量…
第五十个知识点:什么是BLS基于对的签名方案? BLS签名方案使用了椭圆曲线上了Weil对,本质上是一个在曲线上除n划分的双线性形式,使用 \(n^{th}\) 个单位根. 假设我们有一个椭圆曲线\(E/F_{3^l}\),根据原始论文中的记号,方案如下描述: 密钥生成:让\(E/F_{3^l}\)是一个椭圆曲线,\(q\)是这个曲线阶数的最大因数.让\(P\)是其中的一个阶数是\(q\)的点,然后随机的选择\(x \in Z_q^*\).最后让\(R = x \cdot P\).那么输出\((…
第十五个知识点:RSA-OAEP和ECIES的密钥生成,加密和解密 1.RSA-OAEP RSA-OAEP是RSA加密方案和OAEP填充方案的同时使用.现实世界中它们同时使用.(这里介绍的只是"textbook rsa-oaep") 1.1 RSA[1] RSA是一种最早的公钥加密场景.它基于RSA问题的困难性(之前的博客说过).这里重新复习一下RSA的原理. 密钥生成: 生成两个大素数\(p,q\)同时计算模数\(N=pq\). 选择一个随机的数\(e \in Z_N .\)S.T.…
第二十五个知识点:使用特殊的素数定义\(GF(p)\)和\(GF(2^n)\)的方法. 在我们之前看到的博客中,当实现密码学方案时,一个最频繁调用的操作就是模运算.不幸的是,尽管模块化的使用非常广泛,但是它不能像其它算术运算(如加法和乘法)那样容易的执行.蒙哥马利表达提供了一种解决方案,这里我们讨论另一种解决方法--伪梅森素数规约. 定义:如果一个素数\(p\)被写成如下形式,那么就称\(p\)位伪梅森素数.其中\(b=2,c=1\)时就是梅森素数. \[P = b^n-c,其中0<|c|<2…
第三十五个知识点:给针对ECDLP问题的Pollard rho,Pollard "Kangaroo",parallel Pollard rho攻击的一个粗略的描述 我们的目标是对任意一个有限循环阿贝尔群\(G\),解决离散对数问题\(h = g^x\).问题进行详细描述,给定一个循环群\(G = <g>\),\(G\)的阶是素数\(p\),给定\(G\)中元素\(h\),我们需要找到这样的\(x\)使得\(h = g^x\)成立.我们使用上一篇中的方法进行计算时,时间复杂度…
第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-describe-some-basic.html 为了让这篇文章保持简单,我们将会我们将讨论所谓的"香草"RSA(在加密中不使用随机性),并强调少量潜在的侧通道攻击和对策. 让我们回顾一下简单的RSA加密方案. 密钥生成:选择一对秘密的素整数\(p\)和\(q\),然后计算模\(N = pq\…
前面在举例时有出现过String的例子,当时肯定有一部分朋友不知道这个是做什么用的.其实String类是Java中一个比较特殊的类,字符串即String类,它不是Java的基本数据类型之一,但可以像基本数据类型一样使用,声明与初始化等操作都是相同的,是程序经常处理的对象,所以学好String的用法很重要. 一.创建字符串 在Java中用String类的构造方法来创建字符串变量,常用构造方法如下: 1. 使用String()方法初始化一个新创建的String对象. String s = new S…
CSS 基础知识点汇集 版权声明:这篇博客是别人写的,大神博客地址 : https://www.cnblogs.com/Mtime/p/5184685.html 1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网页表现与结构分离的一种样式设计语言.样式通常存储在样式表中,外部样式表通常存储在 CSS 文件中,多个样式定义可层叠为一. HTML 标签被设计为用于定义文…