设计一个安全聊天的Android应用程序外文翻译资料

 2022-06-12 21:12:07

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料



设计一个安全聊天的Android应用程序

摘要—智能手机目前已成为个人生活中的重要组成部分。最突出的用途是聊天和对话应用程序。这些应用程序中的大多数并不提供用户之间交换数据所需的保护和隐私。然而,很少有移动聊天应用为其客户提供端到端(E2E)安全性和保护隐私服务。在本文中,已经提出了针对使用android操作系统的智能手机的端到端加密的安全聊天应用。所提出的应用程序使用ECDH算法来生成密钥对并交换以产生将用于通过对称算法对数据进行加密的共享密钥。应用程序允许用户通过短信、语音信息以及交换照片进行通信。对于文本消息安全性,使用具有128位密钥的标准AES算法。生成的密钥(160位)最小化为128位长度以供AES算法使用。对于语音和图像安全过程,所提出的应用程序为此使用对称算法RC4。 RC4提供的安全性低于AES,但它的性能更快,这对于这种类型和大小的数据来说是必需的。

关键字—Android,聊天应用程序,ECDH,AES,RC4。

  1. 导言

随着互联网的出现,我们的通信几乎都是通过我们的PC显示器甚至通过我们的电话完成。 此外就是聊天应用程序,允许与同一城市、不同州或地球上的任何人即时沟通。

传统的短信正在迅速成为历史,特别是在流行的聊天应用程序爆炸式增长的情况下。 WhatsApp,Telegram,Viber和不同的应用程序都提供免费的短信服务。 此外,尽管提到了向不同客户提供语音和图片分享的选项,但这并非如此。 聊天应用已经变成了一种生活方式。 它们似乎是比电话更可靠的通信类型。

在本文中,开发了一个系统,该系统提供在Android平台上运行的端到端聊天应用程序。

  1. 问题陈述

今天的智能手机和平板电脑不仅仅是通信设备。他们是领先的个人电脑,比几年前的便携式电脑拥有更多的内存和处理能力。 它们是我们生活中的一部分。 但是,智能手机和平板电脑由于发现敏感信息而引发新的安全问题。

聊天应用程序是应用最广泛的移动应用程序,用于通过互联网传递信息和数据。 在互联网中,政府和恶意人士总是试图破解服务器并揭示关于使用此类应用程序的用户的信息。

在Apps市场中有各种不同的移动聊天应用程序。 这些应用程序的绝大多数都声称它们提供用户信息的安全性,机密性和完整性。 但黑客信息证明,许多开发人员并不认为安全性是其应用程序的主要考虑因素。

  1. 目标

端到端加密:为了实现此属性,ECDH密钥交换旨在提供将在双方之间交换的密钥对(私有和公共),并生成将用作密钥的安全共享密钥加密算法。

保密性,为了实现这样的目标,加密是提供双方之间保密性的机制。消息由对称算法加密,并且此加密消息只能由预期方读取。

隐私,在众多运营商提议的应用程序中实现的最多之一。它不会抓取包含用户信息的用户的元数据,例如位置,姓名和联系信息。

完整性,应用程序确保消息在实体间传输期间未被编辑或更改,因为任何版本甚至是攻击者用新消息替换消息,消息都不会出现。

高效的性能,这是通过对称加密算法(AES和RC4)对数据进行加密实现的,并且仍然通过使用ECDH密钥交换提供端到端加密来提供密钥,从而保持速度和移动处理器能力。

在第二节中,我们列出了一些相关的论文,这些论文是目前智能手机安全应用的数量。第三节以椭圆曲线密钥交换为中心。 第四节描述了用于文本加密和解密的AES算法。第五节描述了用于语音和图像加密和解密的RC4算法。第六节代表了提出的安全模型。第七节介绍了端到端Android聊天应用程序的建议模型。第八节介绍实施程序并讨论主要结果。第九节简要陈述结论。

  1. 相关工作

有大量移动聊天应用程序声称提供安全服务,但其完整架构并未公开。据我们所知,描述这种系统的出版物并不是很多。

2013年12月,Ali Makki Sagheer等人提出了一种解决方案,该方案通过应用加密AES /加密/解密方案的交叉密码方案和用于密钥扩展和生成算法的RC4,为SMS数据提供机密性和完整性,以实现更强大的安全问题。所提出的模型是基于Net Beans平台的Java编程语言实现的。该系统在各种移动设备上进行了测试,例如诺基亚5233 [1]。

