java实现分数类型的运算

1. 背景

在使用pailler算法加密后,只能对密文做整数加乘,遇到小数情况想到用分数来表示,这样运算过程中只涉及到整数。

2. java实现分数

Java语言实现分数的加减乘除
【java面对对象】分数类型加减乘除运算的实现
【呕心沥血整理!】Java设计一个分数类,分数的分子和分母用两个整型数表示
四十八.面向对象程序设计——Java语言第一周编程题:分数
分数加法通分时,注意分母取最小公倍数。

3. 密文场景注意事项

分数涉及时,分子是密文,分母是明文,这样在做通分的时候,恰好运用pailler加密支持标量乘的特性。
另外密文减法可以转换为加法实现,e(m1-m2)=e(m1+(-m2))=e((-m2)+m1)=e(-m2)+e(m1) 其中m表示明文,e(m)表示对m加密
基于此,可以实现此分数类型的加、减、平均、加权平均、标量乘运算,其他运算类型暂未考虑【先满足当下需求。。。】
密文加减乘除适用性

参数对类型
(正,正) 1 1
(正,负) 0 0
(负,正) 1 0
(负,负) 0 1

4. 拓展

pailler加密算法已经能支持很多的密文计算,计算效率还待测试,尤其在大数据场景下;

posted @ 2022-10-18 09:46  钱塘江畔  阅读(245)  评论(0编辑  收藏  举报