第一范文网 - 专业文章范例文档资料分享平台

作业文档

来源:用户分享 时间:2026/8/13 5:02:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

mod (x, p) x≥0

lmod(x, p) =

- mod (|x|, p)

基于上述lmod运算,我们就可以实现以下算法:

预定义数据常量:p、q(这两个是选取的大素数),n = p*q,r是一个随机数。设Zp = {|x| | |x| < p}为明文空间,Zn = {|x| | |x| < n}为密文空间,则有:

加密算法:E(x) = lmod( x + sign(x)*p*r, n ) 解密算法:D(y) = lmod( y, p )

x<0

3.3.2.3 加法运算

1) 设有两个实数x1和x2,则进行加密后有y1 = E(x1),y2 = E(x2)。

2) 利用y1和y2相加后的结果 y1 + y2 = E(x1 + x2),通过解密算法即可得到x1和x2相加的结果。

3.3.2.4 减法运算

1) 设有两个实数x1和x2,则进行加密后有y1 = E(x1),y2 = E(x2)。

2) 利用y1和y2相加后的结果 y1 - y2 = E(x1 - x2),通过解密算法即可得到x1和x2相减的结果。

3.3.2.5 乘法(除法)运算

1) 设有实数x1和x2进行乘法同态,则在加密之前先进行整数化操作,即 X = Int(x) = x*10e (e是x小数点后的位数)。

2) 对整数化后的X1和X2进行加密操作得到Y1 = E(X1),Y2 = E(X2),并分别记录e1和e2。

3) 将Y1和Y2相乘得Y,利用解密算法解密得到 X = D(Y)*10 - (e1 + e2) ,这便是x1*x2后的结果。

3.3.2.6 除法运算

1) 设有实数x1和x2进行乘法同态,则在加密之前先进行整数化操作,即 X = Int(x) = x*10e (e是x小数点后的位数)。

2) 对整数化后的X1和X2进行加密操作得到Y1 = E(X1),Y2 = E(X2),并分别记录e1和e2。

3) 将Y1和Y2相除得Y,利用解密算法解密得到 X = D(Y)*10 e2 - e1 ,这便是x1*x2后的结果。

3.3.3 同态性验证

由于加法和减法,乘法和除法互为逆运算,在此我们只验证加法和乘法关系。

3.3.3.1 加法运算验证

1) 若x1≥0,x2≥0,则有:

E(x1) = lmod( x1, p )= ( x1 + p*r1 )mod p*q E(x2) = lmod( x2, p )= ( x2 + p*r2 )mod p*q

将加密结果相加得E(x1) + E(x2) = [ x1 + x2 + p*( r1 + r2 ) ] mod p*q,解密上述结果得 D[ E(x1) + E(x2) ] = lmod( E(x1) + E(x2),p ) = ( [ x1 + x2 + p*( r1 + r2 ) ] mod p*q ) mod p = x1 + x2。

2) 若x1≥0,x2<0,则有:

E(x1) = lmod( x1, p )= ( x1 + p*r1 )mod p*q E(x2) = lmod( x2, p )= - ( p*r2 - x2 )mod p*q

将加密结果相加得E(x1) + E(x2) = [ x1 + x2 + p*( r1 - r2 ) ] mod p*q,解密上述结果得 D[ E(x1) + E(x2) ] = lmod( E(x1) + E(x2),p ) = ( [ x1 + x2 + p*( r1 - r2 ) ] mod p*q ) mod p = x1 + x2。

3) 若x1<0,x2<0,则有:

E(x1) = lmod( x1, p )= - ( p*r1 - x1 )mod p*q E(x2) = lmod( x2, p )= - ( p*r2 - x2 )mod p*q

将加密结果相加得E(x1) + E(x2) = [ x1 + x2 - p*( r1 + r2 ) ] mod p*q,解密上述结果得 D[ E(x1) + E(x2) ] = lmod( E(x1) + E(x2),p ) = ( [ x1 + x2 - p*( r1 + r2 ) ] mod p*q ) mod p = x1 + x2。

综上,加法同态已验证。 3.3.3.2 乘法运算验证 1) 若x1≥0,x2≥0,则有:

E(x1) = lmod( x1, p )= ( x1 + p*r1 )mod p*q E(x2) = lmod( x2, p )= ( x2 + p*r2 )mod p*q

将加密结果相乘得E(x1) * E(x2) = [x1*x2 + p( x1*r2 + x2*r1 + p*r1*r2 )] mod p*q,解密上述结果得 D[ E(x1) * E(x2) ] = lmod( E(x1) * E(x2),p ) = ( [x1*x2 + p*( x1*r2 + x2*r1 + p*r1*r2 )] mod p*q ) mod p = x1*x2。 2) 若x1≥0,x2<0,则有:

E(x1) = lmod( x1, p )= (x 1 + p*r1 )mod p*q E(x2) = lmod( x2, p )= - ( p*r2 - x2 )mod p*q

将加密结果相乘得E(x1) * E(x2) = [x1*x2 + p*( - x1*r2 + x2*r1 - p*r1*r2 )] mod p*q,解密上述结果得 D[ E(x1) * E(x2) ] = lmod(E(x1) * E(x2),p) = ( [x1*x2 + p*( - x1*r2 + x2*r1 - p*r1*r2 )] mod p*q ) mod p = x1*x2。 3) 若x1<0,x2<0,则有:

E(x1) = lmod( x1, p )= - (p*r1 - x1)mod p*q E(x2) = lmod( x2, p )= - (p*r2 - x2)mod p*q

将加密结果相乘得E(x1) * E(x2) = [x1*x2 - p*( - x1*r2 - x2*r1 + p*r1*r2 )] mod p*q,解密上述结果得 D[ E(x1) * E(x2) ] = lmod( E(x1) * E(x2),p ) = ( [x1 + x2 - p*( - x1*r2 - x2*r1 + p*r1*r2 )] mod p*q ) mod p = x1*x2。

综上,乘法同态已验证。

4. 数据库设计

该系统采用mysql数据库作为存储中心,用户所有的个人信息以及用户密钥文档和权限表等都存储在数据库中

4.1 系统ER模型

该系统总共设计了6张表,分别为administrator(管理员信息表),authority(用户权限表),client(用户账号及密码表),clientcase(用户病历表),clientinfo(用户体检表),clientkeystore(用户密钥文档表)。

4.1.1 administrator

administrator表的ER图如下所示:

其中,Id表示管理员的标识号,Name是管理员的姓名,Password是管理员登录密码,它们组成了管理员信息表administrator。

4.1.2 authority

authority表的ER图如下所示:

搜索更多关于: 作业文档 的文档
作业文档.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3x0c98osxd4zk8n0i2ah_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top