APP下载

一种基于弦乐配器的音乐隐写方法

2019-07-30朱照华王健宗

复旦学报(自然科学版) 2019年3期
关键词:配器音符声部

朱照华,王健宗,肖 京

(平安科技(深圳)有限公司,深圳 518000)

隐写术是艺术与科学相结合的信息安全技术,该技术将秘密信息以不可见的方式隐藏到看似平常的载体当中.较加密术而言,隐写术隐藏了秘密信息的存在性,因而在某种程度上可以实现更好的安全性.隐写术的这一特点使其近些年来得到了巨大的发展,隐写载体也从最开始的图像发展到如今涵盖几乎所有的多媒体介质[1].音乐作为一种具有典型特性的载体,近些年来得到了研究者的普遍关注.音乐中存在着大量的感官冗余,不同的人对于音乐都有着不同的解读方式,同时音乐本身所具有的多样性和抽象性的特点也使得音乐成为一种理想的载体.音乐隐写术是一种由古老的音乐加密术发展而来的信息安全技术,其目的在于以一种不可感知的方式将秘密信息隐藏在形如旋律、伴奏等音乐内容当中.本文所说的音乐隐写术不同于音频隐写术,前者是利用音乐内容中存在的冗余进行隐写,而后者是通过音频信号编码格式中存在的冗余进行隐写.

从现有的研究来看,音乐隐写术根据其嵌入载体和嵌入方式的不同大致可分为两个主要类别: 基于音高调制的音乐隐写术和基于音乐表现力调制的音乐隐写术.基于音高调制的音乐隐写术根据秘密信息直接修改相关音符的音高来实现嵌入,音乐加密术是这类方法最早的一个应用.Bach利用罗马字母形状和音乐音符之间的相似性将自己的名字用特定的音符序列表示,并使用在他的音乐作品当中[2].Hutchinson[3]设计了一套编码规则,即根据待嵌入信息中不同字母的数量设计对应的音符编码,然后将编码后的音符嵌入到音乐旋律的指定位置.该类方法虽然可以成功地实现秘密信息的嵌入,但是对此类方法规则的设计需要仔细考虑,一有不当就会使得嵌入了秘密信息后的音乐听起来十分怪异.基于音乐表现力调制的音乐隐写术通过修改音乐当中与音乐表现力相关的参数(如: 力度、时值、节拍)来进行秘密信息的隐藏.Aldi等[4]提出了3种有效的隐写方法将秘密信息分别嵌入到MIDI格式音乐的相关指令当中.Yamamoto等[5]分析了MIDI格式音乐中时值的编码特点,提出了一种将秘密信息隐藏到音符时值波动中的隐写方法.Szczypiorski[6]设计了一种全新的隐写方法,通过改变音乐中每一个节拍的速度将秘密信息嵌入到MIDI格式的电子乐当中.此类方法基本不会改变音乐原有的特点,并且可以实现不错的隐藏容量.

本文着重研究基于音高调制的音乐隐写术.目前,这类方法主要在音乐的旋律部分进行秘密信息的隐藏,但是人们日常接触的音乐往往都不是单一的旋律,而是由一个旋律声部编配上许多不同的配器声部组成,在这些配器声部中尚没有行之有效的隐写方法.配器声部在音乐中一般指音乐的伴奏部分,主要用于丰富旋律的色彩,相比旋律声部而言,人们在听觉上对配器声部往往有着更好的包容性,并且在听到一首音乐时人们会更加注重旋律的好听与否,而对配器声部往往不会有过多的关注.因此,在此背景下,本文以音乐中的弦乐配器声部为研究对象,提出了一种基于弦乐配器的音乐隐写方法.该方法以MIDI格式音乐为基础,从音乐理论的角度出发,通过秘密信息调制配器小节中不同类别音符的比例来进行秘密信息的嵌入.理论分析和实验结果表明本文的方法可以在保证嵌入透明性的同时实现不错的隐藏容量和很好的安全性.

1 一种基于弦乐配器的音乐隐写方法

