第二周作业:“RSA”、“数字签名”、“公钥”、“DES“的解释; 判断一个正整数是否为质数的算法;随机生成一个n bit位的长整数

作业解答:

1、数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

RSA 公钥 加密算法是1977年由 罗纳德·李维斯特(Ron Rivest)、 阿迪·萨莫尔(Adi Shamir)和 伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。 RSA是目前最有影响力的 公钥 加密算法 ,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥 数据加密标准
公钥是与 私钥 算法一起使用的 密钥 对的非秘密一半。公钥通常用于加密会话 密钥 、验证 数字签名 ,或加密可以用相应的 私钥 解密的数据。
DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

2、 判断一个正整数是否为质数的算法
package exercise1;

import java.util.Scanner;

public class Demo {
	 public static void main(String[] args){
		 Scanner input = new Scanner(System.in);
		  System.out.println("请输入一个数:");
		  long a = input.nextLong();
		  Demo demo=new Demo();
	      demo.isPrime(a);
	 }
	  
	  public  void isPrime(long a){
		 
	  boolean isF = true;
	        
	  for(int i=2;i<a;i++)
	  {
	   if(a%i==0){
	    isF = false;
	    break;
	   }else{
	    continue;
	   }
	  }
	  if(isF){
	   System.out.print("1");
	  }else{
	   System.out.print("0");
	
	  }
	    
	 }

	}

3、 随机生成一个n bit位的长整数
package exercise1;

import java.util.Scanner;

public class Demo {
	 public static void main(String[] args){
		 Scanner input = new Scanner(System.in);
		  System.out.println("请输入一个数:");
		  int a = input.nextInt();
		  Demo demo=new Demo();
		  System.out.println("返回:"+demo. createRndInteger(a));
	      
	 }
	  
	  public  long createRndInteger(int n){
		 
		  long lon=(int)(Math.random() * (Math.pow(2, n)-1)); 
	       return lon;
	
	  }    
 }

。。。

你可能感兴趣的:(第二周作业:“RSA”、“数字签名”、“公钥”、“DES“的解释; 判断一个正整数是否为质数的算法;随机生成一个n bit位的长整数)