2024年安全通论作业一

(

1

p

)

(

b

c

)

a

log

a

p

(

a

d

)

b

log

b

p

(

b

c

)

\begin{aligned} I(X, Z) &= \sum_x\sum_z p(x, z)\log\frac{p(x, z)}{p(x)p(z)} \ &= d\log\frac{d}{(1-p)(a+d)} + c\log\frac{c}{(1-p)(b+c)} \ &+ a\log\frac{a}{p(a+d)} + b\log\frac{b}{p(b+c)} \end{aligned}

I(X,Z)​=x∑​z∑​p(x,z)logp(x)p(z)p(x,z)​=dlog(1−p)(a+d)d​+clog(1−p)(b+c)c​+alogp(a+d)a​+blogp(b+c)b​​

又由于 a + b + c + d = 1,p = a + b,q = a + c,0 < a, b, c, d, p, q < 1,可以进一步转化为只与变量a和p有关的如下公式(注意:此时q已不再是变量,而是确定值了)

I

(

X

,

Z

)

=

[

1

a

p

q

]

log

1

a

(

p

q

)

(

1

p

)

(

1

2

a

p

q

)

(

q

a

)

log

q

a

(

1

p

)

(

p

q

2

a

)

a

log

a

p

(

1

2

a

p

q

)

(

p

a

)

log

p

a

p

(

p

q

2

a

)

\begin{aligned} I(X, Z) &= [1+a-p-q]\log\frac{1+a-(p+q)}{(1-p)(1+2a-p-q)} \ &+ (q-a)\log\frac{q-a}{(1-p)(p+q-2a)} \ &+ a\log\frac{a}{p(1+2a-p-q)} + (p-a)\log\frac{p-a}{p(p+q-2a)} \end{aligned}

I(X,Z)​=[1+a−p−q]log(1−p)(1+2a−p−q)1+a−(p+q)​+(q−a)log(1−p)(p+q−2a)q−a​+alogp(1+2a−p−q)a​+(p−a)logp(p+q−2a)p−a​​

利用此

I

(

X

,

Z

)

I(X, Z)

I(X,Z) 就可知:以 X 为输入,Z 为输出的信道 F 的信道容量

C

=

m

a

x

[

I

(

X

,

Z

)

]

C = max[I(X, Z)]

C=max[I(X,Z)](这里最大值是针对 X 为所有可能的二元离散随机变量来计算的)。
在此处一对一的信道中,其容量

C

=

m

a

x

0

<

a

,

p

<

1

[

I

(

X

,

Z

)

]

C = max_{0<a,p<1}[I(X,Z)]

C=max0<a,p<1​[I(X,Z)],这里的最大值是对仅仅两个变量 a 和 p 在条件 0 < a,p < 1 下之取的,也就是说 攻击信道容量 C,其实是 q 的函数。

攻击信道容量的数值分析

根据攻击信道容量公式

C

=

m

a

x

0

<

a

,

p

<

1

[

I

(

X

,

Z

)

]

=

m

a

x

0

<

a

,

p

<

1

[

(

1

a

p

q

)

log

1

a

(

p

q

)

(

1

p

)

(

1

2

a

p

q

)

(

q

a

)

log

q

a

(

1

p

)

(

p

q

2

a

)

a

log

a

p

(

1

2

a

p

q

)

(

p

a

)

log

p

a

p

(

p

q

2

a

)

]

\begin{aligned} C &= max_{0<a,p<1}[I(X,Z)] \ &= max_{0<a,p<1} [ (1+a-p-q)\log\frac{1+a-(p+q)}{(1-p)(1+2a-p-q)} \ &+ (q-a)\log\frac{q-a}{(1-p)(p+q-2a)} \ &+a\log\frac{a}{p(1+2a-p-q)} + (p-a)\log\frac{p-a}{p(p+q-2a)} ] \end{aligned}

C​=max0<a,p<1​[I(X,Z)]=max0<a,p<1​[(1+a−p−q)log(1−p)(1+2a−p−q)1+a−(p+q)​+(q−a)log(1−p)(p+q−2a)q−a​+alogp(1+2a−p−q)a​+(p−a)logp(p+q−2a)p−a​]​

下面给出以 q 为自变量的攻击信道容量的数值分析函数:

# Compute mutual information
def get\_i(a, p ,q):
	c1 = 1 + a - p - q
	c2 = q - a
	c3 = p - a
	c4 = 1 + 2 \* a - p - q
	c5 = p + q - 2 \* a

	i1 = c1 \* np.log(c1 / ((1 - p) \* c4))
	i2 = c2 \* np.log(c2 / ((1 - p) \* c5))
	i3 = a \* np.log(a / (p \* c4))
	i4 = c3 \* np.log(c3 / (p \* c5))

	i = i1 + i2 + i3 + i4
	return i

# def get\_max\_i(i):
def get\_max\_i(a, p ,q):
	i = get_i(a, p ,q)
	i = np.nan_to_num(i)
	max_i = np.max(i)
	# print(max\_i)
	# print(i)
	return max_i

其中 get_i 函数是根据公式 I(X, Z) 计算互信息,get_max_i 函数是根据

C

=

m

a

x

0

<

a

,

p

<

1

[

I

(

X

,

Z

)

]

C = max_{0<a,p<1}[I(X,Z)]

C=max0<a,p<1​[I(X,Z)] 计算信道容量,即最大的互信息。画出攻击信道容量的数值分析图像如下:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

_p = np.arange(0.01, 1.00, 0.01)
_q = np.arange(0.01, 1.00, 0.01)

# Meshgrid for 2D array creation
p, q = np.meshgrid(_p, _q)

# 2D array outer product
a = np.outer(_p, _q)

# Compute mutual information
def get\_i(a, p ,q):
	c1 = 1 + a - p - q
	c2 = q - a
	c4 = p - a
	c5 = 1 + 2 \* a - p - q
	c6 = p + q - 2 \* a

	i1 = c1 \* np.log(c1 / ((1 - p) \* c5))
	i2 = c2 \* np.log(c2 / ((1 - p) \* c6))
	i3 = a \* np.log(a / (p \* c5))
	i4 = c4 \* np.log(c4 / (p \* c6))

	i = i1 + i2 + i3 + i4
	return i

i = get_i(a, p ,q)

# Plotting
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(p, q, i, cmap='jet')

# Axis labels
ax.set_xlabel('p')
ax.set_ylabel('q')
ax.set_zlabel('I(X,Z)')


### 给大家的福利


**零基础入门**


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)


因篇幅有限,仅展示部分资料

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值