2014年5月,H.C.陈等人 [2]展示了另一个关于移动文本聊天的想法,利用基于革命会话密钥的转置密码系统计划。他们提出的方案只处理移动聊天系统的安全文本转换。它适应了古典分组密码,替换和换位技术。另外,新的会话密钥可以通过矩阵旋转技术产生。它可以很容易地应用于通过使用快速加密算法的移动设备进行传输。

2014年7月,R.N. Akram等人评估了当前移动聊天服务引入的安全和隐私保护功能。他们还提出了端到端安全和保护移动聊天服务及相关必需品的基本系统。他们还提出了端到端安全和保护移动聊天服务及相关必需品的基本系统。他们的提议被实施以产生概念验证和评估满足特定安全和隐私要求的技术难度[3]。

在2014年11月,Hsing-Chung Chen等人计划了用于安全端到端移动聊天计划及其相关必需品的基本系统。他们的提议被实施以提供替代认证,并防止密码估计攻击和不可检测的在线密码估计攻击。此外,该计划是一个基于秘密密钥的认证和密钥协议,具有简单的回忆性[4]。

2015年1月,Pejman Dashtinejad [5]调查了移动市场中常见消息应用的当前安全特性。生成可接受的安全性要求列表,并根据这些要求开发体系结构。还对样品进行了实现和评估。

  1. ECDH密钥交换

应用程序的安全性在很大程度上取决于椭圆曲线密码学和ECDH算法的使用,该算法是椭圆曲线的Diffie-Hellman算法的变体。 它实际上是一个密钥协议,不仅仅是一种加密算法。 这基本上意味着ECDH描述了应该如何在各方之间生成和交换密钥。

在椭圆曲线Diffie-Hellman(ECDH)密钥交换中,两个通信客户的客户A和客户B预先同意使用相同的曲线参数和基点G.它们分别产生它们的私人密钥Pr A和Pr B,并且相应的公共密钥Pu A = Pr A * G和Pu B = Pr B * G。客户A和客户B都交换他们的公钥,并且各自将其私钥与对方的公钥相乘以得到公共共享秘密 Pr A * Pu B = Pr B * Pu A = Pr A * Pr B * G.攻击者无法从曲线参数[5]中确定该共享密钥。

  1. AES算法

1997年1月,美国国家标准与技术研究院(NIST)报告称,它反对选择另一个被称为高级加密标准的分组密码也就是AES来代替DES [7]。密码采用128位或16字节的明文块大小。密钥长度可以是16,24或32个字节(128,192或256位)。该算法被称为AES-128,AES-192或AES-256,取决于密钥长度[8]。

加密和解密算法的输入是一个单独的128个块。该块被划定为4 * 4方块的字节矩阵。这个块被复制到状态数组中,并在加密或解密的每个阶段进行调整。在最后阶段之后,状态被复制到输出矩阵。同样,密钥被描绘成一个方形的字节矩阵。然后将这个关键词汇集到一系列关键时间表单词中。每个单词是四个字节,并且对于128个片段密钥,总的密钥时间表是44个字。密码由N个回合组成,其中回合的数量取决于密钥长度:对于16字节密钥为10轮,对于24字节密钥为12轮,对于32字节密钥为14轮[9] [10 ]。

四个基本步骤,称为用于形成循环的层:

1.字节子变换(BS):使用S盒来逐个字节地替换该块。这个非线性层用于抵抗差分和线性密码分析攻击。

2.移位行转换(SR):一个直接的排列。这种线性混合风险使得比特在多轮中扩散。

3.混合列转换(MC):利用GF(28)上的算术的替换。该层具有类似于SR的用途。

4.添加轮回密钥(ARK):将当前件与扩展密钥的一部分进行基本的按位异或运算。轮密钥与上述层[10] [11]的结果异或。

  1. RC4算法

RC4是流密码,由Ron Rivest于1987年为RSA Security安排。它是一种可变密钥大小的流密码,带有面向字节的操作。该算法依赖于不规则置换的使用[9]。它具有利用8位和2048位左右的密钥的能力。 RC4被用作许多业务编程软件包的一部分,例如Lotus Notes和Oracle Secure SQL。它同样是蜂窝规范的一部分[12]。它分两个阶段工作,即关键设置和加密。每个新密钥都必须执行两个阶段。密钥流完全独立于所使用的明文[13]。

