论坛首页 开源情报交流区 阅读主题

[原创]量子安全 quantum ctf (1) Global Hyperlink Zone Hack the box

283 浏览 0 回复
#1 楼主 2026-06-01 21:08:55
首先,拿到了一个server.py文件,我们先来分析代码:一上来是定义了一个类,然后引用了包和设置aer接下来是第一个方法,生成量子线路,也就是mai函数中调用到的:参数是instructions,对应不同的量子操作例如他代码中的样例:H:0;CX:0,1这段主要是进行了格式检查和量子线路的数量检查接下来是判断输入的算符,每道题能用到的算符是不一样的,这道题能用的是H,S,T,X这四个单量子比特算符和CX,CY,CZ这三个受控双量子比特,受控门的参数设置一般为(控制位,目标位),比如cx(0,1)的意思就是根据0号电路来对于1号电路进行受控x这个是一个量子状态检查的代码,在main函数被调用用来检查量子是否处于题目要求的状态,如果返回值为true那么我们就可以获得flag了。首先他会创建一个电路,然后使用刚才的生成电路的函数来制造电路,也就是会加入我们输入的操作。之后获取每一条量子线路的测量结果,要求满足q0=q1=q3,q2=q4,q4!=q2(qn表示第n条线路)满足这个条件即可为truemain函数主要是先读取我们的操作,然后使用初始化判断来判断是否满足条件,满足即可获得flag。
类似经典电路每条线为0或者1,量子电路用态来表示,每条电路有基态|0>,激发态|1>,也会有叠加态。一条电路上的态可以用这个式子来表示,即为量子态|k>=a|0>+b|1>,其中a和b为振幅,振幅的平方表示观测时得到该态的概率,当然如果不观测就不知道具体是0还是1,处于叠加态。上式a,b还满足:即为概率和为1。如下图,有五条量子线路,每个初始态都默认为0态
这里先只介绍这道题要用到电路门,其他的之后遇到再补充。
图示为他以线性代数的表达方式,所有量子门运算都可以用线性代数进行推导。即为矩阵相乘H门的作用普通的如下


登录后可查看完整内容

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289012.htm

暂无回复,快来抢沙发吧!

请登录后参与讨论

立即登录 注册账号