QKD 量子密钥分发

QKD的物理原理 利用量子的测量特性来进行密钥方法而不是量子纠缠 基于以下物理原理 量子具有4种自旋 |0> |1> |+> |-> ,分别在两个测量基 十 和 X 上 |0> |1> 自旋的量子只能在测量基 十 上测准 |+> |-> 自旋的量子只能在测量基 X 上测准 使用错误测量基测量量子会扰动量子,使其在另一个测量基上的分量以1/2 1/2的概率分布到这个测量基,则只有1/2概率测准 使用错误测量基测量量子会使量子自旋改变 基于上述原理的密钥基本方法 Alice发送特定自旋的光子给Bob Bob选择随机测量基进行测量 Alice发送正确测量基 Bob将接收到的正确测量基与选择的测量基比较,判断是否选对测量基 Bob将测量基是否选择正确告知Alice 若测量基有效,则测量结果即为双方交换成功的秘密比特 进行若干次上述过程后,Alice和Bob就有了一组互相知道的密钥 抗第三方的原理 上面交换的过程是可以被监听的,第三方只要截获光子,根据Alice发送的正确测量基来获得测量结果后即可得到光子的状态并发送相同状态的光子给Bob 将以下QKD过程与上述进行比较: Alice发送特定自旋的光子给Bob Bob选择随机测量基进行测量 Bob发送选择的测量基 Alice将收到的测量基与正确测量基比较,结果告知Bob 若测量基有效,则测量结果即为双方交换成功的秘密比特 错误测量基会导致光子改变,因此若是第三方窃听了光子必然导致Bob收到的光子与Alice发出的不同,基于海森堡测不准原理,第三方不可能在不知道测量基的情况下复制出状态相同的光子。因此在第三方监听的情况下,第三方有1/2的概率选错测量基,1/2的概率由于测量使得光子自旋变化,这样就使得Bob收到的光子有1/4的概率与Alice发出时的状态不同。这为检测第三方监听提供了依据,但必须牺牲一部分交换结果来确认双方的结果是否相同才行。同时,若是第三方持续监听,将使得交换信道不可用。 从实现角度,由于光子的自旋即偏振,通过单光子发射器 发生的单光子通过偏振片即可生成垂直、水平、+45°或-45°的偏振态。 BB84协议 Alice发送需要交换的密钥长度给Bob Alice发送一组特定自旋的光子给Bob Bob选择随机测量基进行测量这组光子 Bob发送选择的测量基序列 Alice将收到的测量基序列与正确测量基序列比较,将结果序列告知Bob 将结果序列为1的位上的测量结果作为本轮交换得到的密钥比特 重复几轮可以得到一个密钥序列...

March 9, 2021 · 2 min · γ

Minecraft有关的随机数生成器攻击

由于Minecraft的自由度,使得玩家能够获取足够数量的随机数迭代数据,并通过密码学分析与逆向分析来深入挖掘游戏中使用的LCG机制,并通过游戏内的事件来操控目标随机数出现在想要的位置。 SEED 对地形种子生成器的攻击 WorldSeed 地形种子在游戏中作为生成地图以及结构等事件时的初始随机变量 通过获取对应的结构进行多次优化筛选最后遍历得到地形种子 涉及方法,对地形生成器的逆向与对搜索算法的优化 应用: SeedCracker 获取远程服务器上的地图种子 https://github.com/KaptainWutax/SeedCracker SeedFinder 计算寻找包含四联女巫小屋的地图种子(旧) https://github.com/egut/SciCraftSeedFinder WitchHutFinder 计算寻找包含四联女巫小屋的地图种子 https://github.com/hube12/WitchHutFinder SlimeFinder 寻找大面积史莱姆区块挂机点 Admist 通过种子计算对应结构预览地图 https://github.com/toolbox4minecraft/amidst …. 一些工具代码:https://github.com/hube12/MinecraftSeedCrackingC RNG 对游戏中随机数生成器的攻击 世界随机数(World.rand)在游戏中用来控制一些随机事件的产生,例如:打雷,刷怪,时运掉落,生物属性 而产生随机数的rand.nextInt()方法实际上是一个基于LCG(线性同余法) 的伪随机数生成器,因此只要获取了足够的迭代结果,即可通过LCG攻击反推出随机数生成器的SEED,从而预知RAND的随机结果,从而从过控制迭代次数得到目标随机数,即新版(RNGRandom Number Generator)技术的原理 Matthew的Paper: https://docs.google.com/document/d/1stTJAjLmCXtqctdFOpuv4lylegcmfO8mFrptFtwqb78/edit Matthew的频道: https://www.youtube.com/channel/UCB4XuRBJZBOpnoJSWekMohw/ 附魔使用了由seed取高16位得到的单独xpSeed,通过16个等级附魔预览结果即可暴力穷举出XPSEED,即得到SEED的高位部分,通过两次XPSEED结果可穷举出剩下的低16位部分,以知扔物品时玩家SEED会根据特定算法进行迭代,因此得到玩家SEED后即可通过扔物品控制迭代次数产生想要的目标随机数(即控制附魔结果) Earthcomputer的RNG附魔计算器:https://github.com/Earthcomputer/EnchantmentCracker 通过完整的RNG技术的几乎可以操纵Minecraft中的所有随机事件 如 ​ 敌意生物生成 BV1Mp411Z7s9 ( https://youtu.be/GdgnFrZOIX0) ​ 铁傀儡生成 BV1Fp411o7Lp ( https://youtu.be/4n4sayGe6ko) ​ 闪电生成 BV1bs411H7Bm ( https://youtu.be/CgDD9exV6eI) 等等 同时,通用RNG技术以基本原理分为两种,旧版的通过80*80的区块加载来重置随机数种子达到操控随机数的目的,在1.13以后失效,新版的RNG技术则以筛选后穷举出随机数种子为目标,并通过有限次操作来迭代随机数达到操控随机数的目的,适用性更广泛。 其中,RNG技术最耀眼的应用当数在1.8生存获取基岩的技术中控制世界装饰器随机数的应用 EDD证明通过世界装饰机制与活塞机制组合下,理论可在生存中通过建设复杂的机构获取掉落的基岩物品,但由于末地柱子生成位置的随机性,若不能控制或预测末地柱生成的位置,成功几率几乎为零。 而有了RNG技术,通过对随机数的控制,控制了世界装饰器的随机行为,补上了最后的一环,使得不可能变为可能。 原版获取基岩物品 BV13A411h7uy 或 https://youtu.be/tC4YEm6-gmE 基岩物品的获取不是结束,终末只是个开始,玩家对Minecraft机制的挖掘不会终止,不只是对这个自由世界的探索,更是对自身无限可能的发现。 [SB Mojang] 参考: 攻击线性同余生成器(LCG) 随机数控制的探究和破解-异形龙虾...

March 15, 2020 · 1 min · γ