包含GPRS 加密算法版本 1 和 2的软件实现。 GPRS 加密算法 GEA-1 和 GEA-2研究论文的 密码分析提供了两种算法的完整描述,以及针对 GEA-1 的有效密码分析(允许将密钥强度弱化为 40 位而不是 64 位)。它还为 GEA-2 的密码分析提供了提示。 第二篇论文:o Shift or Not to Shift:了解 GEA-1 扩展了这种密码分析,并提供了对这种密码结构的更广泛的了解。 第三个:GPRS 密码 GEA-1 和 GEA-2的改进 密码分析增强了 GEA1 和 GEA2 的密码分析,例如减少内存需求 历史 GEA-1 和 GEA-2 都是基于 3 个、4 个 LFSR 和一个布尔函数的流密码。它们依赖于 64 位对称密钥,该密钥是在成功验证移动用户身份后建立的。它们可用于保护 GPRS 和 EDGE 连接,具体取决于移动运营商在其SGSN中所做的配置。 它们最初是在 90 年代与 GPRS 系统一起设计的。从密码分析论文来看,GEA-1 似乎被故意削弱了;这看起来与 A5/2 相似,它是一种弱化的 GSM 加密算法。随着 3G 和 UMTS
2022-06-11 18:06:11 45KB 算法 rust
Fletcher 的校验和旨在提供与 CRC 几乎相同的错误校验能力,但软件实现速度更快。这不是加密安全校验和,它仅用于检查数据的完整性而不是真实性。 算法专家 该算法在软件中运行比大多数 CRC 更快。这是因为 CRC 算法最初设计为易于在硬件中实现,但不一定在软件中实现。Fletcher Checksum 专门设计用于在软件中实现。 算法缺点 此校验和算法确实无法0xFF 区分0x00. 这意味着所有位设置为 1 的数据块将具有与所有位设置为 0 的数据块完全相同的校验和。这是因为算法使用补码数学。 Fletcher 的校验和在检测数据中的位错误方面不如具有良好选择多项式的 CRC 好。 如何使用 如果你有一个完整的数据块,你想得到校验和,你可以使用 calc 函数([ calc_fletcher16]、[ calc_fletcher32]、[ calc_fletcher64])在单个函数调用中获取校验和。 如果您以块的形式获取数据,则可以创建一个 [ Fletcher] 对象([ Fletcher16]、[ Fletcher32]、[ Fletcher64])来管理数据
2022-06-11 18:06:10 7KB 算法 rust
受siggraph.org 配方启发的 Huffman 编码算法的 Rust 实现 此概念验证版本支持 4 个字母:具有固定概率的 ABCD:
2022-06-11 18:06:10 4KB rust 算法
置换 Permutate 作为一个库和应用程序存在,用于使用原始的基于 Rust 的算法对通用向量或列表元组以及单个列表进行置换。它的开发主要是为了包含在 GNU Parallel 程序的 Rust 实现中,并在 Redox 的 Ion shell 中进行大括号扩展。 可以在 Docs.rs上找到源代码文档。 特征 bin-utils- 如果设置,则包含二进制实用程序。 默认设置,并且是bin和bench配置文件所必需的。 力学 排列通过递增索引计数器的向量并返回对基础数据的引用向量来工作(除非容器拥有这些值并且它们是副本)。为获得最佳使用效果,最好使用该方法执行一次迭代 next(),然后使用该方法进行后续迭代 next_with_buffer(),这样您就可以重新使用之前的向量分配。也可以通过该方法获取内部索引计数器的get_indexes()状态,并通过该方法设置状态 set_indexes。 例子 这些是有关如何使用该库来处理各种类型数据的示例列表。我们可能需要确保的唯一一件事是我们的字符串列表符合Vec<&[&str]>格式。
2022-06-11 18:06:09 26KB 算法 rust
设置 该项目使用rust(夜间频道)python和tensorflow. 安装rustup并启动rustup default nightly以启用夜间编译器。 安装tensorflow以启用 PUCT/AlphaZero/MuZero 策略。 更一般地说,用于pip install -r requirements.txt安装 python 依赖项(tensorflow被排除在列表之外tensorflow)tensorflow-gpu。 用法 Cargo是 Rust 项目经理。用于cargo run --release --bin 执行二进制文件。可用的二进制文件有: evaluate:评估两项突破政策 ui: 检查 alphazero 的交互式界面 generate: 自我游戏生成器 gym_server: openai 健身房的解耦游戏执行器 perf: 基准测试 配置文件 evaluate,generate并且ui都使用位于config/路径中的配置文件。它由--config选项选择。 训练 要执行训练,您需要同时启动 python 和 rust 二进制文件:
2022-06-11 18:06:09 10.36MB rust 算法
A Bitmapper's Companion - 关于位图绘制算法和数学的杂志/书,以及 Rust 中的代码示例
2022-06-11 18:06:08 9.86MB 算法 rust
后向链接 在 Rust 中实现的后向和前向链接算法。该示例解决了以下问题: 给定以下知识库: - 如果患者有咳嗽并且患者有感染,则患者有肺炎。 - 如果温度超过 38 度,则患者发烧。 - 如果患者生病至少 2 天并且患者发烧,则患者感染。 以及用户的一些回答: - 病人体温是多少?(答案是数字) - 病人病了多少天?(答案是数字) - 病人有咳嗽吗?(回答是/否) 判断患者是否得了肺炎。
2022-06-11 18:06:07 4KB 算法 rust
Chord 是一种用于点对点分布式哈希表的协议和算法。
2022-06-11 18:06:07 277KB 算法 rust
newton_rootfinder是一个科学计算锈箱,用于求解非线性方程组,这要归功于寻根方法。 箱子的焦点 这个 crate 实现了 Newton 方法和其他派生方法。 要查看此方法的可视化,您可以观看此视频:牛顿分形 这个 crate 提供了适用于 n 维问题的方法。 它提供了几个参数化选项和一个模拟日志来监控解析过程。 超出范围 此板条箱不提供非线性微分方程的求解器。 此板条箱不为一维问题提供特定的求解器。 文档 检查doc.rs上的文档
2022-06-11 18:06:06 127KB 算法 rust
使用对齐算法比较二进制文件。 这是什么 这是一个二进制差异的工具。 该工具能够并排显示两个二进制文件,以便相似的位置将位于两侧的相同位置,并填充一侧缺失的字节。为此,它使用rust-bio库中的生物信息学算法(通常用于 DNA 序列比对)。配置对话框使用cursive. 用法 在终端中执行biodiff file_a file_b,您应该会进入一个并排显示两个文件的十六进制视图。最初,文件将不会在每一侧没有间隙地对齐和显示。通过将光标和视图移动到左侧和右侧相似的位置并按F3(或3),它们可以对齐。这是在标准配置中逐块完成的,这意味着光标附近的字节首先对齐,另一个稍后显示。 也可以通过使用更改设置来进行全局和局部对齐(一次对整个文件)F4(请务必查阅有关参数的帮助)。通常,由于需要二次时间和空间,全局/局部对齐对于大于 64kB 的文件将无法正常工作。还有一种“带状”算法,速度更快,但准确性稍差。
2022-06-11 14:03:50 75KB rust 算法