一种空间网络加密方法
技术领域
本发明涉及网络通讯数据加密技术领域,具体地说是一种空间网络加密方法。
背景技术
加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。
传统的加密技术以数学导向为主要手段,不但使用成本比较高,而且由于以数学导向为主要手段的加密方法已经由很多成熟的破解方法,导致诸多业已成熟的破解方法能轻松破解,安全性大打折扣。
发明内容
本发明的技术任务是提供一种空间网络加密方法。
本发明的技术任务是按以下方式实现的,该空间网络加密方法的数据在计算机A、计算机B和服务器A之间进行传输时经过以下步骤进行处理:
计算机B根据服务器A所公开的加密空间对自身的通讯数据进行转义,将这些数据重组为只有服务器A才可以识别的加密数据;服务器A获取数据,并将数据置入自定义的空间规则之中,对数据序列进行解密,如解密成功,则将数据读入主数据空间,经处理后生成需要反馈给计算机A的通讯数据。
所述的该加密方法的具体步骤如下:
步骤1:由计算机B向服务器A发送会话请求;
步骤2:服务器A通过监听端口消息接收到该请求,同意会话并创建会话连接;
步骤3:服务器A调用CreateSpaceEncoding函数为计算机B创建独立的加密空间,并通过SpaceEncoding函数加载预置的计算机B的加密空间参数,加密服务器A当前使用的空间密钥的版本信息与时间戳,再将加密后的消息一同返回给计算机B;
步骤4:计算机B获取服务器A的返回消息,调用CreateSpaceDecoding函数创建计算机B的解密空间,再调用SpaceDecoding函数加载通讯密文与预置的计算机B的解密空间参数,通过SpaceInit函数初始化该解密空间;
步骤5:计算机B读取预置的服务器A加密空间参数,将其传入CreateSpaceEncoding函数中,创建服务器A的加密空间;再将当前使用的空间密钥版本信息与时间戳传入SpaceEncoding函数中,得到加密后的密文消息,将这些消息发送到服务器A;
步骤6:服务器A接收到计算机B的密文消息,通过CreateSpaceDeconding函数创建服务器A的解密空间;再调用SpaceDecoding函数加载通讯密文与预置的服务器A的解密空间参数,通过SpaceInit函数初始化该解密空间;
步骤7:服务器A通过SpaceEncoding函数封装成功返回的状态信息和时间戳,将其返回给计算机B,告知其可以正式进行数据通讯;
步骤8:计算机B得到服务器A的返回密文,传入SpaceDecoding函数对该结果进行验证,如成功则进入下一个步骤,失败则返回错误状态并关闭连接;
步骤9:计算机B通过SpaceWriteOut函数将需要通讯的数据从其主数据空间中还原为二进制数据流,再将这些明文数据通过SpaceReadIn函数读入到服务器A的加密空间的空间坐标中,激活FireSpaceRebuild事件;
步骤10:在服务器A的加密空间中,通过SpaceResetFocus函数调整空间坐标到适当的指针位置;
步骤11:调用CubeBuild函数从起点坐标开始构建空间数据,并将结果依次填充到vector<atom> Spots中;
步骤12:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤13:调用CubeUnion函数结合相邻空间数据;
步骤14:调用CubeMove函数调整空间数据的位置;
步骤15:调用SpaceRead函数按照既定规则将空间数据以二进制的形态读出;
步骤16:将SpaceRead读出的数据载入到CreateSendMessage函数中,创建消息流,并将其发送到服务器A;
步骤17:服务器A接收到计算机B的空间数据消息,调用DecodeReceiveMessage函数解析该消息包,并在服务器A解密空间中调用SpaceReadEncoding函数加载空间数据到vector<atom> Spots中;
步骤18:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤19:通过SpaceResetFocus函数调整空间坐标到适当的指针位置,并使用SpaceEndFocus指定空间数据的终点坐标;
步骤20:调用SpaceResetSpots函数在空间坐标系中重新加载空间数据;
步骤21:调用CubeRemove函数反向运算数据坐标;
步骤22:调用CubeDepart函数将空间数据还原为二进制数据流;
步骤23:调用SpaceWriteOut函数将还原后的二进制数据流读出,完成解密;
步骤24:重复步骤9~23,进行空间加密数据的交互工作。
所述的步骤4中如返回的状态为0则表示解密空间创建成功,进入下一个步骤,否则返回错误状态并关闭连接。
所述的步骤6中如返回的状态为0则表示解密空间创建成功,进入下一个步骤,否则返回错误状态并关闭连接。
本发明的一种空间网络加密方法和现有技术相比,具有设计合理、安全可靠、操作方便等特点,本加密方法所产生的加密数据的复杂程度已经无法从单纯的数学算法的角度来衡量;不同于当前业界中所广泛运用的加密方法,本方法并未使用任何以主流加密体系为主导的数学导向,也并未使用这些算法中的任何一种设计模式,这就使得本方法并不会被诸多业已成熟的破解方法所利用,因此更进一步的增强了该加密方法的安全性;为降低本方法在实际应用中的使用成本,该加密方法把加密空间和解密空间进行了分离,客户端只需要知道服务端的加密信息就可以完成加密操作,而无需知道任何解密信息;根据数据密级的不同,用户可以灵活的设置数据空间的加密参数。加密参数越多,数据的加密级别就越高,而加密参数越少,数据加密所需要的时间就越少。
附图说明
附图1为一种空间网络加密方法的平行的数据空间之间传递数据示意图。
具体实施方式
实施例1:
设置该加密方法的具体步骤如下:
步骤1:由计算机B向服务器A发送会话请求;
步骤2:服务器A通过监听端口消息接收到该请求,同意会话并创建会话连接;
步骤3:服务器A调用CreateSpaceEncoding函数为计算机B创建独立的加密空间,并通过SpaceEncoding函数加载预置的计算机B的加密空间参数,加密服务器A当前使用的空间密钥的版本信息与时间戳,再将加密后的消息一同返回给计算机B;
步骤4:计算机B获取服务器A的返回消息,调用CreateSpaceDecoding函数创建计算机B的解密空间,再调用SpaceDecoding函数加载通讯密文与预置的计算机B的解密空间参数,通过SpaceInit函数初始化该解密空间;
步骤5:计算机B读取预置的服务器A加密空间参数,将其传入CreateSpaceEncoding函数中,创建服务器A的加密空间;再将当前使用的空间密钥版本信息与时间戳传入SpaceEncoding函数中,得到加密后的密文消息,将这些消息发送到服务器A;
步骤6:服务器A接收到计算机B的密文消息,通过CreateSpaceDeconding函数创建服务器A的解密空间;再调用SpaceDecoding函数加载通讯密文与预置的服务器A的解密空间参数,通过SpaceInit函数初始化该解密空间;
步骤7:服务器A通过SpaceEncoding函数封装成功返回的状态信息和时间戳,将其返回给计算机B,告知其可以正式进行数据通讯;
步骤8:计算机B得到服务器A的返回密文,传入SpaceDecoding函数对该结果进行验证,如成功则进入下一个步骤,失败则返回错误状态并关闭连接;
步骤9:计算机B通过SpaceWriteOut函数将需要通讯的数据从其主数据空间中还原为二进制数据流,再将这些明文数据通过SpaceReadIn函数读入到服务器A的加密空间的空间坐标中,激活FireSpaceRebuild事件;
步骤10:在服务器A的加密空间中,通过SpaceResetFocus函数调整空间坐标到适当的指针位置;
步骤11:调用CubeBuild函数从起点坐标开始构建空间数据,并将结果依次填充到vector<atom> Spots中;
步骤12:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤13:调用CubeUnion函数结合相邻空间数据;
步骤14:调用CubeMove函数调整空间数据的位置;
步骤15:调用SpaceRead函数按照既定规则将空间数据以二进制的形态读出;
步骤16:将SpaceRead读出的数据载入到CreateSendMessage函数中,创建消息流,并将其发送到服务器A;
步骤17:服务器A接收到计算机B的空间数据消息,调用DecodeReceiveMessage函数解析该消息包,并在服务器A解密空间中调用SpaceReadEncoding函数加载空间数据到vector<atom> Spots中;
步骤18:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤19:通过SpaceResetFocus函数调整空间坐标到适当的指针位置,并使用SpaceEndFocus指定空间数据的终点坐标;
步骤20:调用SpaceResetSpots函数在空间坐标系中重新加载空间数据;
步骤21:调用CubeRemove函数反向运算数据坐标;
步骤22:调用CubeDepart函数将空间数据还原为二进制数据流;
步骤23:调用SpaceWriteOut函数将还原后的二进制数据流读出,完成解密;
步骤24:重复步骤9~23,进行空间加密数据的交互工作。
实施例2:
设置该加密方法的具体步骤如下:
步骤1:由计算机B向服务器A发送会话请求;
步骤2:服务器A通过监听端口消息接收到该请求,同意会话并创建会话连接;
步骤3:服务器A调用CreateSpaceEncoding函数为计算机B创建独立的加密空间,并通过SpaceEncoding函数加载预置的计算机B的加密空间参数,加密服务器A当前使用的空间密钥的版本信息与时间戳,再将加密后的消息一同返回给计算机B;
步骤4:计算机B获取服务器A的返回消息,调用CreateSpaceDecoding函数创建计算机B的解密空间,再调用SpaceDecoding函数加载通讯密文与预置的计算机B的解密空间参数,通过SpaceInit函数初始化该解密空间;如返回的状态为0则表示解密空间创建成功,进入下一个步骤,否则返回错误状态并关闭连接。
步骤5:计算机B读取预置的服务器A加密空间参数,将其传入CreateSpaceEncoding函数中,创建服务器A的加密空间;再将当前使用的空间密钥版本信息与时间戳传入SpaceEncoding函数中,得到加密后的密文消息,将这些消息发送到服务器A;
步骤6:服务器A接收到计算机B的密文消息,通过CreateSpaceDeconding函数创建服务器A的解密空间;再调用SpaceDecoding函数加载通讯密文与预置的服务器A的解密空间参数,通过SpaceInit函数初始化该解密空间;如返回的状态为0则表示解密空间创建成功,进入下一个步骤,否则返回错误状态并关闭连接。
步骤7:服务器A通过SpaceEncoding函数封装成功返回的状态信息和时间戳,将其返回给计算机B,告知其可以正式进行数据通讯;
步骤8:计算机B得到服务器A的返回密文,传入SpaceDecoding函数对该结果进行验证,如成功则进入下一个步骤,失败则返回错误状态并关闭连接;
步骤9:计算机B通过SpaceWriteOut函数将需要通讯的数据从其主数据空间中还原为二进制数据流,再将这些明文数据通过SpaceReadIn函数读入到服务器A的加密空间的空间坐标中,激活FireSpaceRebuild事件;
步骤10:在服务器A的加密空间中,通过SpaceResetFocus函数调整空间坐标到适当的指针位置;
步骤11:调用CubeBuild函数从起点坐标开始构建空间数据,并将结果依次填充到vector<atom> Spots中;
步骤12:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤13:调用CubeUnion函数结合相邻空间数据;
步骤14:调用CubeMove函数调整空间数据的位置;
步骤15:调用SpaceRead函数按照既定规则将空间数据以二进制的形态读出;
步骤16:将SpaceRead读出的数据载入到CreateSendMessage函数中,创建消息流,并将其发送到服务器A;
步骤17:服务器A接收到计算机B的空间数据消息,调用DecodeReceiveMessage函数解析该消息包,并在服务器A解密空间中调用SpaceReadEncoding函数加载空间数据到vector<atom> Spots中;
步骤18:调用SpaceEnvironment函数配置空间环境变量,设定数据交互规则;
步骤19:通过SpaceResetFocus函数调整空间坐标到适当的指针位置,并使用SpaceEndFocus指定空间数据的终点坐标;
步骤20:调用SpaceResetSpots函数在空间坐标系中重新加载空间数据;
步骤21:调用CubeRemove函数反向运算数据坐标;
步骤22:调用CubeDepart函数将空间数据还原为二进制数据流;
步骤23:调用SpaceWriteOut函数将还原后的二进制数据流读出,完成解密;
步骤24:重复步骤9~23,进行空间加密数据的交互工作。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。