首页 > 范文大全 > 正文

Android移动平台中的信息隐藏系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇Android移动平台中的信息隐藏系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:android系统已经成为目前最主流的智能平台,为国内外广泛使用。该文提出一种基于Android平台的信息隐藏系统设计方法,可用于秘密信息的隐秘传输。结合Android平台自身的特点,讨论和分析了基于BMP和JPEG图像的信息隐藏系统的具体实现,并给出参考设计方案,该系统在Android平台上运行。

关键词:Android;信息隐藏;BMP24;JPEG

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)09-2064-02

信息隐藏技术是将秘密信息隐藏在某种载体之中,在载体的掩护掩护进行秘密信息传送,使得秘密信息不可见,有利于提高信息的安全性和保密性。目前信息隐藏技术在保证国家政治、军事、经济信息在公共网络中安全、可靠、迅速地传递和共享方面有着显著作用。

随着计算机硬件的迅速发展,并行破解性能的大大提高以及隐写分析学的发展,攻击者对信息隐藏的分析破解能力不断提高。因此,人们着手研究将信息隐藏在那些不易被攻击者发觉的载体中从而避开攻击者的注意力,如此通过载体的掩护来保证信息的保密性和安全性。隐藏是将秘密信息隐藏在载体信息中,并且不破坏载体的信息,攻击者不能通过感官地判断他所监控的信息中是否含有秘密信息。因此信息隐藏技术已经成为信息安全的焦点。

Android系统是一个完整、开放、免费及安全的系统,有很强的适用性。然而,android系统中的信息隐藏技术目前很少见,研究和开发相关技术较为迫切。数字图像是系统中很常见的媒体,所以将图片作为载体,把秘密信息隐藏在其中再进行传输能很好地保证信息的机密性。对于接收方来说,只需要通过相应的提取算法便可将隐藏在图片文件中的机密信息提取、还原出来。

1 Android系统

Android系统是一个开放平台,基于Linux操作系统,系统中包含了公共主件和关键应用。Android平台最显著的特点是其开放性,允许任何移动终端厂商加入到Android联盟中来,有利于Android系统的开发。此外上层软件的开发使用的编程语言是面向对象的Java语言,为Android提供了丰富的软件资源。图1为其整体框图:

1)最上层部分是应用程序层,Android版本的会同一系列核心的应用程序包一同,例如电话功能、E-mail客户端、浏览器、SMS短信、联系人管理程序,地图等。这些应用程序都是使用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,不像其他手机操作系统一样吧系统软件固定在系统内部,增加了Android系统的灵活性和个性化。

2)其次是应用程序框架层,我们知道Android是一个开放的开发平台,能够开发极其丰富和新颖的应用程序。所以开发人员能够自由地使用设备的硬件,访问位置信息,运行后台服务,设置闹钟,添加状态栏的提醒等。应用程序框架层就包含了在开发过程中使用的到的公共组件。

3)绿色部分是系统运行层,包含一些C/C++库,这些库可供Android系统中不同的组件使用。它们通过应用程序框架提供给开发者,核心库主要包括系统C库、媒体库、SurfaceManager(显示子系统的管理)、LibWebCore(Web浏览器引擎用,支持可嵌入的web视图。

4)最底层是Linux内核层, Android是基于Linux kernel上的,但并不是GNU/Linux其核心。Android的linux内核控制的系统服务有安全、存储器管理、内存管理、进程管理、网络堆栈以及驱动程序模型都依赖于Linux内核 ,Linux核心在硬件层和软件层之间建立了一个硬件抽象层,使安卓框架和linux内核隔开,这样android不必过度依赖linux内核,达到内核独立的效果,也让开发者在开发时不必考虑驱动程序的实现,为开发者开发应用程序提供便利。

2 信息隐藏简介

目前流行的信息隐藏系统有很多,常见的方法是基于空域的信息隐藏和基于变换域的隐藏,分别可用于空域图像和压缩图像。下面分别介绍空域隐藏算法和DCT域隐藏算法。

