首页 文章

密码分析中粒子群优化的速度是多少?

提问于
浏览
1

我正在尝试为密码分析本地搜索实现粒子群优化算法,以找到简单替换密码的密钥 .

我理解这种方法如何工作并实现了大部分算法的理论,但我无法弄清楚如何计算速度 .

粒子类:

public class Particle extends Alphabet {
    public Vector velocity = new Vector();
    public char[] pbest;

    public Particle() {
        this.Scramble();
    }

    public char[] getPosition() {
        return this.getAlphabet();
    }
}

群类:

public class ParticleSwarm {
    public List<Particle> swarm = new ArrayList<>();
    private Fitness fitness = new Fitness();

    public void randomSwarm(int swarmSize) {
        for(int i = 0; i < swarmSize; i++) {
            swarm.add(new Particle());
        }
    }

    public Particle getBestParticle() {
        Particle swarmBest = new Particle();
        double bestScore = 0;
        for(int i = 0; i < swarm.size(); i++) {
            double newScore = fitness.score(swarm.get(i).getPosition());
            if(newScore >= bestScore) {
                bestScore = newScore;
                swarmBest = swarm.get(i);
            }
        }
        return swarmBest;
    }
}

粒子是我为另一种算法制作的字母表类的扩展,实质上是26个字母的字母,可以加扰 . 粒子的“位置”(据我所知,它只是它的字母表,或者它的一些数字表示) .

群体类是非常自我解释的,但包括一个健身类,它对得分为0到1(1为最佳)的粒子进行评分,表示该密钥产生的英文文本量 .

我遇到了这个算法的实现(虽然没有代码)找到vigenere密码的关键,它建议这些步骤:

提出的查找实际密钥的算法

  • PSO搜索算法参数的初始化

PSO参数在第一步中设置 . 这些参数包括粒子数(Np),键的大小(Nd),最大迭代次数(Nt),自信因子(C1),Swarm置信因子(C2)和惯性权重(w) .

  • 离散鸟类或种群的初始化

a)对于vigenere密码的密码分析:通过随机选择大小为Nd的排列来确定粒子的初始位置,从0到25的整数随机均匀地采样.b)使用以下方法初始化每个粒子的速度:

vi = vmin+(vmax - vmin) × rand

其中:vi是粒子的速度i vmax是最大速度,vmin是最小速度,rand是0到1之间的随机数 .

  • 列出项目

计算每个粒子的适应度函数值

a)使用粒子的位置作为关键来解密密文 . b)找到在步骤3(a)中获得的文本的适应度函数值 .

  • 更新粒子的速度和位置

如步骤3中所讨论的,计算每个粒子的适应度函数值 .

我似乎无法将公式粘贴到此处,但可以在第426页上看到:http://www.enggjournals.com/ijcse/doc/IJCSE13-05-05-064.pdf

1 回答

  • 0

    对于将来看这个的人来说,这就是我最终做的事情:

    由于单字母替换密码的密钥必须包含所有26个字母且不能重复,因此速度很难正确实现 . 相反,(这是否是最好的解决方案是一个不同的故事)我在0和1之间取了2个数字 - 一个群体的信心和一个自信 - 并且会迭代我通过数组中的每26个字母 . 如果随机数在0和群体置信度之间,那么它将是来自群体的最佳密钥的索引i处的字母 . 如果数量超过群体信心但小于或等于自信心,则会重复相同的过程,但使用个人最佳密钥 . 如果这些条件都不满足,则保留索引i处的字母,然后删除所有重复项 . 到目前为止,这已经给我带来了一些非常好的结果 .

相关问题