├── AES.ipynb ├── A_Comparative_Analysis_of_Cryptographic_Algorithms.pdf ├── Caesar_cipher.ipynb ├── Crypto_report.xlsx ├── Cryptography_EDA.ipynb ├── DES.ipynb ├── DH.ipynb ├── Estimation.xlsx ├── One_time_pad.ipynb ├── README.md ├── RSA.ipynb ├── Report.txt └── Vigenere_cipher.ipynb /AES.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "6e7be000", 7 | "metadata": {}, 8 | "outputs": [ 9 | { 10 | "name": "stdout", 11 | "output_type": "stream", 12 | "text": [ 13 | "Requirement already satisfied: PyCryptor in c:\\users\\dheer\\anaconda3\\lib\\site-packages (0.1.3)\n", 14 | "Requirement already satisfied: pycryptodome in c:\\users\\dheer\\anaconda3\\lib\\site-packages (from PyCryptor) (3.17)\n", 15 | "Requirement already satisfied: rich in c:\\users\\dheer\\anaconda3\\lib\\site-packages (from PyCryptor) (13.3.3)\n", 16 | "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\users\\dheer\\anaconda3\\lib\\site-packages (from rich->PyCryptor) (2.14.0)\n", 17 | "Requirement already satisfied: markdown-it-py<3.0.0,>=2.2.0 in c:\\users\\dheer\\anaconda3\\lib\\site-packages (from rich->PyCryptor) (2.2.0)\n", 18 | "Requirement already satisfied: mdurl~=0.1 in c:\\users\\dheer\\anaconda3\\lib\\site-packages (from markdown-it-py<3.0.0,>=2.2.0->rich->PyCryptor) (0.1.2)\n" 19 | ] 20 | } 21 | ], 22 | "source": [ 23 | "!pip install PyCryptor" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 8, 29 | "id": "e959609e", 30 | "metadata": {}, 31 | "outputs": [ 32 | { 33 | "name": "stdout", 34 | "output_type": "stream", 35 | "text": [ 36 | "0.00\n", 37 | "0.00\n", 38 | "0.00\n", 39 | "0.00\n", 40 | "0.00\n", 41 | "0.00\n", 42 | "0.00\n", 43 | "0.00\n", 44 | "0.00\n", 45 | "9.36\n", 46 | "0.50\n", 47 | "0.57\n", 48 | "0.51\n", 49 | "1.13\n", 50 | "0.00\n", 51 | "0.00\n", 52 | "1.40\n", 53 | "0.00\n", 54 | "1.09\n", 55 | "0.00\n", 56 | "0.00\n", 57 | "1.10\n", 58 | "0.00\n", 59 | "1.11\n", 60 | "0.00\n", 61 | "0.00\n", 62 | "1.10\n", 63 | "1.06\n", 64 | "0.00\n", 65 | "0.00\n", 66 | "0.00\n", 67 | "0.00\n", 68 | "0.00\n", 69 | "0.00\n", 70 | "0.00\n", 71 | "0.00\n", 72 | "0.00\n", 73 | "0.00\n", 74 | "0.00\n", 75 | "0.00\n", 76 | "0.00\n", 77 | "0.00\n", 78 | "0.00\n", 79 | "0.00\n", 80 | "0.00\n", 81 | "0.00\n", 82 | "0.00\n", 83 | "15.63\n", 84 | "0.00\n", 85 | "0.00\n", 86 | "0.00\n", 87 | "0.00\n", 88 | "0.00\n", 89 | "0.00\n", 90 | "0.00\n", 91 | "0.00\n", 92 | "0.00\n", 93 | "0.00\n", 94 | "0.00\n", 95 | "0.00\n", 96 | "0.00\n", 97 | "0.00\n", 98 | "0.00\n", 99 | "0.00\n", 100 | "15.70\n", 101 | "0.00\n", 102 | "0.00\n", 103 | "0.00\n", 104 | "0.00\n", 105 | "0.00\n", 106 | "0.00\n", 107 | "0.00\n", 108 | "0.00\n", 109 | "0.00\n", 110 | "0.00\n", 111 | "0.00\n", 112 | "0.00\n", 113 | "15.62\n", 114 | "0.00\n", 115 | "0.00\n", 116 | "0.00\n", 117 | "0.00\n", 118 | "0.00\n", 119 | "0.00\n", 120 | "0.00\n", 121 | "0.00\n", 122 | "15.62\n", 123 | "0.00\n", 124 | "0.00\n", 125 | "0.00\n", 126 | "6.59\n", 127 | "0.00\n", 128 | "0.00\n", 129 | "0.00\n", 130 | "0.00\n", 131 | "0.00\n", 132 | "0.00\n", 133 | "0.00\n", 134 | "0.00\n", 135 | "0.00\n", 136 | "15.71\n", 137 | "0.00\n", 138 | "0.00\n", 139 | "0.00\n", 140 | "0.00\n", 141 | "0.00\n", 142 | "0.00\n", 143 | "0.00\n", 144 | "15.62\n", 145 | "0.00\n", 146 | "0.00\n", 147 | "0.00\n", 148 | "0.00\n", 149 | "0.00\n", 150 | "0.00\n", 151 | "0.00\n", 152 | "15.55\n", 153 | "0.00\n", 154 | "0.00\n", 155 | "0.00\n", 156 | "0.00\n", 157 | "0.00\n", 158 | "0.00\n", 159 | "0.00\n", 160 | "15.71\n", 161 | "0.00\n", 162 | "0.00\n", 163 | "0.00\n", 164 | "15.62\n", 165 | "0.00\n", 166 | "0.00\n", 167 | "0.00\n", 168 | "0.00\n", 169 | "0.00\n", 170 | "15.61\n", 171 | "0.00\n", 172 | "0.00\n", 173 | "6.59\n", 174 | "0.00\n", 175 | "0.00\n", 176 | "0.00\n", 177 | "0.00\n", 178 | "0.00\n", 179 | "15.71\n", 180 | "0.00\n", 181 | "0.00\n", 182 | "0.00\n", 183 | "0.00\n", 184 | "0.00\n", 185 | "15.62\n", 186 | "0.00\n", 187 | "0.00\n", 188 | "15.55\n", 189 | "0.00\n", 190 | "0.00\n", 191 | "0.00\n", 192 | "0.00\n", 193 | "0.00\n", 194 | "15.66\n", 195 | "0.00\n", 196 | "0.00\n", 197 | "0.00\n", 198 | "0.00\n", 199 | "15.68\n", 200 | "0.00\n", 201 | "0.00\n", 202 | "0.00\n", 203 | "0.00\n", 204 | "15.62\n", 205 | "0.00\n", 206 | "6.51\n", 207 | "0.00\n", 208 | "0.00\n", 209 | "0.00\n", 210 | "0.00\n", 211 | "15.71\n", 212 | "0.00\n", 213 | "0.00\n", 214 | "0.00\n", 215 | "0.00\n", 216 | "15.62\n", 217 | "0.00\n", 218 | "0.00\n", 219 | "0.00\n", 220 | "0.00\n", 221 | "15.62\n", 222 | "0.00\n", 223 | "0.00\n", 224 | "0.00\n", 225 | "0.00\n", 226 | "15.61\n", 227 | "0.00\n", 228 | "0.00\n", 229 | "0.00\n", 230 | "15.63\n", 231 | "0.00\n", 232 | "0.00\n", 233 | "0.00\n", 234 | "0.00\n", 235 | "15.63\n", 236 | "6.60\n", 237 | "2.22\n", 238 | "0.00\n", 239 | "8.19\n", 240 | "2.02\n", 241 | "8.21\n", 242 | "12.34\n", 243 | "8.21\n", 244 | "0.00\n", 245 | "0.00\n", 246 | "12.35\n", 247 | "0.00\n", 248 | "8.06\n", 249 | "2.22\n", 250 | "0.00\n", 251 | "10.16\n", 252 | "0.00\n", 253 | "8.03\n", 254 | "2.24\n", 255 | "0.00\n", 256 | "10.38\n", 257 | "0.00\n", 258 | "8.21\n", 259 | "2.21\n", 260 | "9.19\n", 261 | "4.00\n", 262 | "4.10\n", 263 | "2.10\n", 264 | "8.10\n", 265 | "2.02\n", 266 | "0.00\n", 267 | "10.18\n", 268 | "0.00\n", 269 | "10.12\n", 270 | "0.00\n", 271 | "8.10\n", 272 | "5.67\n", 273 | "4.59\n", 274 | "2.09\n", 275 | "0.00\n", 276 | "10.19\n", 277 | "0.00\n", 278 | "10.11\n", 279 | "0.00\n", 280 | "10.17\n", 281 | "0.00\n", 282 | "8.10\n", 283 | "2.09\n", 284 | "8.14\n", 285 | "2.09\n", 286 | "8.11\n", 287 | "2.11\n", 288 | "8.03\n", 289 | "10.44\n", 290 | "0.00\n", 291 | "10.29\n", 292 | "0.00\n", 293 | "15.69\n", 294 | "0.00\n", 295 | "0.00\n", 296 | "15.64\n", 297 | "0.00\n", 298 | "0.00\n", 299 | "15.68\n", 300 | "0.00\n", 301 | "0.00\n", 302 | "15.62\n", 303 | "0.00\n", 304 | "0.00\n", 305 | "15.65\n", 306 | "0.00\n", 307 | "16.70\n", 308 | "4.33\n", 309 | "0.00\n", 310 | "15.71\n", 311 | "0.00\n", 312 | "0.00\n", 313 | "15.61\n", 314 | "0.00\n", 315 | "0.00\n", 316 | "15.62\n", 317 | "0.00\n", 318 | "15.63\n", 319 | "0.00\n", 320 | "0.00\n", 321 | "15.55\n", 322 | "0.00\n", 323 | "0.00\n", 324 | "15.62\n", 325 | "6.01\n", 326 | "0.00\n", 327 | "15.70\n", 328 | "0.00\n", 329 | "0.00\n", 330 | "15.63\n", 331 | "0.00\n", 332 | "15.62\n", 333 | "0.00\n", 334 | "0.00\n", 335 | "15.62\n", 336 | "0.00\n", 337 | "0.00\n", 338 | "15.64\n", 339 | "0.00\n", 340 | "15.61\n", 341 | "6.09\n", 342 | "0.00\n", 343 | "0.00\n", 344 | "15.71\n", 345 | "0.00\n", 346 | "15.54\n", 347 | "0.00\n", 348 | "0.00\n", 349 | "15.69\n", 350 | "0.00\n", 351 | "15.55\n", 352 | "0.00\n", 353 | "0.00\n", 354 | "15.63\n", 355 | "0.00\n", 356 | "15.70\n", 357 | "6.60\n", 358 | "12.69\n", 359 | "16.40\n", 360 | "3.18\n", 361 | "0.00\n", 362 | "15.72\n", 363 | "0.00\n", 364 | "18.59\n", 365 | "0.00\n", 366 | "15.71\n", 367 | "0.00\n", 368 | "0.00\n", 369 | "16.72\n", 370 | "11.18\n", 371 | "15.64\n", 372 | "0.00\n", 373 | "15.69\n", 374 | "0.00\n", 375 | "15.62\n", 376 | "0.00\n", 377 | "15.62\n", 378 | "0.00\n", 379 | "15.62\n", 380 | "0.00\n", 381 | "11.05\n", 382 | "0.00\n", 383 | "15.63\n", 384 | "0.00\n", 385 | "15.62\n", 386 | "19.28\n", 387 | "7.00\n", 388 | "7.00\n", 389 | "5.51\n", 390 | "16.24\n", 391 | "0.00\n", 392 | "13.02\n", 393 | "0.00\n", 394 | "15.63\n", 395 | "0.00\n", 396 | "15.62\n", 397 | "0.00\n", 398 | "23.18\n", 399 | "8.00\n", 400 | "8.00\n", 401 | "3.47\n", 402 | "0.00\n", 403 | "15.62\n", 404 | "10.51\n", 405 | "0.00\n", 406 | "15.63\n", 407 | "0.00\n", 408 | "15.62\n", 409 | "15.62\n", 410 | "0.00\n", 411 | "15.62\n", 412 | "0.00\n", 413 | "15.62\n", 414 | "0.00\n", 415 | "15.62\n", 416 | "6.51\n", 417 | "0.00\n", 418 | "15.63\n", 419 | "0.00\n", 420 | "15.63\n", 421 | "15.62\n", 422 | "0.00\n", 423 | "15.62\n", 424 | "0.00\n", 425 | "15.68\n", 426 | "15.63\n", 427 | "6.58\n", 428 | "0.00\n", 429 | "15.70\n", 430 | "0.00\n", 431 | "15.62\n", 432 | "15.56\n", 433 | "0.00\n", 434 | "15.62\n", 435 | "0.00\n", 436 | "15.62\n", 437 | "0.00\n", 438 | "15.62\n", 439 | "6.59\n", 440 | "0.00\n", 441 | "0.00\n", 442 | "15.62\n", 443 | "0.00\n", 444 | "15.62\n", 445 | "0.00\n", 446 | "15.63\n", 447 | "0.00\n", 448 | "15.61\n", 449 | "15.62\n", 450 | "8.95\n", 451 | "10.28\n", 452 | "8.12\n", 453 | "10.49\n", 454 | "8.20\n", 455 | "12.37\n", 456 | "10.34\n", 457 | "8.10\n", 458 | "8.24\n", 459 | "2.22\n", 460 | "10.45\n", 461 | "10.46\n", 462 | "10.38\n", 463 | "10.47\n", 464 | "8.13\n", 465 | "2.22\n", 466 | "2.37\n", 467 | "10.36\n", 468 | "10.46\n", 469 | "10.34\n", 470 | "10.45\n", 471 | "8.17\n", 472 | "10.47\n", 473 | "2.22\n", 474 | "10.39\n", 475 | "10.47\n", 476 | "18.45\n", 477 | "10.09\n", 478 | "0.00\n", 479 | "15.63\n", 480 | "15.71\n", 481 | "0.00\n", 482 | "15.63\n", 483 | "0.00\n", 484 | "0.00\n", 485 | "15.63\n", 486 | "0.00\n", 487 | "24.35\n", 488 | "11.24\n", 489 | "9.50\n", 490 | "10.19\n", 491 | "10.47\n", 492 | "10.35\n", 493 | "10.18\n", 494 | "8.25\n", 495 | "10.43\n", 496 | "12.40\n", 497 | "17.72\n", 498 | "10.18\n", 499 | "10.80\n", 500 | "9.64\n", 501 | "10.19\n", 502 | "10.18\n", 503 | "10.12\n", 504 | "10.19\n", 505 | "10.21\n", 506 | "10.18\n", 507 | "10.10\n", 508 | "10.18\n", 509 | "10.20\n", 510 | "10.17\n", 511 | "10.21\n", 512 | "10.18\n", 513 | "10.11\n", 514 | "10.18\n", 515 | "12.12\n", 516 | "20.66\n", 517 | "10.46\n", 518 | "10.47\n", 519 | "10.40\n", 520 | "10.36\n", 521 | "10.46\n", 522 | "10.23\n", 523 | "10.49\n", 524 | "10.49\n", 525 | "10.43\n", 526 | "10.35\n", 527 | "10.39\n", 528 | "18.61\n", 529 | "10.19\n", 530 | "12.51\n", 531 | "10.07\n", 532 | "10.37\n", 533 | "18.51\n", 534 | "10.08\n", 535 | "15.71\n" 536 | ] 537 | } 538 | ], 539 | "source": [ 540 | "import hashlib\n", 541 | "from Crypto import Random\n", 542 | "from Crypto.Cipher import AES\n", 543 | "from base64 import b64encode, b64decode \n", 544 | "import time\n", 545 | "import random\n", 546 | "import string\n", 547 | "str_list = []\n", 548 | "\n", 549 | "class AESCipher:\n", 550 | " def __init__(self,key):\n", 551 | " self.block_size = AES.block_size\n", 552 | " self.key = hashlib.sha256(key.encode()).digest()\n", 553 | "\n", 554 | " def add_padding(self,plain_text):\n", 555 | " bytes_to_pad = self.block_size - len(plain_text) % self.block_size\n", 556 | " ascii_string = chr(bytes_to_pad)\n", 557 | " padding_string = ascii_string * bytes_to_pad\n", 558 | " return plain_text + padding_string\n", 559 | " \n", 560 | " def remove_padding(self,txt):\n", 561 | " last_character = txt[len(txt) - 1:]\n", 562 | " return txt[:-ord(last_character)]\n", 563 | "\n", 564 | " def encrypt(self, plain_text):\n", 565 | " plain_text = self.add_padding(plain_text)\n", 566 | " iv = Random.new().read(self.block_size)\n", 567 | " cipher = AES.new(self.key, AES.MODE_CBC, iv)\n", 568 | " encrypted_text = cipher.encrypt(plain_text.encode())\n", 569 | " return b64encode(iv+encrypted_text).decode('utf-8')\n", 570 | "\n", 571 | "if __name__ == '__main__':\n", 572 | "\n", 573 | " key = 'uysdhfvuitgfgh'\n", 574 | " for length in range(5, 2501, 5):\n", 575 | " rand_string = ''.join(random.choices(string.ascii_uppercase, k=length))\n", 576 | " str_list.append(rand_string)\n", 577 | " start_time = time.time()\n", 578 | " for message in str_list:\n", 579 | " aes = AESCipher(key)\n", 580 | " encrypted = aes.encrypt(message)\n", 581 | " end_time = time.time()\n", 582 | " print(\"{:.2f}\".format((end_time - start_time)*1000))" 583 | ] 584 | }, 585 | { 586 | "cell_type": "code", 587 | "execution_count": null, 588 | "id": "536cd007", 589 | "metadata": {}, 590 | "outputs": [], 591 | "source": [] 592 | } 593 | ], 594 | "metadata": { 595 | "kernelspec": { 596 | "display_name": "Python 3 (ipykernel)", 597 | "language": "python", 598 | "name": "python3" 599 | }, 600 | "language_info": { 601 | "codemirror_mode": { 602 | "name": "ipython", 603 | "version": 3 604 | }, 605 | "file_extension": ".py", 606 | "mimetype": "text/x-python", 607 | "name": "python", 608 | "nbconvert_exporter": "python", 609 | "pygments_lexer": "ipython3", 610 | "version": "3.9.13" 611 | } 612 | }, 613 | "nbformat": 4, 614 | "nbformat_minor": 5 615 | } 616 | -------------------------------------------------------------------------------- /A_Comparative_Analysis_of_Cryptographic_Algorithms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dheeraj-02NK/Comparitive-Analysis-of-Cryptographic-Algorithm/e4bbf1dc78300133d25dc183e7dcd2790bca5507/A_Comparative_Analysis_of_Cryptographic_Algorithms.pdf -------------------------------------------------------------------------------- /Caesar_cipher.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "id": "7709195c", 7 | "metadata": { 8 | "scrolled": true 9 | }, 10 | "outputs": [ 11 | { 12 | "name": "stdout", 13 | "output_type": "stream", 14 | "text": [ 15 | "0.00\n", 16 | "0.00\n", 17 | "0.00\n", 18 | "0.00\n", 19 | "0.00\n", 20 | "0.00\n", 21 | "0.00\n", 22 | "0.00\n", 23 | "0.00\n", 24 | "0.00\n", 25 | "0.00\n", 26 | "0.00\n", 27 | "0.00\n", 28 | "0.00\n", 29 | "0.00\n", 30 | "0.00\n", 31 | "0.00\n", 32 | "0.00\n", 33 | "0.00\n", 34 | "0.00\n", 35 | "0.00\n", 36 | "0.00\n", 37 | "0.00\n", 38 | "0.00\n", 39 | "0.00\n", 40 | "0.00\n", 41 | "17.05\n", 42 | "0.00\n", 43 | "1.41\n", 44 | "0.00\n", 45 | "0.00\n", 46 | "1.06\n", 47 | "1.05\n", 48 | "0.00\n", 49 | "1.14\n", 50 | "1.10\n", 51 | "1.11\n", 52 | "1.10\n", 53 | "0.00\n", 54 | "1.09\n", 55 | "1.09\n", 56 | "1.10\n", 57 | "1.24\n", 58 | "1.11\n", 59 | "2.14\n", 60 | "1.23\n", 61 | "1.09\n", 62 | "1.23\n", 63 | "1.23\n", 64 | "1.24\n", 65 | "1.23\n", 66 | "1.35\n", 67 | "1.21\n", 68 | "2.30\n", 69 | "4.18\n", 70 | "0.00\n", 71 | "0.00\n", 72 | "0.00\n", 73 | "15.63\n", 74 | "1.00\n", 75 | "0.00\n", 76 | "0.00\n", 77 | "0.00\n", 78 | "0.00\n", 79 | "0.00\n", 80 | "0.00\n", 81 | "15.62\n", 82 | "0.00\n", 83 | "0.00\n", 84 | "0.00\n", 85 | "0.00\n", 86 | "0.00\n", 87 | "15.62\n", 88 | "0.00\n", 89 | "0.00\n", 90 | "0.00\n", 91 | "0.00\n", 92 | "15.62\n", 93 | "0.00\n", 94 | "0.00\n", 95 | "0.00\n", 96 | "15.62\n", 97 | "0.00\n", 98 | "0.00\n", 99 | "0.00\n", 100 | "15.62\n", 101 | "0.00\n", 102 | "0.00\n", 103 | "0.00\n", 104 | "15.62\n", 105 | "6.50\n", 106 | "0.00\n", 107 | "0.00\n", 108 | "15.62\n", 109 | "0.00\n", 110 | "0.00\n", 111 | "0.00\n", 112 | "15.62\n", 113 | "0.00\n", 114 | "15.62\n", 115 | "0.00\n", 116 | "0.00\n", 117 | "15.62\n", 118 | "0.00\n", 119 | "15.62\n", 120 | "0.00\n", 121 | "0.00\n", 122 | "22.13\n", 123 | "0.00\n", 124 | "15.63\n", 125 | "0.00\n", 126 | "15.62\n", 127 | "0.00\n", 128 | "15.62\n", 129 | "0.00\n", 130 | "15.70\n", 131 | "0.00\n", 132 | "15.62\n", 133 | "0.00\n", 134 | "15.63\n", 135 | "6.60\n", 136 | "10.19\n", 137 | "2.09\n", 138 | "10.20\n", 139 | "10.20\n", 140 | "10.20\n", 141 | "10.27\n", 142 | "10.18\n", 143 | "8.07\n", 144 | "8.02\n", 145 | "8.11\n", 146 | "10.22\n", 147 | "10.21\n", 148 | "10.07\n", 149 | "12.32\n", 150 | "8.11\n", 151 | "20.31\n", 152 | "10.12\n", 153 | "12.28\n", 154 | "10.24\n", 155 | "10.20\n", 156 | "10.23\n", 157 | "10.18\n", 158 | "10.20\n", 159 | "18.29\n", 160 | "12.28\n", 161 | "10.20\n", 162 | "10.19\n", 163 | "18.42\n", 164 | "12.27\n", 165 | "10.20\n", 166 | "18.19\n", 167 | "12.30\n", 168 | "10.18\n", 169 | "30.61\n", 170 | "8.11\n", 171 | "20.24\n", 172 | "12.11\n", 173 | "20.22\n", 174 | "10.17\n", 175 | "20.36\n", 176 | "18.25\n", 177 | "12.28\n", 178 | "20.27\n", 179 | "20.40\n", 180 | "30.41\n", 181 | "28.41\n", 182 | "12.27\n", 183 | "30.49\n", 184 | "20.18\n", 185 | "28.24\n", 186 | "22.34\n", 187 | "18.36\n", 188 | "20.33\n", 189 | "22.42\n", 190 | "20.28\n", 191 | "20.23\n", 192 | "20.23\n", 193 | "28.22\n", 194 | "15.70\n", 195 | "15.55\n", 196 | "31.25\n", 197 | "31.24\n", 198 | "15.71\n", 199 | "15.55\n", 200 | "31.34\n", 201 | "15.59\n", 202 | "23.80\n", 203 | "28.48\n", 204 | "22.51\n", 205 | "20.35\n", 206 | "20.32\n", 207 | "28.29\n", 208 | "22.42\n", 209 | "20.19\n", 210 | "28.48\n", 211 | "22.33\n", 212 | "28.38\n", 213 | "22.40\n", 214 | "30.59\n", 215 | "30.35\n", 216 | "20.43\n", 217 | "28.45\n", 218 | "32.42\n", 219 | "28.32\n", 220 | "22.42\n", 221 | "38.53\n", 222 | "22.48\n", 223 | "30.64\n", 224 | "30.49\n", 225 | "30.56\n", 226 | "40.62\n", 227 | "46.72\n", 228 | "16.68\n", 229 | "31.25\n", 230 | "42.84\n", 231 | "30.40\n", 232 | "30.45\n", 233 | "30.57\n", 234 | "40.64\n", 235 | "30.51\n", 236 | "32.60\n", 237 | "30.52\n", 238 | "30.60\n", 239 | "30.59\n", 240 | "30.77\n", 241 | "40.54\n", 242 | "38.45\n", 243 | "46.88\n", 244 | "33.57\n", 245 | "50.88\n", 246 | "31.25\n", 247 | "37.90\n", 248 | "46.88\n", 249 | "33.92\n", 250 | "50.52\n", 251 | "31.26\n", 252 | "37.32\n", 253 | "46.94\n", 254 | "31.18\n", 255 | "44.27\n", 256 | "40.74\n", 257 | "51.26\n", 258 | "48.49\n", 259 | "42.29\n", 260 | "40.49\n", 261 | "40.76\n", 262 | "40.62\n", 263 | "40.71\n", 264 | "38.56\n", 265 | "53.02\n", 266 | "50.65\n", 267 | "40.76\n", 268 | "40.73\n", 269 | "40.64\n", 270 | "50.80\n", 271 | "48.73\n", 272 | "53.21\n", 273 | "51.56\n", 274 | "48.57\n", 275 | "42.69\n", 276 | "60.92\n", 277 | "49.53\n", 278 | "46.86\n", 279 | "53.46\n", 280 | "46.88\n", 281 | "52.57\n", 282 | "50.86\n", 283 | "52.91\n", 284 | "50.95\n", 285 | "52.06\n", 286 | "49.96\n", 287 | "50.84\n", 288 | "48.64\n", 289 | "62.85\n", 290 | "50.80\n", 291 | "59.11\n", 292 | "50.73\n", 293 | "44.70\n", 294 | "49.97\n", 295 | "46.95\n", 296 | "55.01\n", 297 | "59.09\n", 298 | "60.65\n", 299 | "70.99\n", 300 | "56.10\n", 301 | "46.81\n", 302 | "70.39\n", 303 | "81.89\n", 304 | "61.05\n", 305 | "59.01\n", 306 | "53.62\n", 307 | "71.32\n", 308 | "70.84\n", 309 | "69.08\n", 310 | "62.51\n", 311 | "69.18\n", 312 | "68.90\n", 313 | "62.53\n", 314 | "60.27\n", 315 | "61.10\n", 316 | "71.05\n", 317 | "71.16\n", 318 | "61.22\n", 319 | "61.25\n", 320 | "59.27\n", 321 | "73.63\n", 322 | "61.25\n", 323 | "71.49\n", 324 | "71.86\n", 325 | "82.41\n", 326 | "62.42\n", 327 | "69.44\n", 328 | "59.07\n", 329 | "73.39\n", 330 | "71.40\n", 331 | "70.01\n", 332 | "70.89\n", 333 | "81.34\n", 334 | "73.34\n", 335 | "71.34\n", 336 | "79.54\n", 337 | "83.16\n", 338 | "81.89\n", 339 | "71.44\n", 340 | "70.98\n", 341 | "90.77\n", 342 | "71.27\n", 343 | "77.08\n", 344 | "75.48\n", 345 | "81.32\n", 346 | "81.35\n", 347 | "80.55\n", 348 | "91.89\n", 349 | "79.15\n", 350 | "86.70\n", 351 | "84.26\n", 352 | "93.75\n", 353 | "84.28\n", 354 | "100.35\n", 355 | "96.97\n", 356 | "87.80\n", 357 | "84.70\n", 358 | "85.64\n", 359 | "99.59\n", 360 | "84.06\n", 361 | "81.42\n", 362 | "109.55\n", 363 | "103.41\n", 364 | "81.18\n", 365 | "100.33\n", 366 | "100.41\n", 367 | "91.15\n", 368 | "100.39\n", 369 | "103.27\n", 370 | "89.17\n", 371 | "103.63\n", 372 | "101.96\n", 373 | "91.93\n", 374 | "99.56\n", 375 | "101.51\n", 376 | "91.59\n", 377 | "91.67\n", 378 | "93.85\n", 379 | "92.68\n", 380 | "101.69\n", 381 | "101.79\n", 382 | "91.55\n", 383 | "112.50\n", 384 | "92.32\n", 385 | "102.63\n", 386 | "111.60\n", 387 | "111.82\n", 388 | "91.89\n", 389 | "101.91\n", 390 | "109.79\n", 391 | "94.05\n", 392 | "130.99\n", 393 | "103.86\n", 394 | "101.76\n", 395 | "109.76\n", 396 | "104.02\n", 397 | "102.78\n", 398 | "101.68\n", 399 | "121.59\n", 400 | "111.74\n", 401 | "126.95\n", 402 | "115.86\n", 403 | "118.21\n", 404 | "124.04\n", 405 | "102.30\n", 406 | "103.97\n", 407 | "130.37\n", 408 | "123.78\n", 409 | "112.58\n", 410 | "134.38\n", 411 | "115.53\n", 412 | "121.84\n", 413 | "121.72\n", 414 | "111.88\n", 415 | "139.67\n", 416 | "110.50\n", 417 | "115.60\n", 418 | "115.97\n", 419 | "131.58\n", 420 | "122.38\n", 421 | "116.96\n", 422 | "124.41\n", 423 | "121.88\n", 424 | "119.88\n", 425 | "154.21\n", 426 | "130.64\n", 427 | "133.16\n", 428 | "120.43\n", 429 | "125.58\n", 430 | "137.35\n", 431 | "143.34\n", 432 | "130.37\n", 433 | "122.84\n", 434 | "141.65\n", 435 | "150.84\n", 436 | "165.75\n", 437 | "182.98\n", 438 | "193.29\n", 439 | "193.37\n", 440 | "193.63\n", 441 | "191.91\n", 442 | "184.27\n", 443 | "184.94\n", 444 | "189.17\n", 445 | "213.25\n", 446 | "211.71\n", 447 | "224.07\n", 448 | "257.64\n", 449 | "255.72\n", 450 | "244.84\n", 451 | "223.82\n", 452 | "223.83\n", 453 | "213.83\n", 454 | "221.74\n", 455 | "226.89\n", 456 | "255.38\n", 457 | "239.19\n", 458 | "237.81\n", 459 | "231.36\n", 460 | "268.99\n", 461 | "247.80\n", 462 | "257.70\n", 463 | "273.60\n", 464 | "267.45\n", 465 | "221.03\n", 466 | "221.79\n", 467 | "231.83\n", 468 | "247.49\n", 469 | "238.10\n", 470 | "237.54\n", 471 | "244.71\n", 472 | "224.64\n", 473 | "274.23\n", 474 | "268.50\n", 475 | "232.61\n", 476 | "225.80\n", 477 | "231.87\n", 478 | "243.86\n", 479 | "284.21\n", 480 | "273.36\n", 481 | "230.94\n", 482 | "215.51\n", 483 | "243.26\n", 484 | "285.71\n", 485 | "233.67\n", 486 | "245.42\n", 487 | "215.60\n", 488 | "214.76\n", 489 | "214.22\n", 490 | "253.82\n", 491 | "295.75\n", 492 | "271.06\n", 493 | "244.17\n", 494 | "216.40\n", 495 | "224.40\n", 496 | "221.22\n", 497 | "288.70\n", 498 | "286.42\n", 499 | "256.43\n", 500 | "271.80\n", 501 | "232.62\n", 502 | "233.44\n", 503 | "245.03\n", 504 | "251.28\n", 505 | "315.49\n", 506 | "283.05\n", 507 | "281.26\n", 508 | "261.97\n", 509 | "264.32\n", 510 | "255.56\n", 511 | "266.14\n", 512 | "256.01\n", 513 | "261.91\n", 514 | "276.64\n" 515 | ] 516 | } 517 | ], 518 | "source": [ 519 | "import time\n", 520 | "import random\n", 521 | "import string\n", 522 | "str_list = []\n", 523 | "\n", 524 | "Alpahbets = ' A!1B@2C#D3$E%4F^G5&H*6I(J7)K_8L-M9+N=0O:P;Q\\'R\"S?T/U>VVV