0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何设计网络传输信息加密解密系统

电子设计 作者:电子设计 2018-09-14 09:09 次阅读

计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。由此看来,网络的安全系数一般都比较小。数据加密是确保计算机网络重要的安全机制,但是,利用公钥体制,尤其是利用RSA算法的实用加密解密软件系统很少。最庞大的计算机网络就是因特网。它由非常多的计算机网络通过许多路由器互联而成。因此因特网也称为“网络的网络”。另外,从网络媒介的角度来看,计算机网络可以看做是由多台计算机通过特定的设备与软件连接起来的一种新的传播媒介。

网络加密的方式主要有链路加密、端对端加密。端对端加密的工作仅在目的节点和源节点进行,所以成本低、使用灵活。本文采用这种方式,其处于网络OSI模型的应用层或表示层。

1公钥密码体制

公钥密码就是一种陷门单向函数。我们说一个函数f是单向函数,即若对它的定义域中的任意x都易于计算y=f(x),而当f的值域中的y为已知时要计算出x是非常困难的。公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。这类密码的安全强度取决于它所依据的问题的计算复杂度。

公钥密码体制的基本思想是:密钥分为加密密钥E,解密密钥D和公钥M。加密密钥E和公钥M可以公开,D不能公开。加密时采用以E,M为参数的函数f1(E,M)进行加密,解密时采用以D,M为参数的函数f2(D,M)进行解密。

在传统密码体制的算法中,知道了加密过程,则可以推出解密过程。而在公钥密码体制的算法中,即使知道了加密过程,也不可能推出解密过程。因而计算加密密钥E,公钥M和解密密钥D需要特殊的算法和步骤。以确保不能从加密密钥E和公钥M推导出解密密钥D。

RSA体制是一种新型公钥密码体制。该公钥密码体制以数论为基础,其原理是:求2个大素数的乘积很容易实现,但将一个大的合数分解成2个大素数很难实现。RSA加密和解密运算的数学表达式为:

C=XE(modM)

X=CD(mod M)