本文首先通过一个经典的囚徒模型[7]展示了音乐隐写术的一个基本框架,如图1所示.假设消息的发送方Alice想要在一个公开信道上将一份秘密信息传递给接收方Bob.为了实现这一过程,Alice设计了一个嵌入算法将秘密信息隐藏到一首音乐的MIDI文件当中,然后通过一个公开的信道将信息发送给Bob.当接收到载密文件之后,Bob使用相应的提取算法从中提取出Alice嵌入的秘密信息从而完成秘密信息的传递.本文所提出的模型将秘密信息隐藏到音乐的弦乐配器当中,具体做法描述如下.

图1 音乐隐写术的基本框架Fig.1 The basic framework of musical steganography

步骤1加密操作.通过秘钥key1随机生成一段与秘密信息长度一致的二进制序列S1={s1,1,s1,2,…,s1,LM}行加密操作,表述如下:

(1)

步骤2嵌入位置决策.本文的方案是根据某个音符的时值和节拍力度来作为该位置是否用于信息嵌入的判断依据.节拍力度是与音乐韵律有关的参数,可以表示不同位置的节拍强度,对于第i个声音Ti而言,其所处节拍的节拍力度αi通过式(2)来计算:

αi=2-1×σ,

(2)

其中:

(3)

θj=λj∧s2,j,

(4)

其中: ∧表示与操作;λi表示决策参数.当βj≤r时,λi=1;否则λi=0.r为发送方指定的嵌入阈值.

(5)

对P中每一个小节的音符重复进行同样的操作即可得到嵌入了信息之后的音乐.

