Superdense coding是一种量子通信的方式。A和B共享一个纠缠态,发送者A通过更改自己的量子比特从而向接收者B传输经典比特的信息如(00,01,10 or 11),下面简单介绍一下整个过程。
- 起初有一个双量子比特|B00>=1√2(|00>+|11>),它可以通过作用CNOT(H⊗I|00>)获取。
|B00>=1√2(|00>+|11>)又称EPR pair
其有一个性质:叠加态中,若第一个量子比特经测量坍塌到|0>,第二个量子比特也必然坍塌到|0>;反之亦然。
-
假设有两个人A和B,他们相距很远。我们将该|B00>的第一个比特分给A、第二个比特分给B。因此A获得叠加态比特qA=12(|0>+|1>),B获得叠加态比特qB=12(|0>+|1>),且qA和qB之间存在纠缠关系(该描述方式可能有误,因为EPR状态无法分解成两个单比特,它们的系数也不会是12,这里写出只为帮助理解)。因此|B00>=12(|0A0B+1A1B>)。
-
现在A想向B传输信息xy(xy=00,01,10or11),但其只能操作自己的比特qA,他该怎么办?
A通过量子门改变自己的比特qA使|B00>变为|Bxy>,并发送qA;当B接收到qA后即得到|Bxy>。
xy |
B00 |
qA |
gate |
qA(new) |
Bxy |
00 |
∣B00>=1√2(∣00>+∣11>) |
12(∣0>+∣1>)=12[1001] |
I=[1001] |
12(∣0>+∣1>)=12[1001] |
∣B00>=1√2(∣00>+∣11>) |
01 |
∣B00>=1√2(∣00>+∣11>) |
12(∣0>+∣1>)=12[1001] |
Z=[100−1] |
12(∣0>−∣1>)=12[100−1] |
∣B01>=1√2(∣00>−∣11>) |
10 |
∣B00>=1√2(∣00>+∣11>) |
12(∣0>+∣1>)=12[1001] |
X=[0110] |
12(∣1>+∣0>)=12[0110] |
∣B10>=1√2(∣10>+∣01>) |
11 |
∣B00>=1√2(∣00>+∣11>) |
12(∣0>+∣1>)=12[1001] |
Z∗X=[01−10] |
12(∣1>−∣0>)=12[0−110] |
∣B11>=1√2(∣10>−∣01>) |
-
随后B再进行解码CNOT(H⊗I)B|xy>=|xy>,从而得到|xy>。
上述过程,A只改变了自身的一个量子位比特,就向B传输了两个比特的信息,若A和B之前没有共享纠缠态,这是不能发生的。
此外在安全性上,如果A和B之间有个C,他想窃取信息。但由于没有B的量子位,其无法从A发送的比特中得到任何信息。并且如果他测量A的量子位,B也会同时坍塌,这样B就会知道信息被窃听了。
Reference:https://en.wikipedia.org/wiki/Superdense_coding
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端