Unity3D游戏密码学(同态加密)作为数据Socket通信加密

Unity3D游戏密码学(同态加密)作为数据Socket通信加密

1.密码学中的加密算法
	密码学是保证数据安全的关键屏障,密码学实现的安全往往是通过算法所依赖的数学问题来提供,
	而并非通过对算法的实现过程进行保密。Unity技术中的密码算法能够确保数据通信的隐私。
	存储在云服务上的数据通过加密技术进行保护,并且所使用的公-私密钥加密技术确保了数据仅由申请数据的目标接收。
	加密技术还可以帮助用户在通过网络发送和接收数据时保持半匿名,从而保护隐私。
2.什么是同态加密?
同态加密(Homomorphic Encryption)是很久以前密码学界就提出来的一个问题。
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,
将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。

同态密码示意图
在这里插入图片描述同态密码中的加密算法对比

在这里插入图片描述

在同态密码的基本定义:

同态加密只能对密文进行任意次数的加法或乘法或者有限次的加法和乘法运算,其运算结果与对明文直接进行相应的运算后将结果进行加密相同。
假设一个加密方案G表示为,其中M为明文空间,C为密文空间,K为密钥空间,E为加密算法,D为解密算法。定义为密文相关的运算符。
定义2.2.1 设P、L为运算,当明文数据集合,若满足

则称该加密方案对于运算L是同态的。
同态加密的基本思想,即通过对多个密文进行某种运算,达到与相应的明文运算相同的效果。
定义2.2.2 对于任意的明文,相应的密文为,且,若或成立,则称该加密方案G具有加法同态性质。
定义2.2.3 对于任意的明文,相应的密文为,且,若或成立,则称该加密方案G具有乘法同态性质。
定义2.2.4 对于任意的明文,相应的有密文,且,若或成立,则称该加密方案G具有混合乘法同态性质。
定义2.2.5 若方案同时具有加法同态和乘法同态性质,且能够满足有限次加法和乘法密文运算,则称该加密方案G是同态加密方案。
定义2.2.6 若方案同时具有加法同态和乘法同态性质,且能够满足任意次加法和乘法密文运算,则称该加密方案G是全同态加密方案。

3.同态密码(RSA)在Unity3D中开发的应用

(部分代码来源于JAVA,依赖于BouncyCastle.Crypto.dll)

异步接收来自服务器的密文数据,读取数据之后通过调用同态加密工具类进行加密和解密

 private void ReceiveCallback(IAsyncResult ar)
    {
   
        try
        {
   
            if (clientSocket == null || clientSocket.Connected == false) return; //判断客户端是否为空,客户端是否还与服务器进行连接
            int count = clientSocket.EndReceive(ar);//接收多少个字节数据
    
            msg.ReadMessage(count, OnProcessDataCallback);//传递回调函数

            Start();//继续接收消息--异步方式循环接收
        }
        catch(Exception e)
        {
   
            Debug.Log
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值