Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
55777d4
Update issue templates
alxmcs Jan 17, 2024
0e254a1
Update README.md
alxmcs Jan 17, 2024
64bf457
Add files via upload
alxmcs Jan 23, 2024
ae14e11
Update ISB_Lab4.ipynb
alxmcs Jan 23, 2024
3858cc1
Update ISB_Lab4.ipynb
alxmcs Jan 23, 2024
5bbfda6
Update ISB_Lab4.ipynb
alxmcs Jan 23, 2024
98c2b27
Update ISB_Lab3.ipynb
alxmcs Jan 23, 2024
0ea293b
Update ISB_Lab3.ipynb
alxmcs Jan 23, 2024
db38631
Update README.md
Daria-creator-lab Feb 12, 2024
0f1734d
Update README.md
Daria-creator-lab Feb 12, 2024
8f74c55
Update README.md
Daria-creator-lab Feb 12, 2024
0524e0a
Update README.md
Daria-creator-lab Feb 12, 2024
2032bb3
begin_lab3
May 17, 2024
469cc21
begin
May 19, 2024
e6f33c3
add_assymetric_class
May 19, 2024
bd87145
add_Cryptosystem
May 20, 2024
ee9852c
add_decrypt_sym_key
May 20, 2024
8001ccc
add_class_FileHelper
May 20, 2024
78de27a
fix_problem_and_add_new_function_and_main
May 20, 2024
eb38695
complete_no_pep
May 21, 2024
b497936
fix_full_pep
May 21, 2024
44e5e5e
added paths from the user
May 21, 2024
e1eb28c
add_gitignore
May 21, 2024
38351e0
add_doc_string_class
May 22, 2024
24f1e1e
Merge pull request #209 from Drowchik/lab3-var3
alxmcs May 24, 2024
0c51a4d
Revert "6212 Сергеев Д.А. Лаб.3 Вар.3"
alxmcs May 24, 2024
daba6ab
Merge pull request #221 from itsecd/revert-209-lab3-var3
alxmcs May 24, 2024
b8ab7f1
Add files via upload
ladyitsecurity Mar 4, 2025
3fd9e32
старт после сноса ветки
IMPULSE-LAB-CRYPTO Mar 4, 2025
0ae7e21
Merge branch 'itsecd:main' into lab2-var7
IMPULSE-LAB-CRYPTO Mar 4, 2025
e3b0666
Добавлен частотный побитовый тест
IMPULSE-LAB-CRYPTO Mar 4, 2025
2b91338
Добавлен тест на одинаковые подряд идущие биты
IMPULSE-LAB-CRYPTO Mar 4, 2025
0f3c60f
Merge remote-tracking branch 'origin/lab2-var7' into lab2-var7
IMPULSE-LAB-CRYPTO Mar 4, 2025
52529ac
Добавление последнего теста на самую длинную последовательность едини…
IMPULSE-LAB-CRYPTO Mar 5, 2025
9378800
Проверка на калькуляторе
IMPULSE-LAB-CRYPTO Mar 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Вопрос по лабораторной
about: Этот шаблон предназначен для того, чтобы студенты могли задать вопрос по лабораторной
title: Вопрос по лабораторной
labels: ''
assignees: alxmcs

---

**Меня зовут:**
Укажите свои ФИО

**Я из группы:**
Укажите номер группы

**У меня вопрос по лабе:**
Укажите номер и название лабораторной, по которой появился вопрос.

**Мой вопрос:**
Максимально подробно опишите, что вы хотите узнать/что у вас не получается/что у вас не работает. При необходимости, добавьте примеры кода. Примеры кода должны быть оформлены с использованием md разметки, чтобы их можно было удобно воспринимать:

```py
if __name__ == "__main__":
print('Hello, world!')
```