RC4遵循流密码中使用的设计策略。从伪随机阶段提取伪随机数据字节是RC4流密码的基本设计原则。 RC4有两个工作模块:首先是KSA,其中键K为输入(典型大小为40-256位),第二个是PRGA,它产生一个伪随机输出序列[14]。

RC4的初始状态(状态[0]到状态[255])[15]中的密钥长度变化范围介于(0 - 255)个字节之间,用于初始化256个字节的数组。在密钥大小很小的时候,它必须特别有效,并且加密时间非常快,无线设备中使用的大量加密取决于对称密钥加密,例如RC4算法[16]。

  1. 应用程序安全模型

应用程序的安全性很大程度上取决于椭圆曲线密码学。在生成密钥对之后,这些密钥将被用于生成安全共享密钥,其是160位密钥长度。数据将通过使用生成的安全共享密钥在非对称算法(AES 128用于文本,RC4用于语音和图像)中加密。因此,加密算法的密钥长度与生成的密钥不同,所生成的密钥在密钥调度算法(KSA)中被提交以便处于适当的长度形式。

所提出的聊天应用程序采用对称密钥加密技术,其中消息利用生成的密钥进行加密和解密。在该系统中用于文本消息的所选算法是具有密码块改变模式(CBC)的AES 128比特。

在加密消息之前,生成的密钥(160位)最小化为128位长度。在密码的开始处,使用传统将输入复制到状态阵列。在初始轮回密钥扩展之后,状态数组通过实现10,12或14次函数(取决于密钥长度128,192,256位)而改变,所提出的应用使用具有128位密钥长度的10个回合函数。最后一轮比前九轮略有不同,

除了最后一轮之外,所有十轮都是相同的,不包括MixColumns()更改。最后的状态然后被复制到输出。而且,在解密端,生成的密钥(160比特)被最小化为128比特长度。解密过程与加密过程相反。

AES密文的解密过程与加密过程相反。每轮都由四个进程(InvShiftRows,InvSubBytes,AddRoundKey和InvMixColumns)组成,除了最后一轮不执行InvMixColumns。由于每一轮的子流程都是向后的方式,并不像Feistel密码那样,加密和解密算法应该独立执行,尽管它们密切相关。

对于语音和图像加密过程,所提出的应用程序为此使用对称算法(RC4)。在RC4加密算法中,密钥流完全没有使用的明文。对于语音/图像加密过程,为了生成密钥流,密码使用由两部分组成的秘密内部状态:

1.全部256个可能字节(S)的置换。

2.两个索引指针(i和j)。

置换使用ECDH生成的密钥(160位)使用密钥调度算法(KSA)进行初始化。此时,比特流由PRGA创建。该算法利用从1到256字节的可变长度密钥来形成256字节的状态表。状态表用于后续的伪随机字节生成,然后创建一个伪随机流,该伪随机流与明文数据字节进行异或运算,得到密文数据字节。州内的每一个元素

在任何情况下都会调换一次表格。

在RC4算法中,密钥设置是该加密算法的第一个也是最麻烦的时期。加密密钥用于利用两个阵列,状态和密钥以及N个混合操作创建加密变量。

PRGA修改状态并输出密钥流的一个字节。在每次迭代中,PRGA递增i,查找S的第i个元素S [i],并且将其添加到j,交换S [i]和S [j]的值,然后使用和S [i ] S [j](模256)作为索引来获取S的第三个元素,该元素与消息的下一个字节进行XOR运算,以产生密码数据或普通数据的下一个字节。

RC4创建一个伪随机位流(一个密钥流)。类似地,与任何流密码一样,这些可以用于通过利用按位异或或者将其与明文结合来进行加密。解密以相同的路径播放(因为独占或是对称操作)。

  1. 应用模型

该系统是Android应用程序,使用户能够以安全的方式相互通信,并为他们提供端到端的安全通信。 此通信过程通过数据加密完成并以加密格式提交给互联网服务器,然后通过某些查询进行检索并解密,然后显示给接收方用户。 应用程序由一组界面

全文共31078字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[11073],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。