Página 1 de 3
[RETO]Cifrado Propio
Publicado: 25 May 2014, 19:16
por Scorpio
Bueno, esta idea sale de una conversación de Skype, cada uno hacemos un cifrado propio, lo más seguro posible.
El lenguaje puede ser cualquiera, el código deberá ser libre, si se quiere, se puede crear una GUI, también libre, para que demos el máximo de nuestra capacidad, la fecha límite es el Viernes 30 de Mayo de 2014.
Se evaluará la eficiencia y seguridad del cifrado por los mismos participantes y se elegirá el cifrado ganador.
//Regards.
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 19:16
por Blau
Me apunto.
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 19:20
por sanko
yo juego ajam
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 20:46
por Scorpio
Ya tengo finalizada la generación de la "Semilla" del cifrado, a ver como me queda.
//Regards.
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 21:22
por Blau
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 22:12
por Scorpio
Yo por ahora voy asi.
PD: Suerte.
//Regards.
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 22:25
por strup
Bueno yo vengo ahora y me veo el post despues de cagarme en el r.madrid, aver si entre la mala leche se me ocurre algo xDD
Re: [RETO]Cifrado Propio
Publicado: 25 May 2014, 22:26
por Prestigio
Scorpio escribió:Yo por ahora voy asi.
PD: Suerte.
//Regards.
Muy buen progreso, se ve interesante.
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 05:07
por sanko
Scorpio escribió:Yo por ahora voy asi.
PD: Suerte.
//Regards.
Los benchmark hay que hacerlos sobre miles de iteraciones scorpito:
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 14:04
por Pink
Si los cifrados son distintos y los lenguajes también no es necesario hacer medida de velocidad.
Saludos
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 14:27
por sanko
Bueno, yo dejo aqui el mio, va por cifrado de bloques con un vector de inicialización, se le puede ajustar el "nivel", a mayor nivel, mas largo será el cifrado y en teoria más duro.
Código: Seleccionar todo
sText: texto a cifrar o texto a descifrar
sKey: la clave
iv: es el vector de inicialización, se asigna aleatoriamente
lvl: el exponente
opt: True para encode y False para decode
# -*- coding: utf-8 -*-
from random import random
def antihippies_cipher(sText, sKey, iv, lvl, opt):
if opt: #True -> encode
final = []
for x in sText:
prev = iv ^ ord(x)
final.append(prev)
iv = prev
final = zip(final, sKey)
return [x*ord(z)**lvl for x,z in final]
else: #False -> decode
final = zip(sText, sKey)
decoded = ""
for i in final:
prev = i[0]/ord(i[1])**lvl
decoded += chr(prev ^ iv)
iv = prev
return decoded
"""
if __name__ == '__main__':
iv = int(random() * 100)
print antihippies_cipher("Scorpio es gay y lo sabe","el sanko sabe que scorpio es gay", iv, 15, True)
print antihippies_cipher(antihippies_cipher("Scorpio es gay y lo sabe","el sanko sabe que scorpio es gay", iv, 15, True),"el sanko sabe que scorpio es gay",iv, 15, False)
"""
Ejemplo: cadena a cifrar "Scorpio es gay y lo sabe", clave "el sanko sabe que scorpio es gay", nivel: 100:
Mostrar/Ocultar
Código: Seleccionar todo
[sanko@Sanko-PC Desktop]$ python2 antihippies.py
[29482470740694634416612422347802086087089528372312930268103191435376406505943458145890070556379516041609585999927708505246064601712584734649874099133931856018759589172437242891176728815537755783196590109L, 3079665758877799394763159622044211104660834172390158438560529156643601641121366386056060978825196937114090090920274863583068014646095427040089755762720144178031412862064726377926996367954394060218133643264L, 317518888965925761391279400592277117765014278466177284579879262705324978251253431823677198955612703243636008360373326887894073884950883126172867176169472L, 2231195556330548069299987727642175076541024702965345491323191833603860681755266934679093352450117217887939101989331474634997257687170582197370817414581991376064837545416252861940620277891866862773895263671875L, 470769828461517035496668527296770729509078364815232363368545880159454465938822476570104656917819183518154374910572337950358247581670758891816621191989931907161580788931202115022261035977660690528848099L, 13780612339822270184118337172089636776264331200038466433146477552154985209552307676940115949745852644600100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L, 8763934888220760656899731521866342322949998007196252938746646430875929929981430734594080035372667189288013919730543143802180343688130324116277407016024920983545326083901284855777266480312351534969423990101L, 235042809360544134696765527456156872245289730307570065476340072482002676763538220429499554007201704232703789694558478285159054306437451214912321591198391412769192691039268280520278373627567124602066493064069L, 104748499452676539840422070298483172870932545473378073263465323779076281484949585756264642954428933028828373892081922272294952209468332577706512882860032L, 9746801640812394197468367441805291123837107912953877672622364325743180872930902925177092013334722583405207656058658547089724862528166227493777781337384488642809553487870999344266920161317102611064910888671875L, 546853841142166253354715966051804382763070827815673957448310870892295591747117018238000359045951576814017708229452715800921196685779164369281933707867092619430119098253416598258182011489201812230480115L, 265239111789506375066179619168703652338458116620307028881009890666250180215127509819170416917274515181727751053294784285028044360012717939399188407329896016728910403572858786288356026685520896086507520L, 31646321804231855291226178116448110754031879078537732489615352274670087717388849569441635367856911714388271210931577019392564755966719394073718069712569056460503412230964746956584195150623095657192670117L, 39280687294753702440158276361931189826599704552516777473799496417153605556856094658599241107910849885810640209530720852110607078550624716639942331072512L, 893916646605004275721872971924332060474624741158651402542388033180276580716431417278947639686289078949088470276905622503776083584007251878074263267362796525172158440688093236837236346930615367952382186016044L, 55976417529612933055192229277744221076469596525695717186395023003355419784384412716459753298560010401973122889406794107733632815992821513533767946172137700809687030867875252071835941445319693721978305564230085L, 31646321804231855291226178116448110754031879078537732489615352274670087717388849569441635367856911714388271210931577019392564755966719394073718069712569056460503412230964746956584195150623095657192670117L, 81834765197403546750329742420689978805416051151076619737082284202403344910116863872081752308147603928772167103189001775230431413647134826333213189734400L, 13856898718263403798810450097988245212202153418416356209270349282381871602480078857480685031005991142672463896565321789838404021425585721015250339732667104335560570018900938826789115410065278410911560058593750L, 3147878134949773742403297828523649521231523859094743746091233405214126584856232834409890274186231773445689494265614452162576826992495474976371106048628685138755457010524451291991888126912841433056140086L, 126037448497683086721453978490982670624285797411305687284414241765711580293491509505673673887919754443623771285487879660157753758524430361619650708323775105397972892296419222887685504698840342177919713672037L, 3334218419259968745631612998845116699251655651575626002654222441591476111921391190047346903887507615714954134460712688593591139756867223583081959030481908470338878460793312607185632748347107047202063613165568L, 317384609760833035744925322833975292944910777583874977069529646526503706120002163822452315951214671899500217801496448311671126648249058143542156417089854203026759286612934233273826113399059278108828566028288L, 881058427570233148671503465027902212676398330905407558982438850927457993718916300860362869435355312843248952024160430435518565574288979520078218715570598309710470368016910214237213949672877788543701171875L]
Scorpio es gay y lo sabe
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 17:49
por Scorpio
Bueno, yo dejo aquí mi cifrado, y quiero aclarar, que no soy ningun entendido en la Cryptografía, pero si he tratado de que sea Rapido y Seguro, y creo que lo he conseguido, al menos es mas fuerte que un RC4.
Resultados:
Source:
Func sCipher($sString, $sKey)
Dim $Seed, $Final
For $i = 1 To StringLen($sKey)
$Seed = ($Seed + Asc(StringLeft($sKey, 1))) * StringLen($Skey)
$sKey = StringMid($sKey, 2)
Next
For $i = 1 To StringLen($sString)
$Final &= Asc(StringLeft($sString, 1)) + $Seed
$sString = StringMid($sString, 2)
Next
Return $Final
EndFunc
Func sUnCipher($sString, $sKey)
Dim $Seed, $Final, $Step
For $i = 1 To StringLen($sKey)
$Seed = ($Seed + Asc(StringLeft($sKey, 1))) * StringLen($Skey)
$sKey = StringMid($sKey, 2)
Next
$Step = StringLen($Seed) + Asc(StringLeft($sKey, 1))
For $i = $Step To StringLen($sString) Step $Step
$Final &= Chr(StringLeft($sString, $Step) - $Seed)
$sString = StringMid($sString, $Step + 1)
Next
Return $Final
EndFunc
Creo que es encillo y eficaz, se puede portar facilmente a otros lenguajes, segúro que sale algún FUD.
//Regards.
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 18:05
por Pink
@Scorpio no uses Dim
Saludos
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 19:21
por ap0calypt0
Uno muy seguro sería tipo MD5 one way.
Re: [RETO]Cifrado Propio
Publicado: 26 May 2014, 19:26
por strup
ami me esta dando dolores de cabeza me va estallar la cabeza con tanta rotacion y iv xD, esperarme y os follo el culo a to cristo mamones