2.1 空域隐藏算法

典型的有LSB算法,全称最低有效位算法。将隐藏信息和载体信号都视为比特流序列,在嵌入过程中,用隐藏信息的比特值替换载体信号中最不重要的比特值,即可保证嵌入的信息是不可见的。该隐藏算法具有透明性好、隐藏容量大的优点,但是由于使用了图像不重要的像素位,算法的鲁棒性差,隐藏信息也很容易为滤波、图像量化、几何变形的操作破坏。另外一个常用方法是利用像素的统计特征将信息嵌入像素的亮度值中.

2.2 DCT域隐藏算法

JPEG是最为常见的图片格式,DCT变换是JPEG压缩采用的重要技术之一,在DCT变换系数(DCT域)上隐藏信息是常见的信息隐藏技术。将隐藏信息视为比特流,在嵌入过程中,通过改变图像的DCT系数来实现信息隐藏,常见的DCT域隐藏算法有JSteg、F3、F4、F5、OutGuess和MB等。在本文中,通过改变选定DCT系数的奇偶性来隐藏信息。

3 Android信息隐藏设计

由于,Android对java中的图像处理不支持,因此,在本文中:对于BMP24,采用自己编写的BMP24图像编解码函数对BMP24图像进行信息隐藏;对于JPEG,由于其编解码较复杂,则通过在linux系统下调用jpeglib库来获取DCT系数,采用c语言实现DCT域的信息隐藏,为了让其能在android系统下使用,我们需要用到NDK对jpeglib库的移植与编译,用JNI调用c函数实现信息隐藏。

3.1 BMP24图像空域隐藏实现流程

1)解码BMP24载体图像,得到其图片文件的像素数据;

2)对于选取的每一个像素的灰度值,若其LSB与要嵌入的隐藏信息比特相同,不对其进行更改,否则,执行下一步;

3)用秘密信息比特取代原灰度值的LSB,而高七位保持不变;

4)对修改后的像素数据编码得到含密图像;

3.2 JPEG图像DCT域隐藏实现流程

1)使用NDK移植和编译jpeglib库;

2)调用jpeglib库jpeg载体图像的DCT系数

3)对于选取的DCT系数(此处我们采用中频系数,因为低频系数携带图像的重要信息,而高频系数则大部分为0,故不隐藏),若为0,则跳过,不隐藏信息,否则,执行下一步;

4)如果秘密信息比特为1,若对应的DCT系数为偶数,则将其加1变为奇数;否则,若DCT系数为奇数,则将其加1变为偶数(注:在此之前还需先判断DCT系数是否为-1,为-1则将其减1

5)在linux下编译并产生.SO文件

6)在Andorid项目中通过JNI本地调用c文件实现信息隐藏

4 总结

目前,大多数信息隐藏技术都是基于PC机的,基于android系统中的信息隐藏技术则很少见。基于PC机的信息隐藏,很容易被隐写分析,这些隐写分析工具却难以应用到android系统中,具有更强的安全性。基于android系统的信息隐藏一方面可以让我们随时随地获得图像载体,另一方面android系统安全性能高,可以有效防止信息截获与分析,同时,android系统的传输方式多样,有利于我们将保密信息传送给接收方。因此,基于andorid系统的信息隐藏技术具有非常大的应用前景。

参考文献:

[1] 范锋.Android的架构与应用开发研究[J].信息与电脑,2012,(5).

[2] 刘振华,尹萍.信息隐藏技术及其应用[M].北京:北京科学出版社,2002.

[3] 李金刚,刘春芳.如何把信息隐藏在24位BMP图像中[J].计算机时代,2002(2) :22-24.

[4] 王少杰,严伍琼.基于BMP位图的LSB信息隐藏算法的实现[J].电脑开发与应用,2009,(10).

[5] 陈涛,吴敏,张彪.奇偶量化DCT系数实现文本信息隐藏[J].计算机工程与应用,2011(9).