**Дополнительная информация**
Опишите тут все, что не попадает под перечисленные ранее категории (если в том есть необходимость).
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,7 @@
* через десктопный клиент, типа [такого](https://desktop.github.com/).

Если вы столкнулись с непреодолимыми трудностями в ходе выполнения лабораторной работы, вы можете задать вопрос в:
* в виде [ишью](https://github.com/itsecd/isb/issues/new/choose) в этом репозитории,
* в разделе [Q&A](https://github.com/itsecd/isb/discussions/categories/q-a) дискуссий в этом репозитории,
* дискорд-канале, посвященном предмету,
* телеграм-чате вашего курса.
Binary file modified docs/ISB_Lab1.pdf
Binary file not shown.
5 changes: 3 additions & 2 deletions docs/ISB_Lab3.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@
"*4) путь, по которому сохранить расшифрованный текстовый файл.* \n",
"\n",
"3.1. Расшифровать симметричный ключ. \n",
"3.2. Расшифровать текст симметричным алгоритмом и сохранить по указанному пути. "
"3.2. Расшифровать текст симметричным алгоритмом и сохранить по указанному пути. \n\n",
"Пользователь должен иметь возможность использовать перечисленные в задании режимы работы вашего софта в произвольном порядке и независимо друг от друга."
]
},
{
Expand Down Expand Up @@ -442,4 +443,4 @@
]
}
]
}
}
60 changes: 43 additions & 17 deletions docs/ISB_Lab4.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,37 @@
"cell_type": "markdown",
"source": [
"##Задание \n",
"Реализовать приложение (можно консольное), которео будет выполнять следующие сценарии работы:\n",
"\n",
"1. Выяснить [БИН](https://www.banki.ru/wikibank/bankovskiy_identifikatsionnyiy_nomer/) код карты при помощи дополнительной информации о карте,\n",
"2. Написать софт на `python`(хотя, потенциально, можно и на любом другом языке), который подобрал бы оставшиеся цифры номера карты по ее хешу, с использованием библиотеки [multiprocessing](https://docs.python.org/3/library/multiprocessing.html). \n",
"3. Замерить время, потраченное на поиск коллизии при различном числа процессов в пуле, и визуализировать его средствами [matplotlib](https://matplotlib.org/) (или другой аналогичной библиотеки),\n",
"4. Написать собственную реализацию [алгоритма Луна](https://unece.org/fileadmin/DAM/trans/doc/2020/sc2/ECE-TRANS-SC.2-EG_PIRRS-2020-4r.pdf) и выяснить, является ли полученный номер карты корректным."
"###1. Подобрать номер карты по ее хешу с использованием вспомогательной информации\n",
"*Входные параметры:* \n",
"*1) хеш номера банковской карты,* \n",
"*2) последние 4 цифры карты,* \n",
"*3) [БИН](https://www.banki.ru/wikibank/bankovskiy_identifikatsionnyiy_nomer/) карты (выясненный вами при помощи вспомогательной информации о банке-эмитенте и типе карты).* \n\n",

"1.1. Определить доступное на вашем железе количество процессов. \n",
"1.2. Запустить подбор номера карты по ее хешу с использоватнием библиотеки [multiprocessing](https://docs.python.org/3/library/multiprocessing.html) на оптимальном числе процессов. \n",
"1.3. Сериализовать подобранный номер карты в файл общеиспользуемого обменного формата. \n\n",

"###2. Проверить корректность номера карты при помощи алгоритма Луна\n",
"*Входные параметры:* \n",
"*1) номер банковской карты.* \n\n",

"2.1. Написать собственную реализацию [алгоритма Луна](https://unece.org/fileadmin/DAM/trans/doc/2020/sc2/ECE-TRANS-SC.2-EG_PIRRS-2020-4r.pdf). \n",
"2.2. Проверить номер карты на корректность (все номера банковских карт в условии лабораторной сознательно созданы некорректными). \n",
"2.3. Продемонстрировать результат работы алгоритма пользователю. \n\n",

"###3. Замерить время для поиска коллизии хеша при различном числе процессов\n",
"*Входные параметры:* \n",
"*1) хеш номера банковской карты,* \n",
"*2) последние 4 цифры карты,* \n",
"*3) [БИН](https://www.banki.ru/wikibank/bankovskiy_identifikatsionnyiy_nomer/) карты (выясненный вами при помощи вспомогательной информации о банке-эмитенте и типе карты).* \n\n",

"3.1. Выполнить подбор номера карты по ее хешу с использоватнием библиотеки [multiprocessing](https://docs.python.org/3/library/multiprocessing.html) на различном числе процессов - от `1` до `1.5*<число ядер вашего железа>`. \n",
"3.2. Визуализировать зависимость времени поиска коллизии от числа процессов при помощи библиотеки [matplotlib](https://matplotlib.org/) (или другой аналогичной библиотеки). \n",
"3.3. На графике отметить точку глобального минимума полученной зависимости. \n\n",

"Как и в предыдущей лабораторной работе, пользователь должен иметь возможность выбирать произвольный режим работы софта при его запуске."
],
"metadata": {
"id": "hN42dL5aoB9U"
Expand All @@ -52,7 +78,7 @@
"cell_type": "markdown",
"source": [
"## Работа с библиотекой multiprocessing\n",
"В данном разделе представлены примеры работы с библиотекой [multiprocessing](https://docs.python.org/3/library/multiprocessing.html), которые могут вам пригодиться при выполнении данной лабораторной работы. \n",
"В данном разделе представлены примеры работы с библиотекой [multiprocessing](https://docs.python.org/3/library/multiprocessing.html), которые могут вам пригодиться при выполнении данной лабораторной работы.\n",
"С данной библиотекой вы сталкивались во время курса \"Прикладное программирование\"."
],
"metadata": {
Expand All @@ -74,7 +100,7 @@
"id": "MHHhGXvu4tzW",
"outputId": "584beec4-46f6-40aa-be64-03cf1a9de7f9"
},
"execution_count": 5,
"execution_count": null,
"outputs": [
{
"output_type": "stream",
Expand Down Expand Up @@ -110,7 +136,7 @@
"id": "I4dORTD75OP0",
"outputId": "296ea1bb-eb87-475d-a8c7-344cb9633086"
},
"execution_count": 23,
"execution_count": null,
"outputs": [
{
"output_type": "stream",
Expand Down Expand Up @@ -146,7 +172,7 @@
"base_uri": "https://localhost:8080/"
}
},
"execution_count": 3,
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
Expand Down Expand Up @@ -211,7 +237,7 @@
"cell_type": "markdown",
"source": [
"## Работа с библиотекой matplotlib\n",
"В данном разделе представлены примеры работы с библиотекой [matplotlib](https://matplotlib.org/), которые могут вам пригодиться при выполнении данной лабораторной работы. \n",
"В данном разделе представлены примеры работы с библиотекой [multiprocessing](https://docs.python.org/3/library/multiprocessing.html), которые могут вам пригодиться при выполнении данной лабораторной работы.\n",
"С данной библиотекой вы сталкивались во время курса \"Прикладное программирование\"."
],
"metadata": {
Expand All @@ -231,7 +257,7 @@
"metadata": {
"id": "GiPjs-XD-b8J"
},
"execution_count": 29,
"execution_count": null,
"outputs": []
},
{
Expand All @@ -243,7 +269,7 @@
"plt.ylabel('y')\n",
"plt.xlabel('x')\n",
"plt.title('y=sinc(x)')\n",
"plt.plot(x,y1, color='navy', linestyle = '--', marker='x', linewidth=1, markersize=4 ) \n",
"plt.plot(x,y1, color='navy', linestyle = '--', marker='x', linewidth=1, markersize=4 )\n",
"plt.show()"
],
"metadata": {
Expand All @@ -254,7 +280,7 @@
"id": "ZLDUnQK4ACfJ",
"outputId": "e9e7747b-75b8-46a8-db97-1d94413a912c"
},
"execution_count": 35,
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
Expand Down Expand Up @@ -293,7 +319,7 @@
"id": "zMLr7iDC-SZx",
"outputId": "edd8f3e7-a24a-4852-e407-ac2486fb2269"
},
"execution_count": 32,
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
Expand All @@ -316,7 +342,7 @@
"plt.ylabel('y')\n",
"plt.xlabel('x')\n",
"plt.title('y=sinc(x)')\n",
"plt.bar(x[90:111],y1[90:111], color='gold', width = 0.05) \n",
"plt.bar(x[90:111],y1[90:111], color='gold', width = 0.05)\n",
"plt.show()"
],
"metadata": {
Expand All @@ -327,7 +353,7 @@
"id": "d7XUroox-zXC",
"outputId": "e71b8d19-5654-4b12-e453-a423b79b18d4"
},
"execution_count": 36,
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
Expand Down Expand Up @@ -385,9 +411,9 @@
"\n",
"*Ремарки :*\n",
"* Номер карты хешируется в виде строки из 16 символов без пробелов.\n",
"* Все \"банковские карты\" в задании \"выпущены в России\". \n",
"* Все \"банковские карты\" в задании \"выпущены в России\".\n",
"* Если сервис выдает вам несколько вариаций БИН-кодов, вам придется перебирать их все.\n",
"* Чтобы облегчить вам жизнь, хеши приведены без [соли](https://auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/). \n",
"* Чтобы облегчить вам жизнь, хеши приведены без [соли](https://auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/).\n",
"* Также в вариантах приведены последние 4 символа карты, чтобы замер времени подбора символов карты при различных параметрах пула процессов не занял у вас всю оставшуюся жизнь."
],
"metadata": {
Expand Down
2 changes: 1 addition & 1 deletion lab_1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@
Подразумевается, что ключ шифрования для задания 1 доступен для редактирования пользователям вашего софта.
Поощряется применение практик построения приложения, полученных в предыдущем семестре в рамках курса "Прикладное программирование".

Варианты заданий и теоретическая информация приведены в [методичке](https://github.com/alxmcs/isb-task/blob/main/docs/ISB_Lab1.pdf).
Варианты заданий и теоретическая информация приведены в [методичке](https://github.com/itsecd/isb/blob/main/docs/ISB_Lab1.pdf).
2 changes: 1 addition & 1 deletion lab_2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@
- Рассчитанные результаты тестов и полученные значения;
* Выводы по результатам тестирования.

Теоретическая информация приведена в [методичке](https://github.com/alxmcs/isb-task/blob/main/docs/ISB_Lab2.pdf).
Теоретическая информация приведена в [методичке](https://github.com/itsecd/isb/blob/main/docs/ISB_Lab2.pdf).
1 change: 1 addition & 0 deletions lab_2/Task_1/Random_seq_cpp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10010001001110011000110000110110101101010101010110100100011000010001100100101110000011010101100001101111101100100000101111000100
1 change: 1 addition & 0 deletions lab_2/Task_1/Random_seq_java.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
00010010001011011101000000000011011000010000011000101100101101110111110010010101110010000111011000110011101011111010011001110111
20 changes: 20 additions & 0 deletions lab_2/Task_1/main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>

int main() {
//Запускать с GDB online debugger
// Инициализация генератора случайных чисел. Зависит от времени с 1970 года
std::srand(std::time(0));
std::ofstream outfile("Random_seq_cpp.txt");

for (int i = 0; i < 128; ++i) {
int bit = std::rand() % 2;
outfile << bit;
}

outfile.close();
std::cout << "save to Random_seq_cpp.txt" << std::endl;
return 0;
}
18 changes: 18 additions & 0 deletions lab_2/Task_1/main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

class RandomGenerator {
public static void main(String[] args) {
Random rand = new Random();
try (FileWriter writer = new FileWriter("Random_seq_java.txt")) {
for (int i = 0; i < 128; i++) {
int bit = rand.nextInt(2); //nextInt(2) - от 0 до 2
writer.write(Integer.toString(bit));
}
System.out.println("save to Random_seq_java.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Loading