假设我的输入看起来像这样: 鉴于我生成了一个随机数 [0,1),是否有 O(1) 算法可用于查找此数组的哪个索引“匹配”该概率? 我在 O(N) 中做的方式是做类似的事情: 我相信 O(N) 算法正在做我想做的事,但不确定是否有更快的方法? ...
假设我的输入看起来像这样: 鉴于我生成了一个随机数 [0,1),是否有 O(1) 算法可用于查找此数组的哪个索引“匹配”该概率? 我在 O(N) 中做的方式是做类似的事情: 我相信 O(N) 算法正在做我想做的事,但不确定是否有更快的方法? ...
我需要在恒定时间内获取列表中字符串的 position, 但没有找到任何这样的 Java 实现。 考虑到当前计算机 memory 的大小,也许没有必要这样做;-) LinkedHashMap 很有趣,但不维护 position。(参考) 有什么线索吗? ...
在这个网站: http://elijahcaine.me/remote-timing-attacks/作者很好地描述了什么是恒定时间攻击以及如何防范此类漏洞。 但是在作者所做的代码中: 我不明白为什么我们必须添加这一行才能使恒定时间攻击成功: 在网站上,作者说: 它夸大了评估 is_equal f ...
从程序的运行时间来看,包括对可变长度字符串的hash()操作,我觉得可能是hash() function 对不同长度的字符串进行操作需要常数时间。 为了验证我的假设,我制定了以下策略 - 创建长度为 k 的字符串 Hash 字符串并记录hash()操作时间t 对于从 0 到 100,00 变化的 ...
在一个用 python 编写的机器学习项目中,我需要一个像collections.deque这样的高效循环缓冲区,但可以恒定时间访问像numpy.array这样的任何元素。 问题是双端队列显然是一个链表。 在 python 库中是否有一些我不知道的关于这个用例的有效的东西? 在我的用例中,我可以简单 ...
有一个很好的解决方案: 使用 itertools 的格雷码顺序的笛卡尔积? ,有没有办法在这个解决方案中添加一些简单的东西来报告在格雷码顺序中从一个元素到笛卡尔积的下一个元素发生变化的集合(它的索引)? 也就是说,一个gray_code_product_with_change(['a','b', ...
我正在尝试运行过去能够运行的脚本。 它因错误而停止: 我最近删除了python 3.6并安装了python ActiveState: 到目前为止我尝试过的事情: 重新安装加密 重新安装密码,但出现错误: 任何帮助将非常感激。 我是python的新手,但我很 ...
这个问题基本上说明了一切。 假设我有一个(排序的)列表,可以包含 1K 到 1M 的任何项目。 我有一个starting index和一个ending index 。 如果我使用ArrayList.sublist(start, end)方法,时间复杂度是 O(n) 还是 O(1)? 我确实在这里检查 ...
准备采访,我遇到了一些让我质疑我对大O常数时间算法的理解的东西。 关于LeetCode的问题要求创建LFU缓存问题的解决方案。 有3种方法可以实现: 构造函数 - 输入:int容量 get - 输入:int key - 输出:int set - 输入:int key ...
我正在编写一个ProtectedPtr类,该类使用Windows Crypto API保护内存中的对象,并且在创建通用常量时间比较函数时遇到了问题。 我当前的代码: getEncryptedData函数: 问题是强制转换为字节*。 当将此类与字符串一起使用时,我的编译器会抱怨 ...
这个问题让我深感困惑: 函数G(m)定义如下: a)如果m <= 100,则G(m)= G(G(m + 11)) b)如果m> 100,则G(m)= m – 10 根据上述问题,我如何设计一个计算G(m)的恒定时间算法? ...
为了比较两个字符串,我目前使用strcmp或其变体之一。 但是,由于如果更多字符匹配,strcmp将花费更长的时间,因此它很容易受到定时攻击。 Windows的标准库中是否有固定时间的字符串比较功能? ...
我目前正在研究一种算法的实现,我想证明该算法即使有很多元素也可以恒定时间工作。 不幸的是,我需要一个存储元素的数据结构。 当元素的数量非常高,但对于我的算法而言并非不合理时,std :: vector和std :: valarray都不会在恒定时间内访问任意元素, 如该图所示 。 ...
这是Nifi ExecuteScript中导入模块的后续操作 我是python和nifi的新手。 我试图在ExecuteScript处理器中执行我的python脚本。 我要访问服务器。 所以我用了paramiko客户。 但是,当我运行处理器时,它在session.write() ...
我需要在不使用 Java.Util 的 PriorityQueue 形式的情况下实现自定义优先级队列...我有三个基本方法:插入、删除和清除。 所有操作必须在恒定时间 O (log n) 内完成。 我怎样才能做到这一点? 我应该为这些操作使用什么算法? 最后,我应该使用什么类型的容器来保存通用值? ...
我想将一个加密函数从C移植到Java。 该函数必须在恒定时间内运行,因此不允许使用条件分支 (并且不允许基于x的表查找 )。 原始的C代码是: 因此,如果'x == 7','result'设置为1,否则设置为0。 然后将'result'变量用于进一步的计算。 我现在正在寻 ...
我有一段时间试图提出一个不违反C / C ++标准的恒定时间旋转。 问题是边缘/角落情况,其中操作在算法中被调出并且那些算法不能被改变。 例如,以下内容来自Crypto ++并在GCC ubsan下执行测试工具(即g++ fsanitize=undefined ): $ ./crypt ...
HashMap具有恒定的访问时间,但不允许重复。 ArrayList允许重复但没有固定的访问时间。 java中是否有允许恒定访问时间并允许重复的数据结构? 我知道我可以制作自己的HashMap允许重复,但我想使用已经存在的数据结构。 先感谢您。 ...
上下文 OpenSSL中的函数 BN_consttime_swap是一件美丽的事情。 在此片段中, condition已计算为0或(BN_ULONG)-1 : 目的是为了确保更高级别的bignum操作需要恒定的时间,这个功能要么交换两个bignum,要么在恒定时间内将它们留在原位 ...
我正在使用一些bigint公共密钥密码代码。 使用按位屏蔽以确保计算时序和访问的存储器地址与数据值无关是否安全? 这种技术是否容易受到基于指令时序,功率,RF发射或我不知道的其他因素的边信道攻击? (作为参考,我知道诸如RSA盲处理,EC Montgomery阶梯,高速缓存刷新之类的技 ...