其中:X为明文,C为密文,(0(1)M是2个大素数P,Q的乘积,从而M的欧拉数φ(M)=(P-1)×(Q-1)。

(2)D是大于P,Q的并与φ(M)互素的正整数。

(3)E是D关于φ(M)的乘逆。即ED=1 mod(φ(M))。

满足以上3个条件,(E,M)便可作公钥对,(D,M)作密钥对。

例如:P=101,Q=113,那么M=P×Q=11 413,φ(M)=(P-1)×(Q-1)=100×112=11 200,与φ( M)互素的整数E有无数个,因此,假设E=3 533,根据公式ED=1mod(φ(M)),求得D =6 597。假设明文X=9 726,那么加密时密文C=9 7263 533mod (11 413)=5 7 61,在解密时明文Y=5 7616 597mod(11 413)=9 726。因此只要加密密钥E,解密密钥D和公共密钥M选择正确,加密前的明文X和解密后的明文Y一定是相同的。

2系统设计

网络信息加密解密系统包含2个主要部分,主机程序和客机程序。主机程序具有以下功能:密钥参数的选择、对文件的加密解密、加解密文件的校验、修改用户密码;而客机程序则只有一个加密模块和用户重置加密密钥E和公钥M。如果B有重要的数据往A发送,则该节点就用A节点所发布的加密密钥E和公钥M为参数对重要数据进行加密,然后再将加密后的数据发送到A,由于这些数据都经过特殊的处理,不用再为数据的安全而担心。当一个网络的许多高级用户之间需要频繁地互相传递信息,并且还要求高级用户既能够对需要发送的数据加密,也能够对收到的经过加密的数据进行解密。这就要求在网络的高级用户的计算机上运行网络信息加密解密系统的主机程序。

该系统的设计分为密钥选择模块、文件加密模块、文件解密模块、数据验证模块、修改密码模块、系统简介模块和退出系统模块等7大模块。

如何设计网络传输信息加密解密系统

3程序的模块设计

3.1密钥选择模块的设计

选择RSA密码体制的密钥对主要是确定E,D,M。因为密钥对的选择不能随意产生,且P,Q的位数越多,攻破该密码体制所需时间也越长,系统就越安全。但位数越多,速度也越慢。该模块可以让用户自己来选择素数位数。

为方便用户,该模块不需用户直接输入2个大的素数P、Q的值,而是输入他们的邻近似任意数,然后由计算机根据特定的算法在邻近值附近找。得到2个大素数后,也得到公钥M=P×Q,从而也得到M的欧拉数φ(M)=(P-1)×(Q-1)。

大于P,Q并和φ(M)互素的数有无数个,所以依旧采用由用户输入邻近值,系统在其附近寻找一个满足条件的整数E(其中用欧几里德算法判断E是否与φ(M)互素),得到加密密钥E之后,将进行寻找密钥的最后一步:求出解密密钥D,这可以根据式ED=1 mo d(φ(M))求得。

经过以上3个步骤,计算机辅助产生密钥对的工作结束。随后,计算机会提示是否将新产生的参数值更新为系统默认的参数值。用户有两种选择,更新和不更新。

3.2加密模块的设计

文件在计算机里是以“0”、“1”的形式存储,一定的二进制比特流将表示一定大小的十进制整数。C是一个十进制的数(0≤C≤M),然后将十进制的数C写到目标文件。

3.3解密模块的设计

解密运算为X"=CD(mod M)。解密模块和加密模块原理基本相同,只是从文件里读取需要解密的数据时必须与经过加密算法后写入目标文件时的数据相同。这一点是系统能否正确运行的前提条件。加密模块和解密模块是系统的核心模块。

3.4数据验证模块设计

数据验证是将你刻在刻录盘上的数据和你硬盘上源文件进行对比MD5值,看是否一致的。在网站开发中,数据验证分为客户端验证和服务器端验证。客户端验证是为了验证数据的长度、类型等是否符合输入要求,一般用JavaScript实现;服务器端验证则是验证输入数据是否与数据库中已存在的数据匹配,在MVC框架开发中一般采用三层模式进行验证。

数据验证模块是用户对自己本人计算机上的本地文件进行加密和解密用的。如果多人共同使用一台计算机最好的方法就是用自己的加密密钥E和公钥M为参数对数据加密,然后用相应的解密密钥D和公钥M对加密后的数据进行解密。这样其他用户就无法查看该文件。需要这些数据时,进入网络信息加密解密系统,输入合适的解密密钥D和公共密钥M,将文件恢复。

3.5修改用户密码模块设计

为了保证本系统的安全性,如果用户3次输入不正确,将终止系统的正常运行。当用户输入密码泄露后,可以通过修改用户密码模块来解决。

该模块也采用RSA算法设计,系统的合法用户必须知道该模块正确的解密密钥、公钥和用户密码,才能进入系统。否则系统将拒绝进入。

由于解密密钥、公钥和用户密码可以随时更改,这就增加了非法用户进入系统的难度,将系统的不安全系数降至最低,从而保证系统的安全。

4结语

Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。网络传输信息加密解密系统经在实际网络环境 下测试表明:安装简单、人机界面良好、保密性高、实用性强、可对任何类型的文件加密解密。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84523
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121876
  • 因特网
    +关注

    关注

    1

    文章

    39

    浏览量

    12687
收藏 人收藏

    评论

    相关推荐

    怎样解密(芯片解密IC解密)加密

    硬件加密锁,俗称“加密狗”,对于加密狗的**大致可以分为三种方法,一种是通过硬件克隆或者复制,第二种是通过Soft ICE等Debug工具调试跟踪解密,第三种是通过编写拦截程序修改软件
    发表于 04-16 09:20

    详细介绍Flash型单片机的加密解密方法

    ”,系统进入解密状态。  由于系统靠检查Flash ROM和EEPROM是否清空来决定系统是否保持加密状态,所以,如果用户程序偶然将Flas
    发表于 10-21 19:59

    word的加密解密教程

    本帖最后由 寒艾锋 于 2011-12-29 10:21 编辑 所有学电子的人都需要用word,关于word加密解密教程在这[hide] [/hide]
    发表于 12-29 09:47

    芯片加密解密技术原理

    。由于这些代码和数据在单片机端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。深联华 特殊加密 技术保持知识产权的安全性,甚至它在 OEM 制造商或分包商手中也是
    发表于 12-27 14:25

    labview加密解密文件

    本帖最后由 wang060102122 于 2017-9-8 14:50 编辑 论坛有位网友分布的加密解密文件夹小程序,其中加密可以正常使用,解密有一些问题,好多人都在跟帖问如
    发表于 09-08 14:45

    ZigBee的加密解密介绍

    私钥,而其他网络无法知道这个私钥的内容)。* 非对称性加密算法,比如AESZigBee设备加入网络后,必须得到私钥才能通信(用来解密数据包内容),这个私钥是由一个叫TC的设备(一般是协
    发表于 04-17 18:12

    云计算的云数据安全与加密技术

    ,客户端可能没什么感觉),所以进行了改进:先和服务端交换DESKey(先将加密后的DESKey传输到后台),返回交换成功后,再将用DESKey加密的数据传输到后台。这样做服务端可以用
    发表于 11-06 14:54

    如何设计网络广播系统

    如何设计网络广播系统?需要注意哪些事项?
    发表于 08-09 07:18

    如何在Python中加密解密数据

      加密是对信息进行编码的过程,只有授权方才能访问它。这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。在本文中,您将学习如何使用Python使用加密 库对文件或任何字节对象,也
    发表于 08-07 17:45

    加密解密的用途都有哪些呢

    有哪些加密算法呢?加密解密的用途都有哪些呢?
    发表于 01-20 06:00

    RT1020总线加密引擎是否加密解密

    总线加密引擎是否加密解密? 例如,如果我正在运行一个加密的 XIP 应用程序(来自串行或闪存),并且我希望它向闪存的不同区域写入一些内容,会发生什么?是写的时候
    发表于 05-10 06:10

    数据加密解密,数据加密解密原理是什么?

    数据加密解密,数据加密解密原理是什么? 随着Internet 的普及,大量的数据、文件在Internet 传送,因此在客观上就需要一种强有力的安
    发表于 03-19 13:46 7051次阅读

    基于Ukey信息加密系统

    针对文件安全问题,本文综合利用了身份认证、文件加密信息隐藏、Ukey存储控制等安全关键技术,并基于独特的分组加密+文件分割工作模式,开发一套安全易用的信息
    发表于 12-15 14:54 1次下载
    基于Ukey<b class='flag-5'>信息</b><b class='flag-5'>加密</b><b class='flag-5'>系统</b>

    网络上对芯片解密的定义,解密方法与原理解析!

    其实了解芯片解密方法之前先要知道什么是芯片解密网络上对芯片解密的定义很多,其实芯片解密就是通过半导体反向开发技术手段,将已
    的头像 发表于 01-17 07:06 7341次阅读
    <b class='flag-5'>网络</b>上对芯片<b class='flag-5'>解密</b>的定义,<b class='flag-5'>解密</b>方法与原理解析!

    RSA加密解密

    RSA加密解密
    发表于 05-26 15:44 3次下载