在线刊号(2320-9801)印刷刊号(2320-9798)
Mrudul S Rajhans 印度MH浦那大学PICT计算机科学系 |
有关文章载于Pubmed,谷歌学者 |
更多相关文章请访问国际计算机与通信工程创新研究杂志
云计算正在成为部署高可用性和可伸缩系统最常用的范例之一。这些系统通常需要管理大量的数据,这是我们所知道的传统或复制的数据库系统无法解决的。最近的解决方案将数据存储在特殊的键-值结构中,这种方法通常缺乏事务保证提供的一致性,因为它是为了换取高可伸缩性和可用性。为了确保对信息的一致访问,需要使用事务。但是,众所周知,传统的复制协议不能很好地适应云环境。在这里,我们将讨论当前在云中部署事务系统的建议,并提出一个新系统,旨在向实现这一目标迈进一步。接下来,我们将重点介绍数据分区,并描述它在实现高可伸缩性方面所扮演的关键角色。云数据存储为web应用程序提供了可伸缩性和高可用性,但同时也牺牲了数据一致性。然而,许多应用程序无法承受任何数据不一致。Cloud TPS是一个可伸缩的事务管理器,它保证了Web应用程序发出的多项事务的完整ACID属性,即使存在服务器故障和网络分区。 We implement this approach on top of the two main families of scalable data layers: in our local cluster and Amazon Simple DB inthe Amazon cloud shows that our system scales linearly at least up to some nodes in the Amazon cloud. The given cloud implementation has done on open stack framework using Ubuntu operating environment.
关键字 |
||||||||||
数据安全,云计算,密码技术,分布式系统,AES(高级加密标准)。 | ||||||||||
介绍 |
||||||||||
使用多个数据库实例来维护安全性,而不是使用单个数据库实例。本工作主要针对使用AES(Advanced Encryption Standard)[1]加密算法在云端共享文档。它实际上把一个文档分为两个实例。这些实例驻留在单个云上的位置。它还支持文档的可伸缩事务处理。 | ||||||||||
论文动机 |
||||||||||
云计算正变得越来越广泛和流行,从而提供了一个充满活力的技术环境,可以创建创新的解决方案和服务。云计算为终端用户提供了廉价而灵活的服务。它提供了一个几乎无限的计算、存储和网络资源池的愿景,其中应用程序可以扩展部署。云计算为用户提供不同类型的服务。云提供的最重要的服务之一是STaaS[16],即存储即服务。客户通常将敏感信息存储在云存储提供商那里。因此,在云计算环境中提供一个安全的框架是云存储提供商面临的挑战。客户希望他们的数据在任何时候都能得到保护。对于单一的云提供商来说,这在很多时候会变得很困难,可能会导致服务可用性故障,以及数据入侵或数据从云提供商那里被窃取的可能性。为了克服这些失败,我们使用AES(高级加密标准)算法加密[1],数据将被分为两个或多个数据库服务器,因此单个完整的数据在单个服务器上不可用。 | ||||||||||
本文的其余部分组织如下。 | ||||||||||
第二部分为文献综述。它给出了论文的参考文献及其建议。第三节详细介绍了系统的数学模型、系统结构和算法。第四部分将对本文进行总结。 | ||||||||||
文献调查 |
||||||||||
Abha, Mohit提出了一个简单的数据保护模型,其中数据在云中启动之前使用高级加密标准(AES)进行加密,从而确保数据的机密性和安全性。 | ||||||||||
mohammedet al.[1]先生发现,与使用单一云相比,使用多云提供商来维护安全的研究在研究界受到的关注较少。这项工作旨在促进多云的使用,因为多云能够降低影响云计算用户的安全风险。[3] | ||||||||||
congwang先生等[5]研究了广泛适用的线性规划(LP)计算的安全外包。为了达到实际的效率,该机制设计明确地将LP计算外包分解为运行在云端的公共LP求解器和客户拥有的私有LP参数。 | ||||||||||
周伟,Guillaume Pierre, Chi- hung Chi等[4]搜索到cloudtps是一个可伸缩的事务管理器,它保证了web应用程序发出的多项事务的完整ACID属性,即使在服务器故障和网络分区存在的情况下。因此,他们在两个主要的可伸缩数据层家族(Bigtable和SimpleDB)之上实现了这种方法。在我们本地集群中的HBase (Bigtable的开源版本)和亚马逊云中的Amazon SimpleDB上进行的性能评估表明,我们的系统在本地集群中线性扩展到至少40个节点,在亚马逊云中线性扩展到至少80个节点。 | ||||||||||
K.D. Bowers, a . Juels和a . opree介绍了HAIL(高可用性和完整性层),这是一种分布式加密系统,允许一组服务器向客户端证明存储的文件是完整的和可检索的。 | ||||||||||
debajyotigiitesh, Parthi, Sagar,Vibha建议加密文件上传到云端。通过不仅对用户上传的数据进行加密,而且仅在身份验证成功时才提供对数据的访问,从而双重确保了用户上传数据的完整性和机密性。 | ||||||||||
实现细节 |
||||||||||
系统数学模型 |
||||||||||
假设S是使用云存储不同用户创建和使用的文档的系统。在这个云中,使用两个实例以加密格式划分文档,其中用户的输入是明文,但输出是密文。数据将存储在linux映像的实例中。文档必须以可伸缩的方式进行划分,这意味着如果有较大的文档,则需要适当的时间。 | ||||||||||
S= {I, O, F, Su, Fa / ?S} | ||||||||||
在哪里 | ||||||||||
?I是系统的输入。 | ||||||||||
?O是系统的输出。 | ||||||||||
?F是函数的集合。 | ||||||||||
?苏是制度的成功。 | ||||||||||
?法是系统的失败。 | ||||||||||
•输入: | ||||||||||
o I是这样的输入集 | ||||||||||
- I = {u, d, v}。 | ||||||||||
- P = {u1,u2,u3....Un}, n个用户的集合。 | ||||||||||
- V = {v1, v2, v3....Vm}, m个虚拟机的集合。 | ||||||||||
- D = {d1,d2,d3....Dm},使用的文档集。 | ||||||||||
•输出: | ||||||||||
o Output (o)为将数据存入数据库的密文。 | ||||||||||
—Output (O) = D | ||||||||||
•功能 | ||||||||||
o F是一个函数集,其中。 | ||||||||||
- F = {Fp, Fc} | ||||||||||
o Fp是用户输入明文的函数。 | ||||||||||
o Fc是用户输入密文的函数。 | ||||||||||
•成功 | ||||||||||
大文件和小文件需要足够的时间 | ||||||||||
•失败 | ||||||||||
o文档未成功划分为两个实例。 | ||||||||||
我们方法中的可伸缩事务 |
||||||||||
我们使用的是长期平均值,它可能不适合各种流量爆发模式。这就是为什么在进行资源配置时,指标非常重要。排队是有价值的,因为它为我们赢得了更多的时间。它不会影响吞吐量。吞吐量只对性能改进或服务器数量增加有影响。但是,如果吞吐量是恒定的,那么排队将以延迟超过传输的请求处理为代价来平衡流量爆发。 | ||||||||||
Ws =服务时间(连接获取和保持时间)= 100 ms = 0.1s Ls =在役请求数(池大小)= 5假设没有排队(Wq = 0): | ||||||||||
我们的连接池每秒最多可以交付50个请求,而不会使任何传入的连接请求排队。每当有流量峰值时,我们需要依赖队列,由于我们强加了固定的连接获取超时,队列长度将受到限制。 | ||||||||||
由于系统被认为是稳定的,所以到达率既适用于队列入口,也适用于实际服务: | ||||||||||
此排队配置仍然每秒交付50个请求,但也可能将100个请求排队2秒。一秒钟150个请求的流量突发将被处理,因为: | ||||||||||
•第一秒内可以处理50个请求 | ||||||||||
•其余100个将在接下来的两秒内排队并提供服务。超时方程为: | ||||||||||
因此,对于每秒250个请求的3秒峰值: | ||||||||||
Λspik250requests /秒 | ||||||||||
3秒 | ||||||||||
服务的请求数为: | ||||||||||
这个峰值将需要15秒来完全处理,这意味着700个队列缓冲区需要另外14秒来处理。 | ||||||||||
建议的系统架构 |
||||||||||
该系统旨在使用开源软件OpenStack构建私有云。openstack的系统架构如图1所示。本系统由Horizon、Nova、Swift、Glance、Keystone等多个模块组成 | ||||||||||
•Nova: OpenStack云的计算Fabric控制器。OpenStack云中实例生命周期的必要活动由Nova处理。这一特性使Nova成为一个管理平台,可以管理OpenStack云的各种计算资源、网络、授权和可伸缩性需求。 | ||||||||||
•Glance: Glance是一个独立的服务,提供存储和查询虚拟磁盘映像的目录服务。Nova和Glance共同提供了一个端到端的云磁盘镜像管理解决方案。 | ||||||||||
•Swift: Swift可以存储分布在节点上的数十亿个虚拟对象。swift提供了内置的冗余、故障转移管理、存档和媒体流。Swift在可伸缩性方面扮演着重要的角色。 | ||||||||||
•Keystone: Keystone为OpenStack家族中的所有组件提供身份和访问策略服务。OpenStack的所有组件(包括Swift、Glance、Nova)均通过Keystone进行鉴权授权。 | ||||||||||
•Horizon: Horizon可用于管理实例和映像,创建密钥对,将卷附加到实例,操作Swift容器等。 | ||||||||||
实现 |
||||||||||
该系统采用开源软件Openstack和Ubuntu操作系统实现。计算节点、控制器节点和存储节点都安装了Ubuntu服务器操作系统,因为这些节点都必须像服务器一样运行,如图所示。计算节点安装了Nova包和服务。控制节点安装Glance、Keystone和Horizon包和服务。存储节点已安装Swift包或cinder包和服务。三个节点都通过内部网络连接到OpenStack Dashboard。准备使用云服务的应用通过外部网络连接到私有云的控制节点。 | ||||||||||
模块1:计算节点 |
||||||||||
nova包的安装是通过以下命令下载nova包完成的: | ||||||||||
•sudo apt-get install nova-api nova-cert nova-compute nova-compute-kvm nova-doc nova-network nova object store nova-scheduler nova-volume rabbitmqservernovnc nova-consoleauth这些安装行添加了大部分期望在开放堆栈上工作的包(nova-api, nova-compute, nova-network等)。 | ||||||||||
模块2:控制节点 |
||||||||||
通过以下命令下载glance包来安装glance包sudo apt-get install glance glance-api glance-client glance-common glance-registry python- glance这些安装行添加了大部分期望在开放堆栈上工作的包(glance-api, nova-registry等)。keystone包的安装是通过以下命令下载keystone包完成的。 | ||||||||||
这些安装行添加了大部分预期的包(python-keystone, python-keystone等),以在开放堆栈上工作keystone。horizon包的安装是通过以下命令下载horizon包完成的。 | ||||||||||
•sudo apt-get install open stack-dashboard这些安装行添加了大多数期望在OpenStack上工作的包。 | ||||||||||
模块3:存储节点 |
||||||||||
使用如下命令下载swift包 | ||||||||||
•sudo apt-get install swift swift-proxy swift-account swift-container swift-object这些安装行添加了大部分期望在OpenStack上运行swift的包(swift-proxy, swift-account, swift-container等)。 | ||||||||||
算法 |
||||||||||
AES |
||||||||||
AES(Advanced Encryption Standard)算法的明文输入和密文输出均为128位的块。密码密钥输入是一个128位、192位或256位的序列。换句话说,加密密钥Nk的长度是4、6或8个单词,它们表示加密密钥的列数。AES(Advanced Encryption Standard)算法根据加密密钥的长度分为三个版本。每个AES(高级加密标准)版本的加密轮数取决于密码密钥的大小。 | ||||||||||
在AES(Advanced Encryption Standard)算法中,轮数用Nr表示,Nk= 4时Nr= 10, Nk= 6时Nr= 12, Nk= 8时Nr= 14。下表说明了AES(Advanced Encryption Standard)算法的变化。对于AES(高级加密标准)算法,块大小(Nb),表示组成状态的列数为Nb= 4。 | ||||||||||
AES(高级加密标准)算法的基本处理单元是一个字节。因此,明文、密文和密文密钥作为字节数组进行排列和处理。对于用a表示的输入、输出或加密密钥,结果数组中的字节被引用为an,其中n位于以下范围之一: | ||||||||||
块长度= 128位,0 <= n < 16 | ||||||||||
密钥长度= 128位,0 <= n < 16 | ||||||||||
密钥长度= 192位,0 <= n < 24 | ||||||||||
密钥长度= 256位,0 <= n < 24 | ||||||||||
AES(高级加密标准)算法中的所有字节值都表示为它们各自的位值在花括号之间的连接,顺序为{b7, b6, b5, b4, b3, b2, b1, b0}。这些字节被解释为使用多项式表示的有限域元素: | ||||||||||
例如,{10001001}(或十六进制中的{85})表示多项式x7 ?x3 ? 1。AES(高级加密标准)算法中的字节数组表示为n a a a…A 0 12。 | ||||||||||
所有AES(高级加密标准)算法操作都是在一个二维4x4字节数组上执行的,这个数组被称为状态,状态中的任何一个字节都被称为sr,c,其中字母“r”表示行,字母“c”表示列。在加密过程开始时,用明文填充State。然后,密码对状态执行一组替换和排列。对State进行密文操作后,将State的最终值复制到密文输出中,如下图所示。 | ||||||||||
在密码开始时,输入数组按照以下方案复制到State: | ||||||||||
S [r,c] = in [r + 4c] for 0≤r < 4 and 0≤c < 4, | ||||||||||
在密码的末尾,状态被复制到输出数组中,如下所示: | ||||||||||
Out [r+4c] = s[r,c] for 0≤r < 4 and 0≤c< 4 | ||||||||||
密码转换 |
||||||||||
AES(高级加密标准)密码可以操作国家的单个字节,也可以操作整个行/列。在密码开始时,输入被复制到2.2节中描述的状态。然后,对状态执行初始的Round Key添加。圆密钥使用密钥扩展例程从密码密钥派生。键展开例程为在State上执行的每一轮转换生成一系列圆键。 | ||||||||||
在所有AES(高级加密标准)版本中,对状态执行的转换是相似的,但是转换轮的数量取决于密码密钥的长度。所有AES(高级加密标准)版本的最后一轮与第一个Nr略有不同??1轮,因为它对状态的变换少了一次。每一轮AES(高级加密标准)密码(除了最后一轮)由以下所有转换组成: | ||||||||||
•SubBytes() | ||||||||||
•ShiftRows() | ||||||||||
•MixColumns() | ||||||||||
•AddRoundKey () | ||||||||||
TPS |
||||||||||
TPS只不过是一个事务处理系统,它保证了客户端服务器之间的可伸缩操作以及分布式架构。基本上在我们的项目中,我们使用TPS概念来实现数据可靠性。 | ||||||||||
在给定的研究工作中,数据将被划分到不同的块中;我们必须将它存储在不同的云服务器上。给定的模式向最终用户保证了他的数据是可伸缩和集成的。我们考虑如果我们有两个不同的云服务器,那么我们如何在添加时使用TPS。我们将像这样使用事务 | ||||||||||
1.开始事务 | ||||||||||
2.执行一组数据操作和/或查询 | ||||||||||
3.如果没有发生错误,则提交事务并结束它 | ||||||||||
4.如果发生错误,则回滚事务并结束它 | ||||||||||
如果在事务执行期间没有发生错误,那么系统将提交事务。事务提交操作应用事务范围内的所有数据操作,并将结果持久化到云数据库。如果在事务期间发生错误,或者用户指定了回滚操作,则事务中的数据操作不会持久化到数据库中。在任何情况下,都不能将部分事务提交到数据库,因为这会使数据库处于不兼容状态。 | ||||||||||
结论 |
||||||||||
很明显,虽然云计算的使用已经迅速增加;云计算安全仍然被认为是云计算环境中的主要问题。客户不希望由于云中恶意的内部人员而丢失他们的私人信息。另外,近期服务可用性的丧失给大量客户带来了很多问题。此外,数据入侵给云计算用户带来了许多问题。本项目的目的是实现安全云,以解决安全风险和解决方案。采用AES算法,提高了云系统交易的可扩展性。 | ||||||||||
鸣谢 |
||||||||||
借此机会,我要感谢我的内部导师RekhaKulkarni教授在整个论文过程中给予我的指导和支持。她有价值的指导意见和建议很有帮助。我也非常感谢普纳计算机技术研究所计算机工程系主任G. P. Potdar教授在论文中给予我的所有帮助和重要建议。我还要感谢浦那计算机技术研究所校长P. T. Kulkarni博士的鼓励和提供所需的资源。 | ||||||||||
表格一览 |
||||||||||
|
||||||||||
数字一览 |
||||||||||
|
||||||||||
参考文献 |
||||||||||
|