为了清楚地展示嵌入模型,本文通过一个实例来对方法进行描述.图2所示为一首音乐弦乐配器声部的部分乐段,该乐段拍号为A/B=4/4,配器为原声吉他.该乐段中声音记为P={T1,T2,…,T16}={{c1},{e1,g1,c2},{g},{g1,c2,e2},{c1},{g1,c2,e2},{g},{g1,c2,e2},{c1},{e1,g1,c2},{g},{e1,g1,c2},{c1},{g1,c2,e2},{g},{e1,g1,c2},其所对应的和弦序列C={C1,C2,C3,C4},其中C1=C2=C3=C4={C,E,G}.在选取r<0.01的条件下,计算出P中各个声音位置的嵌入参数为{0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}.对第1个和弦C1而言,O1={3,3,2},假设当前嵌入到C1当中的秘密信息比特为{1,1,1},那么C1中所包含的乐音数量将会被调制为O1={3,3,1},即嵌入秘密信息之后T1中的音符将会变为{{c1},{g1,c2},{g},{g1,c2,e2}}.

图2 音乐嵌入实例Fig.2 Music embedding example

相应地,信息提取过程描述如下:

步骤1接收方首先通过音符的时值和节拍力度计算出每个声音在音乐节拍中所占的重要性比值,然后通过约定的秘钥key2生成二进制序列S2={s2,1,s2,2,…,s2,LP},并利用式(4)计算出相应的嵌入参数θj.

(6)

步骤3接收方通过秘钥key1生成二进制序列S1={s1,1,s1,2,…,s1,LM},然后通过式(7)逐位对提取出的秘密信息比特进行解密操作即可以得到最终的嵌入信息:

(7)

ξ=μ×(LC-γ).

(8)

2 性能评价

为了评价本文方案的性能,本文对从互联网中搜集的30首分别隶属于流行、民谣、爵士风格的音乐样本进行秘密信息的嵌入,所有实验音乐样本都具有单一的吉他配器声部.对每一个音乐样本,分别在r=1,r=0.5,r=0.25和r=0.125这4种嵌入阈值下将秘密信息嵌入到其吉他配器声部当中,在嵌入过程中所有的秘密信息都是随机生成的并且能成功地嵌入到所有的音乐样本当中.4种嵌入阈值下本文方案在不同音乐样本中的嵌入容量如图3所示,对应的音乐样本中配器内的和弦密度和声音密度如图4所示.图3和图4分别表示每个小节内的和弦数量的高低以及每个小节内音符之间节拍距离的分布差异,其中和弦密度越高的音乐样本其和弦变化越丰富,声音密度越高的音乐样本其配器在一个小节内织体的进行越不平稳.从这些图中可以得出2个结论: 第一,本文方案在不同的音乐样本当中的嵌入容量并不相同,对在嵌入阈值为1中隐藏容量较大的音乐样本,如样本8,17,20,21,其和弦密度大于其他样本的和弦密度,这表明和弦变化丰富的音乐样本中的配器声部比和弦变化不丰富的音乐样本中的配器声部有着更大的隐藏容量;第二,本文方案对于同一首音乐样本而言在不同嵌入阈值下的嵌入容量并不完全相同,同一首音乐样本在低嵌入阈值下的隐藏容量比高嵌入阈值下的有所降低,并且当嵌入阈值下降到某一个特定的值后,部分样本的隐藏容量会降为0,例如样本5,12,16,19,22,24在嵌入阈值为0.125时隐藏容量已经全部降至为0,相应地,这些音乐样本配器声部中的和弦密度都为0,这说明音乐样本配器声部中织体的差异也会影响其中可以嵌入的秘密信息的容量,对配器声部中织体进行比较平稳的音乐样本而言其隐藏容量更容易受嵌入阈值的影响.因此,在实际的嵌入过程中,可以通过选择和弦变化更加丰富并且织体进行更加多变的音乐来获得更大的隐藏容量.另外,在嵌入阈值r=0.125时部分实验样本在10%~100%嵌入率下的嵌入容量如图5所示,从图中可以发现在本文所提出的方案中,实际的嵌入容量和理论的嵌入容量基本上是一致的,这也进一步说明了本文方案的正确性.

图3 4种嵌入阈值下本文方案在不同音乐样本中的嵌入容量Fig.3 Embedding capacity of this scheme in different music samples under four embedding thresholds

图4 音乐样本配器内的和弦密度和声音密度Fig.4 Chord density and sound density in instruments of music samples

图5 不同嵌入率下部分音乐样本的嵌入容量Fig.5 Embedding capacity of some music samples with different embedding rates

此外,本文通过盲听测试(ABX blind test)来对方案的隐写透明性进行验证.为此文中创建了3个测试集,每个测试集中包含有5首原始的音乐和5首嵌入了秘密信息的载密音乐.实验者中包含有10名普通的参与者,10名信息隐藏领域的研究者和10名音乐爱好者.在实验过程中,如果实验者听完音乐后认为是原始的音乐,则标记为A;如果认为是载密音乐,则标记为B.相关的实验结果见表1.通过测试结果可以发现,参与者对于原始音乐和载密音乐的分辨正确率近似于随机选择一个的正确率(50%),因此可以说明实验者都无法准确地区分原始音乐和载密音乐,这表明本文提出的实验方案具有着很好的透明性.

表1 盲听测试的实验结果

3 结 语

本文提出了一种基于弦乐配器的音乐隐写方法,以音乐理论为驱动来实现秘密信息在音乐弦乐配器声部当中的嵌入.该方法首先通过音乐当中每个音符的时值和节拍力度计算出相关参数来判断音乐弦乐配器声部中可以用于嵌入的声音位置,然后通过改变配器声部中不同类别音符的比例来实现秘密信息的嵌入.理论分析和实验结果表明本文的方法可以在保证嵌入透明性的同时实现不错的隐藏容量和很好的安全性.

猜你喜欢

配器音符声部
梅花
——为混声四声部合唱而作
春日景和
浅析《嘎达梅林交响诗》配器技法
美妙音符
春天的音符
小学中低段合唱中声部配合的有效教学
合唱的音响效果之我见
配器课在师范高校公共课教学中的几点思考
多声部视唱训练研究——以《铃儿响叮当的变迁》为例
打击乐配器及节奏编配在音乐教育、教学中的运用(中)