====== RSA Certificados y AES ====== ===== Para ver un certificado RSA ===== jorpilo@Legion:~/RSA$ openssl x509 -in cert1.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 0f:fe:01:84:a9:f4:78:86:5a:6d:00:36:53:0a:0a:0f:ed:8d:17:24 Signature Algorithm: sha256WithRSAEncryption Issuer: C = ES, ST = MADRID, L = MADRID, O = HACKERS, OU = RANSOMWARE, CN = EVIL HACKER, emailAddress = GoToHell@hackers.com Validity Not Before: Mar 29 10:24:10 2019 GMT Not After : Apr 28 10:24:10 2019 GMT Subject: C = ES, ST = MADRID, L = MADRID, O = HACKERS, OU = RANSOMWARE, CN = EVIL HACKER, emailAddress = GoToHell@hackers.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:ea:e4:55:89:d4:cb:3c:e9:0d:cb:f1:9e:2d:eb: f8:11:eb:98:cd:82:a8:91:b8:c2:20:ee:ed:ca:09: 7d:5b:36:1b:36:c5:ab:d4:3d:33:98:3a:3d:53:74: d1:62:93:77:90:09:a6:4c:89:0f:20:17:b9:bf:42: e9:54:a6:e5:8e:a8:21:d9:ab:75:ae:5c:3d:bd:76: 44:8a:4c:fe:81:c2:ab:7d:db:51:c5:63:bb:55:6d: 93:67:24:e0:6a:ec:37:8d:a6:b2:08:1f:b7:86:d7: 9f:69:0f:84:00:07:1a:ff:8d:80:e4:87:f5:97:cc: b5:a3:a6:f8:d1:04:a3:cd:1e:2f:d4:af:94:2d:a7: 6d:d2:a7:b0:df:c4:5a:06:65:fc:82:1d:73:67:9f: 11:c4:b5:5e:6a:be:f9:97:53:7a:9c:9c:c9:e8:b6: 1f:ee:af:1d:23:eb:2c:38:e6:40:b1:51:73:60:1d: 36:53:91:4b:c4:9d:b8:31:ea:e2:f6:5e:9c:75:79: a4:9d:6d:8c:98:00:eb:de:46:33:c8:29:2d:91:19: ed:6a:a1:b9:7f:01:a4:b5:02:2e:d0:8d:5f:6e:c6: bc:1c:f4:36:5b:18:09:ad:07:08:22:cb:37:e4:d2: c2:28:f9:80:c3:f6:bc:6d:62:08:14:5f:07:5d:f1: 50:43 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 2F:19:7E:E0:C9:91:31:48:0F:DD:8A:65:2E:8A:D2:6B:49:67:E9:7F X509v3 Authority Key Identifier: keyid:2F:19:7E:E0:C9:91:31:48:0F:DD:8A:65:2E:8A:D2:6B:49:67:E9:7F X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: sha256WithRSAEncryption b4:2f:88:c8:a1:31:07:70:8b:72:af:a7:b8:38:1d:db:77:e1: f4:cf:5c:f1:7e:c5:f5:e6:0b:0e:70:39:f4:83:a3:f8:87:4a: 10:90:0b:42:6a:70:3e:f4:d6:9c:3c:37:01:37:25:0b:f0:c5: f8:d5:0f:d5:eb:34:c4:13:78:50:15:0d:c6:7c:94:1c:29:fc: b5:99:5f:06:fa:b0:c5:c0:af:f5:22:96:66:99:b0:ac:28:b6: a2:15:ed:a6:2b:5a:db:28:cc:eb:60:16:c7:d6:56:a8:2b:af: 91:68:53:9a:d0:d8:10:15:0f:ca:91:67:83:2a:99:35:27:d9: 79:c4:0c:98:98:62:85:60:2c:ca:ed:0b:46:27:a5:02:69:c4: a3:a0:4d:75:38:ac:c9:00:26:a5:b9:51:62:6b:c4:5e:d5:9f: 65:8e:a2:c3:c3:bf:43:09:94:ed:72:b9:4a:1f:fd:56:18:9e: 84:ff:0d:d6:24:d2:c1:d0:89:81:2a:4a:0d:ed:3d:3b:f3:e6: 15:43:df:b7:45:a1:4d:4a:1b:4b:a8:cf:7c:da:22:90:14:81: 2f:33:8f:15:ea:0c:3b:7d:ab:2a:b2:50:4a:be:a7:be:47:5e: 2c:34:26:70:4f:15:5f:61:49:6a:8c:7b:52:7d:9a:3c:33:ef: 9f:d2:c9:1a ===== Generar clave privada RSA sabiendo M y e ===== from Crypto.PublicKey.RSA import construct # 65537 common public key private_key = construct((mod1, 65537, exp1)) f = open("mykey1.pem", "wb") f.write(private_key.exportKey("PEM")) f.close() -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA6uRVidTLPOkNy/GeLev4EeuYzYKokbjCIO7tygl9WzYbNsWr 1D0zmDo9U3TRYpN3kAmmTIkPIBe5v0LpVKbljqgh2at1rlw9vXZEikz+gcKrfdtR xWO7VW2TZyTgauw3jaayCB+3htefaQ+EAAca/42A5If1l8y1o6b40QSjzR4v1K+U Ladt0qew38RaBmX8gh1zZ58RxLVear75l1N6nJzJ6LYf7q8dI+ssOOZAsVFzYB02 U5FLxJ24Meri9l6cdXmknW2MmADr3kYzyCktkRntaqG5fwGktQIu0I1fbsa8HPQ2 WxgJrQcIIss35NLCKPmAw/a8bWIIFF8HXfFQQwIDAQABAoIBAQCAPybM2FgW64/S 2BrrK7kH38BQBJSQ63VikdFWzBObZ1E4eHi2qquu4610EYX48lcHV51qkDKn7QxH dvr6cx1G5FmHBOx9xHMZLKeDc0JKCsWjM8nTof44SFmAqUu2VT6Hoon1kYucncG1 lPkXIsoE2XeUTv8yYFyT+6hCRuxAIr1cfZj8HLHenj0n59hmMHCUFm97YcDncAHW aXEdP9Un/0I5L9NFkMWVNt40kazXsG7nQznMe3U2flHEDagiz5Zk5kejNIXRL3qw T/4a3KV/iGElBWOlnCN6hyS70DPttlr5gDiDx6IsbUSk5UVTWgh13ifXpCaqrA/h gtkh/v1xAoGBAPncZfcaNAvVDJI2irZolT1jNQbVNcEJd+eKnWv/BmRLLIB9a1T+ I/ylh+MYk4z2bV3+IXVO/znCn633DmS8psHcdLDqTydDQG69GKlbpShNNRMGoP4F 20o1YmT075n0VnwExgFD6juwPemuQMFj2yFYk7GejwiAihmOHkG+BfYtAoGBAPCp yEA2px+wMbU7dGOgf94J1obbzpsWCaSPjHVD0JUyMwsSegXlgtHPL9IfmBqzg0P1 1gc4IXncpkgkSTmNyObFZpAvZ4kToyRm23KfQ454wHX2AbqqMBcOWcfOC3cNTX08 vtO3+x953Qsmwipu8VVoMjL7BbL9PHnpAfOQflYvAoGBAN70vEfzKd4lDkKqSLzc Nc/BZt/iAUVvnX8PQcnMl3eHXP6K6+u7m4EmdEtA8ukmPBFTY6e6BiUUdkhV3JIn hOYYQkhbzKXMbQJj2k3FaWq8+k8v6xjBQRzG5jYQGn3WehXQbJ9Uav84FQcgZsgq wq7Oy3wDcL61dIW5O2aOmeNBAoGAFBrq+spWDeSnUm+kGoqXBBKoVF3alcQyjAfe ARHoQ/6MmxkxDnsNAcAgS5qOF3T1u2C3P6UlzstrLM2zPFam+Ph2yAbdzGrSj0D0 hk/d0fIuiexCWrjLCbIOOA3zkT+QQK0peAB/vzJsD/lt8SORj8QDpZSo9joHqluX 6SQiGcsCgYAIPsn9SA4Tup3tDb/ovhUdTR+NvIKDiJdPGp1LJJSz5NNfEkddhcCx NgtdQlkulM1Lry/OC3GCoRlHodlyHLkCkR3tnxC+8OutNPndvYnAcZvTllqAn6R7 eUZORMennZVbzH3UsEjuTNKdSUl9tIuWSVHrPaknEUsSkF/k+21YcQ== -----END RSA PRIVATE KEY----- ==== Decode using RSA ==== cat key2 | base64 -d > b64_key2 openssl rsautl -decrypt -in b64_key2 -out decrypted -inkey key2.pem ==== Decode AES-256-CBC ==== openssl enc -d -aes-256-cbc -in b64_f1 -out un_encrypted.data -pass file:dec_1