CN104699661B - 面向Unicode编码文档的隐私码字选择方法及系统 - Google Patents
面向Unicode编码文档的隐私码字选择方法及系统 Download PDFInfo
- Publication number
- CN104699661B CN104699661B CN201510047880.2A CN201510047880A CN104699661B CN 104699661 B CN104699661 B CN 104699661B CN 201510047880 A CN201510047880 A CN 201510047880A CN 104699661 B CN104699661 B CN 104699661B
- Authority
- CN
- China
- Prior art keywords
- code word
- selection
- privacy
- random
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种面向Unicode编码文档的隐私码字选择方法和系统,以及相应的信息隐藏方法。该方法最多可以选择6144种隐私码字,且方法易学易懂。该系统可以针对用户的不同选择需求,选出满足用户要求的N个(N为自然数)隐私码字;获取系统提供了4种码字获取方法,包括随机获取码字、连续获取随机码字、连续获取指定码字和筛选获取随机码字,极大的方便了用户获取所需要的隐私码字,且易操作。在信息隐藏中,本发明可通过上述方法和系统,选择需要数量的码字组成编码表,可提高信息隐藏量。
Description
技术领域
本发明属于信息隐藏领域,具体涉及一种面向Unicode编码文档的字符编码选择方法和系统,以及相应的信息隐藏方法。
背景技术
在网络飞速发展的今天,信息隐藏技术已经广泛应用于多个领域。信息隐藏技术中,文本文档由于其特殊的结构组成,在文本里面隐藏信息必须寻找那些不易引起人的视觉感知的字符,我们称之为不可见字符(或隐私字符)。常见的隐私字符包括空格、制表符、回车等,其中空格分为ANSI编码下的单字节空格和Unicode编码下的双字节空格。在本发明中,主要针对的隐私字符就是指双字节空格的集合。这种“双字节空格”在Unicode编码中存在量大,且不易被视觉感知,可以很方便地被用于文本文档中的信息隐藏。大量可选的不可见字符码字(或隐私码字)还可以用来制作隐私字符编码表,提升信息隐藏容量。
但是这种“空格”在Unicode字符集中分布较为散乱,至今仍没有一种方便可行的选择方法获取大量的隐私码字用于信息隐藏用途和编码用途。
发明内容
本发明针对上述问题,提出一种面向Unicode编码文档的隐私码字选择方法及系统,进而提出一种信息隐藏方法。本发明中,隐私码字也可称为不可见字符码字,隐私字符也可称为不可见字符。
具体来说,本发明采用的技术方案如下:
一种面向Unicode编码文档的单个隐私码字选择方法,具体步骤如下:
(1)一个码字m由2个字节组成,用x1x2表示(每一个x表示一个字节)。一个字节由8个比特组成,每4个比特用一个y表示,则一个码字用y11y12y21y22表示,即x1x2=y11y12y21y22。
(2)通过事实验证,发现隐私码字由x2决定,即x1不受约束。所以,对于每一个隐私字符,码字y11的选择取值范围是0000~1111,y12的选择取值范围是0000~1111。y21的选择取值范围是1101~1111,y22的选择取值受y21的选择取值约束。
(3)当y21的选择取值为1101时,y22的选择取值范围是1000~1111。当y21的选择取值为1110时,y22的选择取值范围是0000~0110。当y21的选择取值为1111时,y22的选择取值范围是0000~1000。
由上述步骤可以发现,y11的最大选择取值个数为16,y12的最大选择取值个数为16,由于y22的选择取值受y21的影响,所以对于y21的3种取值,y21的3种最大选择取值个数为8、7、9,所以本发明方法的码字选择共有(16×16×(8+7+9)=6144)种。
一种基于上述方法的面向Unicode编码文档的隐私码字选择系统,如图1所示,所述系统包含如下模块:
码字选择模块,为满足用户对码字分布及指定码字的要求,本系统提供四种码字获取的方式,分别为随机获取码字(A)、连续获取随机码字(B)、连续获取指定码字(C)、筛选获取随机码字(D)。在本模块中,系统根据用户数据中输入的获取码字功能F,作出相应的处理。
输入模块,本模块需要用户输入请求的码字个数n,并对码字个数n进行预判断。如图2所示,如果0<n<=6144,则进入码字选择模块;否则,提示用户输入0~6144之间的码字个数(包括6144),并返回当前模块重新输入。本模块还需要用户输入获取码字功能F,并对获取码字功能F进行预判断。如果F∈[A,D],则进入码字选择模块;否则,提示用户输入[A,D]之间的字母(不区分大小写),并返回当前模块重新输入。
配置模块,本模块仅面向管理员开放,用于设置编码表文件的存储路径、设置码字最大个数N以及输出文件的保存路径。
结果输出模块,将从码字选择模块得到的输出结果输出,以txt文件格式保存到本地磁盘。
所述码字选择模块包含以下子模块:
随机获取子模块,本模块的作用是随机获取一个或多个码字。为了保证该模块获取过程的随机性,需要首先设置rand()产生随机数时的随机数种子,再调用rand()函数,它会根据随机数种子值返回一个随机数(0~32767)。设置rand()产生随机数时的随机数种子有多种方法,包括:利用srand((unsigned int)(time(NULL)))的方法,利用srand((unsigned int)(getpid()))的方法。其中time(NULL)用于获取运行程序的系统时间作为随机数种子,getpid()用于获取运行程序的进程识别码作为随机数种子。
连续获取子模块,假设当前已获取到的码字标号为mi,则要保证后续k个码字是继mi之后连续的k个码字,则mi之后的k个码字(mi+1,mi+2,…,mi+k-1)将被本模块获取。
去重子模块,本模块作用是防止出现重复的码字,首先把编码表读到缓存中,形成一个数组A,A的元素值保存码字,A的下标保存码字标号。去重模块具体实施步骤为:
(1)将N种隐私码字按顺序保存到数组A中,A的下标存码字的标号,A中的元素存码字,Count记录取出码字的个数,初始值为0;
(2)通过随机获取模块生成一个[0,N-1]的码字标号;
(3)将(2)选择的码字标号取出,Count++,并将A中最后一个可用的码字复制到当前位置,并且N--,返回(2);
(4)当Count=n时,不重复随机码字生成结束。
一种文本文档中的信息隐藏方法,包括如下步骤:
(1)发送方和接收方中的一方或双方采用上述面向Unicode编码文档的隐私码字选择系统,选出满足要求的N个(N为自然数)隐私码字;
(2)发送方和接收方利用选出的N个隐私码字和双方共享的一组秘密数字构造编码表,用于文本文档中的信息隐藏;
(3)发送方选择载体对象,根据步骤(2)中生成的编码表,通过信息嵌入将秘密消息嵌入到载体对象中,得到带秘载体;
(4)发送方将步骤(3)中得到的带秘载体通过通信信道传输到接收方;
(5)接收方根据步骤(2)中生成的编码表,通过提取算法从步骤(4)中接收到的带秘载体中将秘密消息提取出来,得到秘密消息。
与现有技术相比,本发明的有益效果在于:
(1)提供一种面向Unicode编码文档的隐私码字选择方法,最多可以选择6144种隐私码字,且方法易学易懂。
(2)提供一种面向Unicode编码文档的隐私码字选择系统,该系统可以针对用户的不同选择需求,选出满足用户要求的N个(N为自然数)隐私码字;获取系统提供了4种码字获取方法,极大的方便了用户获取所需要的隐私码字,且易操作。
(3)在信息隐藏中,可通过上述方法和系统,选择需要数量的码字组成编码表,可提高信息隐藏量。
附图说明
图1是码字选择系统的模块组成及实现流程图。
图2是输入模块系统流程图。
图3是随机获取码字系统流程图。
图4是连续获取随机码字系统流程图。
图5是获取指定码字系统流程图。
图6是筛选获取随机码字系统流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明提出了一种面向Unicode编码文档的隐私码字的选择方法,通过该选择方法最多可以选择出6144种隐私码字,并且选择方法简单易学,如表1所示,具体码字选择方法实现步骤如下:
(1)在0000~1111中任意选择一个值p1作为y11的值;
(2)在0000~1111中任意选择一个值p2作为y12的值;
(3)在1101~1111中任意选择一个值p3作为y21的值;
(4)如果(3)中p3=1101,则在1000~1111中选择一个值p4作为y22的值;
(5)如果(3)中p3=1110,则在0000~0110中选择一个值p4作为y22的值;
(6)如果(3)中p3=1111,则在0000~1000中选择一个值p4作为y22的值;
(7)则,一次选择的隐私码字为y11y12y21y22。
表1.码字选择的取值列表
y11 | y12 | y21 | y22 |
0000~1111 | 0000~1111 | 1101 | 1000~1111 |
0000~1111 | 0000~1111 | 1110 | 0000~0110 |
0000~1111 | 0000~1111 | 1111 | 0000~1000 |
利用上述方法,最多可以选择6144种隐私码字,表2为得到的隐私字符编码表。
表2.隐私字符编码表
标号m | 码字xx | 标号m | 码字xx | 标号m | 码字xx |
0 | 00D8 | 2048 | 00E0 | 3840 | 00F0 |
… | … | … | … | … | … |
7 | 00DF | 2054 | 00E6 | 3848 | 00F8 |
8 | 01D8 | 2055 | 01E0 | 3849 | 01F0 |
… | … | … | … | … | … |
15 | 01DF | 2061 | 01E6 | 3857 | 01F8 |
… | … | … | … | … | … |
… | … | … | … | … | … |
2047 | FF DF | 3839 | FF E6 | 6143 | FF F8 |
本发明还提出了一种面向Unicode编码文档的隐私码字的选择系统,如图1所示,通过该系统可以方便且快速的选择出满足用户需求的隐私码字,具体码字选择系统实现步骤如下:
(1)用户输入(A~D)来选择码字获取方式,A表示随机获取码字,B表示连续获取随机码字,C表示连续获取指定码字,D表示筛选获取码字;
(2)如果(1)中选择A,则随机获取码字,流程如图3所示,用户需要输入请求码字个数n,系统会将隐私字符编码表Tr拷贝到缓存,通过随机获取子模块和去重子模块在缓存中选择出n个隐私码字,将n个码字输出到本地文件。
(3)如果(1)中选择B,则连续获取随机码字,流程如图4所示,用户需要输入请求码字个数n,系统会将隐私字符编码表Tr拷贝到缓存,并通过随机获取子模块选择一个码字xx,再通过连续获取子模块将码字xx之后连续(n-1)个隐私码字选择出来。如果当前选择的码字标号m>6143,则m置0,继续获取。最后将n个码字输出到本地文件。
(4)如果(1)中选择C,则连续获取指定码字,流程如图5所示,用户需要输入请求码字个数n以及第一个隐私码字xx,系统会将隐私字符编码表Tr拷贝到缓存,并获取xx对应在隐私字符编码表Tr中的标号m,并通过连续获取子模块将xx之后连续(n-1)个隐私码字选择出来。如果当前选择的码字标号m>6143,则m置0,继续获取。最后将n个码字输出到本地文件。
(5)如果(1)中选择D,则筛选获取随机码字,流程如图6所示,用户需要输入请求码字个数n以及m个隐私码字,系统会在将隐私字符编码表Tr拷贝到缓存时,匹配m个用户输入的隐私码字,如果匹配,则不拷贝当前码字。之后,系统会在缓存中通过随机获取子模块和去重子模块选择出n个隐私码字。最后将n个码字输出到本地文件。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (6)
1.一种面向Unicode编码文档的隐私码字选择系统,其特征在于,包括:
码字选择模块,提供四种码字获取的方式,分别为:A,随机获取码字;B,连续获取随机码字;C,连续获取指定码字;D,筛选获取随机码字;该码字选择模块采用以下方法选择隐私码字:
(1)采用2个字节组成一个码字m,用x1x2表示,一个字节由8个比特组成,每4个比特用一个y表示,则一个码字用y11y12y21y22表示,即x1x2=y11y12y21y22;
(2)对于每一个隐私字符,码字y11的选择取值范围是0000~1111,y12的选择取值范围是0000~1111,y21的选择取值范围是1101~1111,y22的选择取值受y21的选择取值约束;
(3)当y21的选择取值为1101时,y22的选择取值范围是1000~1111;当y21的选择取值为1110时,y22的选择取值范围是0000~0110;当y21的选择取值为1111时,y22的选择取值范围是0000~1000;
输入模块,供用户输入请求的码字个数n,并对码字个数n进行预判断,如果0<n<=6144,则进入码字选择模块;否则,提示用户输入0~6144之间的码字个数,并返回当前模块重新输入;该模块还供用户输入获取码字功能F,并对获取码字功能F进行预判断,如果F∈[A,D],则进入码字选择模块;否则,提示用户输入[A,D]之间的字母,并返回当前模块重新输入;
配置模块,仅面向管理员开放,用于设置编码表文件的存储路径、设置码字最大个数N以及输出文件的保存路径;所述编码表是由发送方和接收方利用选出的N个隐私码字和双方共享的一组秘密数字构造而成;
结果输出模块,将从码字选择模块得到的输出结果输出,并进行保存。
2.如权利要求1所述的系统,其特征在于,所述码字选择模块包含以下子模块:
随机获取子模块,用于随机获取一个或多个码字;
连续获取子模块,假设当前已获取到的码字标号为mi,并保证后续n-1个码字是继mi之后连续的n-1个码字,则该模块获取mi之后的n-1个码字(mi+1,mi+2,...,mi+n-1);
去重子模块,用于防止出现重复的码字。
3.如权利要求2所述的系统,其特征在于:所述随机获取子模块首先设置rand()产生随机数时的随机数种子,再调用rand()函数,根据随机数种子值返回一个0~32767的随机数。
4.如权利要求3所述的系统,其特征在于:所述随机获取子模块设置rand()产生随机数时的随机数种子的方法包括:利用srand((unsigned int)(time(NULL)))的方法,以及利用srand((unsigned int)(getpid()))的方法;其中time(NULL)用于获取运行程序的系统时间作为随机数种子,getpid()用于获取运行程序的进程识别码作为随机数种子。
5.如权利要求2所述的系统,其特征在于:所述去重子模块把编码表读到缓存中,形成一个数组A,具体实施步骤为:
(1)将N种隐私码字按顺序保存到数组A中,A的下标保存码字的标号,A中的元素值保存码字,Count记录取出码字的个数,初始值为0;
(2)通过随机获取模块生成一个[0,N-1]的码字标号;
(3)将步骤(2)选择的码字标号取出,Count++,并将A中最后一个可用的码字复制到当前位置,并且N--,返回到步骤(2);
(4)当Count=n时,不重复随机码字生成结束。
6.一种文本文档中的信息隐藏方法,其特征在于,包括如下步骤:
(1)发送方和接收方中的一方或双方采用权利要求1所述面向Unicode编码文档的隐私码字选择系统,选出满足要求的N个隐私码字,N为自然数;
(2)发送方和接收方利用选出的N个隐私码字和双方共享的一组秘密数字构造编码表,用于文本文档中的信息隐藏;
(3)发送方选择载体对象,根据步骤(2)中生成的编码表,通过信息嵌入将秘密消息嵌入到载体对象中,得到带秘载体;
(4)发送方将步骤(3)中得到的带秘载体通过通信信道传输到接收方;
(5)接收方根据步骤(2)中生成的编码表,通过提取算法从步骤(4)中接收到的带秘载体中将秘密消息提取出来,得到秘密消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047880.2A CN104699661B (zh) | 2015-01-29 | 2015-01-29 | 面向Unicode编码文档的隐私码字选择方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047880.2A CN104699661B (zh) | 2015-01-29 | 2015-01-29 | 面向Unicode编码文档的隐私码字选择方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104699661A CN104699661A (zh) | 2015-06-10 |
CN104699661B true CN104699661B (zh) | 2018-04-10 |
Family
ID=53346801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510047880.2A Active CN104699661B (zh) | 2015-01-29 | 2015-01-29 | 面向Unicode编码文档的隐私码字选择方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699661B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203135B (zh) * | 2016-07-04 | 2019-07-16 | 中国科学院信息工程研究所 | 一种针对rsid隐藏信息的无源检测方法 |
CN110418029A (zh) * | 2019-07-02 | 2019-11-05 | 南京理工大学 | 基于Unicode编码的文本秘密信息隐藏和提取方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1599405A (zh) * | 2004-07-26 | 2005-03-23 | 刘�东 | 以符号的冗余编码携带隐藏信息的文本数字水印技术 |
CN101645061A (zh) * | 2009-09-03 | 2010-02-10 | 张�浩 | 一种以文本信息为载体的信息隐藏方法 |
CN101930587A (zh) * | 2009-06-19 | 2010-12-29 | 株式会社理光 | 水印信息扩展编码、嵌入、评估、检测提取方法和装置 |
US8050404B2 (en) * | 2008-12-29 | 2011-11-01 | Nortel Networks Limited | Bandwidth efficient method and system for obscuring the existence of encryption in a communications channel |
CN102542212A (zh) * | 2010-12-24 | 2012-07-04 | 北大方正集团有限公司 | 一种文本信息隐藏方法及装置 |
CN103294959A (zh) * | 2013-05-29 | 2013-09-11 | 南京信息工程大学 | 一种抗统计分析的文本信息隐藏方法 |
-
2015
- 2015-01-29 CN CN201510047880.2A patent/CN104699661B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1599405A (zh) * | 2004-07-26 | 2005-03-23 | 刘�东 | 以符号的冗余编码携带隐藏信息的文本数字水印技术 |
US8050404B2 (en) * | 2008-12-29 | 2011-11-01 | Nortel Networks Limited | Bandwidth efficient method and system for obscuring the existence of encryption in a communications channel |
CN101930587A (zh) * | 2009-06-19 | 2010-12-29 | 株式会社理光 | 水印信息扩展编码、嵌入、评估、检测提取方法和装置 |
CN101645061A (zh) * | 2009-09-03 | 2010-02-10 | 张�浩 | 一种以文本信息为载体的信息隐藏方法 |
CN102542212A (zh) * | 2010-12-24 | 2012-07-04 | 北大方正集团有限公司 | 一种文本信息隐藏方法及装置 |
CN103294959A (zh) * | 2013-05-29 | 2013-09-11 | 南京信息工程大学 | 一种抗统计分析的文本信息隐藏方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104699661A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100447812C (zh) | 一种文档数字水印嵌入方法 | |
Kingslin et al. | Evaluative approach towards text steganographic techniques | |
CN103294959B (zh) | 一种抗统计分析的文本信息隐藏方法 | |
CA3082614A1 (en) | A computer-implemented method of performing format-preserving encryption of a data object of variable size | |
CN104699661B (zh) | 面向Unicode编码文档的隐私码字选择方法及系统 | |
Thabit et al. | CSNTSteg: Color spacing normalization text steganography model to improve capacity and invisibility of hidden data | |
US20220311596A1 (en) | A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext | |
Tyagi et al. | A High Capacity PDF Text Steganography Technique Based on Hashing Using Quadratic Probing. | |
Ahmed et al. | Comparison of eight proposed security methods using linguistic steganography text | |
Din et al. | Traid-bit embedding process on Arabic text steganography method | |
CN106973008A (zh) | 一种选择性撤回邮件的实现方法 | |
CN111447188B (zh) | 基于语言隐写特征空间的无载体文本隐写方法 | |
Leung et al. | Flexible compression of big data | |
Torvi et al. | An unique data security using text steganography | |
Chou et al. | A Webpage Data Hiding Method by Using Tag and CSS Attribute Setting | |
CN105871542A (zh) | 一种密文的加密解密方法 | |
Munir | Application of the modified EzStego algorithm for hiding secret messages in the animated GIF images | |
Foda et al. | A Qur'anic Code for Representing the Holy Qur'an (Rasm Al-'Uthmani) | |
Odeh et al. | Text steganography using language remarks | |
CN106910149A (zh) | 一种公民身份证号码的替代号码生成系统及生成方法 | |
Mohamed et al. | A novel method to protect content of microsoft word document using cryptography and steganography | |
Chaudhary et al. | A capital shape alphabet encoding (CASE) based text steganography | |
Raphael et al. | Secured crypto-stegano communication through unicode | |
Dalkilic et al. | Concept of and Experiments on Combining Compression with Encryption | |
CN106156655A (zh) | 一种面向云存储的文件压缩及认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |