用matlab设计一款伪随机函数(LCC伪随机数生成,请参看附件中文件randUx.m),将LSB算法与伪随机函数结合,信息隐藏的位由伪随机函数确定,实现信息隐藏的随机性,从而提高隐藏算法的抗攻击性;

时间: 2023-05-27 17:05:40 浏览: 64
由于题目中已经给出了LCC伪随机数生成的matlab代码,我们可以直接使用该代码生成伪随机数,并将LSB算法与其结合实现信息隐藏。 首先,我们需要定义一个函数,该函数可以将需要隐藏的信息转换为二进制形式,并将其按照一定的规则与伪随机数进行异或操作,从而实现信息隐藏。下面是代码实现: ```matlab function [stego_img, prn] = LSB_PRN_hide(cover_img, message, key) % cover_img: 要隐藏信息的载体图片 % message: 要隐藏的信息,可以是字符串或数字 % key: 伪随机数生成的密钥 % 将信息转换为二进制形式 if isstring(message) message = char(message); end if ischar(message) message = uint8(message); end if isnumeric(message) message = dec2bin(message)'; message = message(:) - '0'; end % 生成伪随机数 prn = randUx(size(cover_img), key); % 将信息与伪随机数进行异或操作 stego_img = cover_img; stego_img = bitset(stego_img, 1, bitxor(bitget(stego_img, 1), message)); stego_img = bitset(stego_img, 2, bitxor(bitget(stego_img, 2), prn(:))); ``` 其中,我们使用了matlab内置函数`dec2bin`将数字类型的信息转换为二进制形式,`bitget`和`bitset`函数实现了对二进制数据的读取和修改,`bitxor`函数实现了异或操作。 接下来,我们可以编写解密函数,将隐藏的信息提取出来。代码如下: ```matlab function [message, prn] = LSB_PRN_extract(stego_img, key, message_length) % stego_img: 隐藏了信息的图像 % key: 伪随机数生成的密钥 % message_length: 需要提取的信息长度,单位为比特 % 生成伪随机数 prn = randUx(size(stego_img), key); % 从图像中提取信息 message = bitget(stego_img, 1); message = message(1:message_length); % 从图像中提取伪随机数 prn = bitget(stego_img, 2); prn = reshape(prn, [], length(prn)/length(prn(:))); prn = prn(:, 1:length(key(:))); prn = bi2de(prn); % 将信息与伪随机数进行异或操作,得到原始信息 message = bitxor(message, prn); message = char(char(message + '0')'); message = message(:)'; if message_length ~= length(message) warning('提取的信息长度与指定的长度不符!'); end ``` 在解密函数中,我们使用了`reshape`函数将图像中提取出来的伪随机数重新排列,然后使用了`bi2de`函数将二进制形式的伪随机数转换为十进制形式,最后再将信息与伪随机数进行异或操作,得到原始信息。 使用上述函数,我们可以将信息隐藏到图像中,并且实现信息隐藏的随机性。同时,由于使用了伪随机数生成密钥,因此可以提高隐藏算法的抗攻击性。

相关推荐

最新推荐

recommend-type

恒流输出模式下LCC谐振变换器的特性与设计

根据电流增益曲线的特征提出了最佳工作区域选择策略,详细给出了LCC谐振腔、变压器参数的计算方法,接着借助一台输入电压为395 V、输出电流为2 A、输出电压为16~48 V的样机验证了设计思路的正确性。
recommend-type

Quectel_EC200S_参考设计手册_V1.0.pdf

频段: LTE-FDD: B1/B3/B5/B8 LTE-TDD: B34/B38/B39/B40/B41 ...LCC 封装 供电电压: 3.4~4.5 V,典型值 3.8 V 带宽: 1.4/3/5/10/15/20MHz 3GPP TS 27.007, 27.005 定义的命令,以及移远 通信增强型 AT 命令
recommend-type

Quectel_EC200S-CN_硬件设计手册_V1.0.pdf

EC200S 模块封装紧凑, 仅为 29.0mm × 32.0mm × 2.4mm,能满足几乎所有 M2M 应用需求,例如: 自动化领域、 智能计量、跟踪系统、 安防系统、路由器、无线 POS 机、移动计算设备、 PDA 电话和平板电 脑等。 EC200S...
recommend-type

HTA8533-MD-007YY_使用说明书_V1.1_20170302.pdf

HTA8533 是一款高性能 12 路 LCC 封装并行光发射模块,用于甚短距离并列多通道光 互联数据通信。模块的中心波长为 850nm,每个通道提供 10.3125Gbps 典型传输速率。光 接口使用 MT 式尾纤接口,电气接口使用 LCC48 ...
recommend-type

FIBOCOM L610-CN系列硬件用户手册_V1.0.9.pdf

FIBOCOM L610-CN系列硬件用户手册,是4G CAT1模块,有minipcie接口与LCC封装,支持BT,WIFI与GNSS。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。