我需要实施NTRU公钥密码系统作为我最后一年大学项目的一部分。我试图实现一个算法,通过递归乘以长多项式,但是我在试图理解伪代码时陷入了困境。从伪代码实现递归(NTRUE加密)

Algorithm PolyMult(c, b, a, n, N)

Require: N, n, and the polynomial operands, b and c.

PolyMult returns the product polynomial a through the argument list

PolyMult(a,b,c,n,N)

{

1. if(...)

2. {

3. ...

4. ...

5. ...

6. ...

7. }

8. else

9. {

10. n1 = n/2;

11. n2 = n-n1;

12. b = b1+b2*X^(n1);

13. c = c1+c2*X^(n1);

14. B = b1+b2;

15. C = c1+c2;

16. PolyMult(a1,b1,c1,n1,N);// a1 = b1*c1

17. PolyMult(a2,b2,c2,n2,N);// a2=b2*c2

18. PolyMult(a3,B,C,n2,N);// a3 = B*C=(b1+b2)*(c1+c2)

19. a = a1 + (a3-a1-a2)*X^(n1) + a2*X^(2*n1);

20.}

}

请注意,N,n,n1和n2都是int类型。 a,a1,a2,b,b1,b2,c,c1,c2,B,C都是多项式,用数组表示。

在第16,17和18行,调用函数PolyMult,参数为a1,b1,c1,n1,N然后是a2,b2,c2,n2,N,最后是a3,B,C,n2,N分别。我已经在第16行之前初始化了数组a1,b1,c1,然后我将它们传递给PolyMult本身(递归从这里开始!)并返回一个答案并将它存储在某个临时数组中,比如说我实现了第16行,如下所示:

int z[] = PolyMult(a1,b1,c1,n1,N);

现在我问题是:当将存放在数组z []在程序中再次使用多项式,我看不出有任何迹象表明它会从伪代码再次使用,但如果数组z程序中不再使用[],第16行和递归的关键是什么?我应该如何实施16-18线?

所以要重复一次,在程序中何时以及如何再次使用存储在数组z中的多项式?我应该如何去实施16-18线?

java 递归算法伪代码,从伪代码实现递归(NTRUE加密)相关推荐

  1. JAVA入门级教学之(方法递归)

    目录 JAVA入门级教学之(方法递归) 1.关于方法的递归调用: 2.递归是很耗费栈内存的,递归算法可以不用的时候尽量别用 3.以下程序运行的时候发生了这样的一个错误[不是异常,是错误] 4.递归必须 ...

  2. java递归算法[32]

    java递归算法[32] 文章目录 java递归算法[32] 一.递归定义 二.代码演示 三.递归理解图 四.小结 一.递归定义 递归算法:方法本身调用自己. 1.递归必须要有出口. 2.递归内存消耗 ...

  3. java古典兔子问题c语言,Java递归算法经典实例(经典兔子问题)

    Java递归算法经典实例(经典兔子问题) 题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思 ...

  4. Java 二叉树后序遍历(递归/非递归)

    Java 二叉树后序遍历(递归/非递归) 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次. 设L.D.R分 ...

  5. Java兔子生兔子问题(递归法)

    Java兔子生兔子问题(递归法) 该问题与上楼梯的问题一样,是从反方向思考推导递归公式 /**生兔子问题 * 问题描述: * 新诞生的兔子三个月后会每个月都会产小兔子 * 即: 1 1 2 3 5 8 ...

  6. java基础练习复习二:递归字节流字符流二

    本篇是基于java基础练习复习一:递归&字节流&字符流一, 如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!打开支付宝首页搜"55672346 ...

  7. Java 二叉树中序遍历(递归/非递归)

    Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...

  8. [译] 最佳安全实践:在 Java 和 Android 中使用 AES 进行对称加密

    原文地址:Security Best Practices: Symmetric Encryption with AES in Java and Android 最佳安全实践:在 Java 和 Andr ...

  9. 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...

    求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救! 关注:157  答案:1  mip版 解决时间 2021-02-03 09:1 ...

最新文章

  1. python socket 简介
  2. C++读写局域网共享
  3. 学习笔记Flink(八)—— 基于Flink 在线交易反欺诈检测
  4. 公众号获取用户手机号_小程序中如何获取微信用户绑定的手机号
  5. 项目打包publicpath_将项目部署至github和码云
  6. java成员内部类_Java中的内部类(二)成员内部类
  7. mysql根据已有表创建新表_SQL根据现有表新建一张表
  8. HP服务器集成 iLO 端口的配置
  9. 闲置商标转让怎样管理最好?
  10. (Java)预测身高案例
  11. 知识表示学习研究进展
  12. 计算机不断自动重启,电脑不断自动重启怎么办_解决电脑不断自动重启的方法...
  13. MySQL数据库实操教程(25)——权限管理
  14. 7.1—查找—Sear for a Range
  15. nisp一级练习题及答案
  16. spring-mybatis.xml 里mapperLocations 配置多路径
  17. verilog “function”函数一直报错解决办法
  18. OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
  19. 兴趣图谱必将重塑社交网络及电子商务
  20. W ndows7旗舰版RTM,Windows 7 RTM Build各版ISO详细介绍

热门文章

  1. 如何提高用户体验之某费控独角兽公司的分享-现场分享
  2. oracle中修改sga和pga
  3. MySQL长事务处理办法
  4. pytorch_LSTM_写诗
  5. linux和window时间不一致,linux时间与Windows时间不一致的解决
  6. Java 中 UTC 如何转换 CST(北京时间)
  7. 迎新:Apache IoTDB喜迎1位PMC和4位Committer
  8. WebSocket实现app扫描二维码登录
  9. 京东发布第三季度财报员工总数近50万 “以实助实”助力高质量就业
  10. 获取虚拟账号列表失败啥意思_读取服务器列表失败