Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие1 / Пример оформления элементов ПЗ.doc
Скачиваний:
15
Добавлен:
01.06.2015
Размер:
248.32 Кб
Скачать

Список использованных источников

1 Генерация случайных и псевдослучайных последовательностей [Электронный ресурс]. – URL: http://www.hardline.ru/selfteachers/Info/Security/Protection_to_information /6/Index5.htm (дата обращения: 14.05.2012).

2 Линейный конгруэнтный метод [Электронный ресурс]. – URL: http://ru.wikipedia.org /wiki/Линейный_конгруэнтный_метод (дата обращения: 1.04.2012).

3 Запечников С.В. Криптографические протоколы и их применение в финансовой и коммерческой деятельности : учебное пособие для вузов. – М.: Горячая линияТелеком, 2007. – 320 с.

4 Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы : учеб. пособие для физ.-мат. специальностей вузов / Под общ. ред. Н.И. Тихонова. – 2–е изд. – М.: Физматлит; Лаб. базовых знаний; СПб.: Нев. диалект, 2002. – 630 с.

5 Факультет менеджмента СПбГУ [Электронный ресурс]. − URL: http://www.som.pu.ru (дата обращения: 20.03.2012).

6 Blum L., Blum M., Shub M. A Simple Unpredictable Pseudo–Random Number Generator // SIAM Journal on Computing. – Volume 15. – 1986. – P. 364-383.

7 Шнайер Б. Прикладная криптография. – М.: Триумф, 2002. – 816 с.

Приложение a Исходный текст программной реализации алгоритма Блюма–Блюма–Шуба

# –*– coding: utf–8 –*–

import wx #WX

import random

import matplotlib as mpl

mpl.rcParams['font.family'] = 'fantasy'

mpl.rcParams['font.fantasy'] = 'Verdana, Arial'

import matplotlib.pyplot as plt

import time

import os

import glob

sampleList=list

razmY=400

razmX=razmY*1.67 #размер окна

def ProstChisl(self):

n=10000

a = range(n+1)

a[1] = 0

lst = []

i = 2

while i <= n:

if ((a[i] != 0 )&( a[i]%4==3)):

lst.append(str(a[i]))

for j in xrange(i, n+1, i):

a[j] = 0

i += 1

return lst

class MyFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, –1, u"Сравнение Алгоритма Блюма–Блюма–Шуба и Линейного Конгруэнтного Метода", pos=((wx.ScreenDC().GetSize().x–razmX)/2,(wx.ScreenDC().GetSize().y–razmY)/2), size=(razmX, razmY),style= wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)

panel = wx.Panel(self, –1)

panel.SetBackgroundColour("white")

tr=self.GetSize()

tr.x=razmX

tr.y=razmY

self.MinSize=tr

sb = wx.StaticBox(panel, label=u'Выберите параметры', pos=(5, 5), size=(420, 175))

sbs = wx.StaticBoxSizer(sb, orient=wx.VERTICAL)

self.srPT=1

self.srDMN=1

self.srBBSHLKM=1

self.nam=wx.StaticText(panel, –1, u"Начальное число Xo:", pos=(10, 25))

sbs.Add(self.nam)

self.ishData=wx.TextCtrl(panel, –1, value = "57", pos=(10, 45),size=wx.DefaultSize, style=wx.TE_LEFT | wx.TE_PROCESS_ENTER)

self.Bind(wx.EVT_TEXT, self.ErIsx, self.ishData)

wx.StaticText(panel, –1, u"Длина последовательности D:", pos=(10, 75))

self.dlinPosl=wx.TextCtrl(panel, –1, value = "200", pos=(10, 95),size=wx.DefaultSize, style=wx.TE_LEFT | wx.TE_PROCESS_ENTER)

self.Bind(wx.EVT_TEXT, self.ErPos, self.dlinPosl)

wx.StaticText(panel, –1, u"Модуль М=p*q :", pos=(10, 125))

self.sampleList=ProstChisl(self)

p=random.randint(1,len(self.sampleList))

q=random.randint(1,len(self.sampleList))

10

Соседние файлы в папке пособие1