Обновить
8
0

Пользователь

Отправить сообщение
Для Firewire, DVI, eSATA есть Thunderbolt-переходники, а PS/2 закопали лет 8 уж как, кому он нужен?
Сфера — давно пройденный этап :)


«Apple Macintosh, концептуальная модель.»
А уж сколько лет используемым резисторам и конденсаторам…
Ну хорошо хоть макронгит не подцепил.
Четырехцветную картинку 8 на 8 пикселей (2128 вариантов) можно было бы упаковать в бессмысленную фразу естественного языка. Для формата «AAN,AN,AAN,AN,AAN» (A — adjective, прилагательное, N — noun, существительное) при словаре в 1127 прилагательных и 983 существительных получается (716)*(238)*(9835) вариантов (приблизительно 2130.81).

Реализация упаковщика на Python
#!/usr/bin/env python3
# coding: utf8

class NaturalDigestEncoder(object):
    def __init__(self, nouns, adjectives):
        self.nouns = sorted(nouns)
        self.adjectives = sorted(adjectives)
        
        self.__length_nouns = len(self.nouns)
        self.__length_adjectives = len(self.adjectives)
    
    def __get_adjective(self, index):
        return self.adjectives[index]
    
    def __get_noun(self, index):
        return self.nouns[index]
    
    def encode_bytes(self, bytes):
        return self.encode_number(int.from_bytes(bytes, 'little'))
    
    def encode_number(self, number):
        length_nouns = self.__length_nouns
        length_adjectives = self.__length_adjectives
        get_adjective = self.__get_adjective
        get_noun = self.__get_noun
        
        number, group1adj1 = divmod(number, length_adjectives)
        number, group1adj2 = divmod(number, length_adjectives)
        number, group1noun = divmod(number, length_nouns)
        number, group2adj1 = divmod(number, length_adjectives)
        number, group2noun = divmod(number, length_nouns)
        number, group3adj1 = divmod(number, length_adjectives)
        number, group3adj2 = divmod(number, length_adjectives)
        number, group3noun = divmod(number, length_nouns)
        number, group4adj1 = divmod(number, length_adjectives)
        number, group4noun = divmod(number, length_nouns)
        number, group5adj1 = divmod(number, length_adjectives)
        number, group5adj2 = divmod(number, length_adjectives)
        number, group5noun = divmod(number, length_nouns)
        
        return '%s %s %s, %s %s, %s %s %s, %s %s, %s %s %s' % (
            get_adjective(group1adj1), get_adjective(group1adj2), get_noun(group1noun),
            get_adjective(group2adj1), get_noun(group2noun),
            get_adjective(group3adj1), get_adjective(group3adj2), get_noun(group3noun),
            get_adjective(group4adj1), get_noun(group4noun),
            get_adjective(group5adj1), get_adjective(group5adj2), get_noun(group5noun),
        )

if __name__ == '__main__':
    import binascii
    import io
    import os

    def read_file(filename):
        with io.open(filename, 'r') as fd:
            return set(x.strip() for x in fd)
    
    nde = NaturalDigestEncoder(read_file('nouns.txt'), read_file('adjectives.txt'))
    
    for x in range(32):
        digest = os.urandom(16)
        print('%s — %s' % (str(binascii.hexlify(digest), encoding = 'utf8'), nde.encode_bytes(digest)))

Словарь существительных (nouns.txt)
able account achieve achiever acoustics act action activity actor addition
adjustment advertisement advice aftermath afternoon afterthought agreement air
airplane airport alarm alley amount amusement anger angle animal answer ant
ants apparatus apparel apple apples appliance approval arch argument arithmetic
arm army art attack attempt attention attraction aunt authority babies baby
back badge bag bait balance ball balloon balls banana band base baseball basin
basket basketball bat bath battle bead beam bean bear bears beast bed bedroom
beds bee beef beetle beggar beginner behavior belief believe bell bells berry
bike bikes bird birds birth birthday bit bite blade blood blow board boat boats
body bomb bone book books boot border bottle boundary box boy boys brain brake
branch brass bread breakfast breath brick bridge brother brothers brush bubble
bucket building bulb bun burn burst bushes business butter button cabbage cable
cactus cake cakes calculator calendar camera camp can cannon canvas cap caption
car card care carpenter carriage cars cart cast cat cats cattle cause cave
celery cellar cemetery cent chain chair chairs chalk chance change channel
cheese cherries cherry chess chicken chickens children chin christmas-balls
church circle clam class clock clocks cloth cloud clouds clover club coach coal
coast coat cobweb coil collar color comb comfort committee company comparison
competition condition connection control cook copper copy cord cork corn cough
country cover cow cows crack cracker crate crayon cream creator creature credit
crib crime crook crow crowd crown crush cry cub cup current curtain curve
cushion dad daughter day death debt decision deer degree design desire desk
destruction detail development digestion dime dinner dinosaurs direction dirt
discovery discussion disease disgust distance distribution division dock doctor
dog dogs doll dolls donkey door downtown drain drawer dress drink driving drop
drug drum duck ducks dust ear earth earthquake edge education effect egg eggnog
eggs elbow end engine error event example exchange existence expansion
experience expert eye eyes face fact fairies fall family fan fang farm farmer
father faucet fear feast feather feeling feet fiction field fifth fight finger
fire fireman fish flag flame flavor flesh flight flock floor flower flowers fly
fog fold food foot force fork form fowl frame friction friend friends frog
frogs front fruit fuel furniture galley game garden gate geese ghost giants
giraffe girl girls glass glove glue goat gold goldfish good-bye goose
government governor grade grain grandfather grandmother grape grass grip ground
group growth guide guitar gun hair haircut hall hammer hand hands harbor
harmony hat hate head health hearing heart heat help hen hill history hobbies
hole holiday home honey hook hope horn horse horses hose hospital hot hour
house houses humor hydrant ice icicle idea impulse income increase industry ink
insect instrument insurance interest invention iron island jail jam jar jeans
jelly jellyfish jewel join joke journey judge juice jump kettle key kick kiss
kite kitten kittens kitty knee knife knot knowledge laborer lace ladybug lake
lamp land language laugh lawyer lead leaf learning leather leg legs letter
letters lettuce level library lift light limit line linen lip liquid list
lizards loaf lock locket look loss love low lumber lunch lunchroom machine
magic maid mailbox mailman man manager map marble mark market mask mass match
meal measure meat meeting memory men metal mice middle milk mind mine minister
mint minute mist mitten mom money monkey month moon morning mother motion
mountain mouth move muscle music nail name nation neck need needle nerve nest
net news night noise north nose note notebook number nut oatmeal observation
ocean offer office oil operation opinion orange oranges order organization
ornament oven owl owner page pail pain paint pan pancake paper parcel parent
park part partner party passenger paste patch payment peace pear pen pencil
person pest pet pets pickle picture pie pies pig pigs pin pipe pizzas place
plane planes plant plantation plants plastic plate play playground pleasure
plot plough pocket point poison police polish pollution popcorn porter position
pot potato powder power price print prison process produce profit property
prose protest pull pump punishment purpose push quarter quartz queen question
quicksand quiet quill quilt quince quiver rabbit rabbits rail railway rain
rainstorm rake range rat rate ray reaction reading reason receipt recess record
regret relation religion representative request respect rest reward rhythm rice
riddle rifle ring rings river road robin rock rod roll roof room root rose
route rub rule run sack sail salt sand scale scarecrow scarf scene scent school
science scissors screw sea seashore seat secretary seed selection self sense
servant shade shake shame shape sheep sheet shelf ship shirt shock shoe shoes
shop show side sidewalk sign silk silver sink sister sisters size skate skin
skirt sky slave sleep sleet slip slope smash smell smile smoke snail snails
snake snakes sneeze snow soap society sock soda sofa son song songs sort sound
soup space spade spark spiders sponge spoon spot spring spy square squirrel
stage stamp star start statement station steam steel stem step stew stick
sticks stitch stocking stomach stone stop store story stove stranger straw
stream street stretch string structure substance sugar suggestion suit summer
sun support surprise sweater swim swing system table tail talk tank taste tax
teaching team teeth temper tendency tent territory test texture theory thing
things thought thread thrill throat throne thumb thunder ticket tiger time tin
title toad toe toes tomatoes tongue tooth toothbrush toothpaste top touch town
toy toys trade trail train trains tramp transport tray treatment tree trees
trick trip trouble trousers truck trucks tub turkey turn twig twist umbrella
uncle underwear unit use vacation value van vase vegetable veil vein verse
vessel vest view visitor voice volcano volleyball voyage walk wall war wash
waste watch water wave waves wax way wealth weather week weight wheel whip
whistle wilderness wind window wine wing winter wire wish woman women wood wool
word work worm wound wren wrench wrist writer writing yak yam yard yarn year
yoke zebra zephyr zinc zipper zoo

Словарь прилагательных (adjectives.txt)
aback abaft abandoned abashed aberrant abhorrent abiding abject ablaze able
abnormal aboard aboriginal abortive abounding abrasive abrupt absent absorbed
absorbing abstracted absurd abundant abusive acceptable accessible accidental
accurate acid acidic acoustic acrid actually adamant adaptable addicted
adhesive adjoining adorable adventurous afraid aggressive agonizing agreeable
ahead ajar alcoholic alert alike alive alleged alluring aloof amazing ambiguous
ambitious amuck amused amusing ancient angry animated annoyed annoying anxious
apathetic aquatic aromatic arrogant ashamed aspiring assorted astonishing
attractive auspicious automatic available average awake aware awesome awful
axiomatic bad barbarous bashful bawdy beautiful befitting belligerent
beneficial bent berserk best better bewildered big billowy bite-sized bitter
bizarre black black-and-white bloody blue blue-eyed blushing boiling boorish
bored boring bouncy boundless brainy brash brave brawny breakable breeze breezy
brief bright broad broken brown bumpy burly bustling busy cagey calculating
callous calm capable capricious careful careless caring cautious ceaseless
certain changeable charming cheap cheerful chemical chief childlike chilly
chivalrous christmas-balls chubby chunky clammy classy clean clear clever
cloistered closed cloudy clumsy cluttered coherent cold colorful colossal
combative comfortable common complete complex concerned condemned confused
conscious cooing cool cooperative coordinated courageous cowardly crabby craven
crazy creepy crooked crowded cruel cuddly cultured cumbersome curious curly
curved curvy cut cute cynical daffy daily damaged damaging damp dangerous
dapper dark dashing dazzling dead deadpan deafening dear debonair decisive
decorous deep deeply defeated defective defiant delicate delicious delightful
delirious demonic dependent depressed deranged descriptive deserted detailed
determined devilish didactic different difficult diligent direful dirty
disagreeable disastrous discreet disgusted disgusting disillusioned dispensable
distinct disturbed divergent dizzy domineering doubtful drab draconian dramatic
dreary drunk dry dull dusty dynamic dysfunctional eager early earsplitting
earthy easy eatable economic educated efficacious efficient eight elastic
elated elderly electric elegant elfin elite embarrassed eminent empty enchanted
enchanting encouraging endurable energetic enormous entertaining enthusiastic
envious equable equal erect erratic ethereal evanescent evasive even excellent
excited exciting exclusive exotic expensive extra-large extra-small exuberant
exultant fabulous faded faint fair faithful fallacious false familiar famous
fanatical fancy fantastic far far-flung fascinated fast fat faulty fearful
fearless feeble feigned female fertile festive few fierce filthy fine finicky
first five fixed flagrant flaky flashy flat flawless flimsy flippant flowery
fluffy fluttering foamy foolish foregoing forgetful fortunate four fragile
frail frantic free freezing frequent fresh fretful friendly frightened
frightening full fumbling functional funny furry furtive future futuristic
fuzzy gabby gainful gamy gaping garrulous gaudy general gentle giant giddy
gifted gigantic glamorous gleaming glib glistening glorious glossy godly good
goofy gorgeous graceful grandiose grateful gratis gray greasy great greedy
green grey grieving groovy grotesque grouchy grubby gruesome grumpy guarded
guiltless gullible gusty guttural habitual half hallowed halting handsome
handsomely handy hanging hapless happy hard hard-to-find harmonious harsh
hateful heady healthy heartbreaking heavenly heavy hellish helpful helpless
hesitant hideous high high-pitched highfalutin hilarious hissing historical
holistic hollow homeless homely honorable horrible hospitable hot huge hulking
humdrum humorous hungry hurried hurt hushed husky hypnotic hysterical icky icy
idiotic ignorant ill ill-fated ill-informed illegal illustrious imaginary
immense imminent impartial imperfect impolite important imported impossible
incandescent incompetent inconclusive incredible industrious inexpensive
infamous innate innocent inquisitive insidious instinctive intelligent
interesting internal invincible irate irritating itchy jaded jagged jazzy
jealous jittery jobless jolly joyous judicious juicy jumbled jumpy juvenile
kaput keen kind kindhearted kindly knotty knowing knowledgeable known labored
lackadaisical lacking lame lamentable languid large last late laughable lavish
lazy lean learned left legal lethal level lewd light like likeable limping
literate little lively living lonely long long-term longing loose lopsided loud
loutish lovely loving low lowly lucky ludicrous lumpy lush luxuriant lying
lyrical macabre macho maddening madly magenta magical magnificent majestic
makeshift male malicious mammoth maniacal many marked married marvelous massive
material materialistic mature mean measly meaty medical meek mellow melodic
melted merciful mere messy mighty military milky mindless miniature minor
miscreant misty mixed moaning modern moldy momentous motionless mountainous
muddled mundane murky mushy mute mysterious naive nappy narrow nasty natural
naughty nauseating near neat nebulous necessary needless needy neighborly
nervous new next nice nifty nimble nine nippy noiseless noisy nonchalant
nondescript nonstop normal nostalgic nosy noxious null numberless numerous
nutritious nutty oafish obedient obeisant obese obnoxious obscene obsequious
observant obsolete obtainable oceanic odd offbeat old old-fashioned omniscient
one onerous open opposite optimal orange ordinary organic ossified outgoing
outrageous outstanding oval overconfident overjoyed overrated overt overwrought
painful painstaking pale paltry panicky panoramic parallel parched parsimonious
past pastoral pathetic peaceful penitent perfect periodic permissible perpetual
petite phobic physical picayune pink piquant placid plain plant plastic
plausible pleasant plucky pointless poised polite political poor possessive
possible powerful precious premium present pretty previous pricey prickly
private probable productive profuse protective proud psychedelic psychotic
public puffy pumped puny purple purring pushy puzzled puzzling quack quaint
quarrelsome questionable quick quickest quiet quirky quixotic quizzical rabid
racial ragged rainy rambunctious rampant rapid rare raspy ratty ready real
rebel receptive recondite red redundant reflective regular relieved remarkable
reminiscent repulsive resolute resonant responsible rhetorical rich right
righteous rightful rigid ripe ritzy roasted robust romantic roomy rotten rough
round royal ruddy rude rural rustic ruthless sable sad safe salty same sassy
satisfying savory scandalous scarce scared scary scattered scientific
scintillating scrawny screeching second second-hand secret secretive sedate
seemly selective selfish separate serious shaggy shaky shallow sharp shiny
shivering shocking short shrill shut shy sick silent silky silly simple
simplistic sincere six skillful skinny sleepy slim slimy slippery sloppy slow
small smart smelly smiling smoggy smooth sneaky snobbish snotty soft soggy
solid somber sophisticated sordid sore sour sparkling sparse special
spectacular spicy spiffy spiky spiritual spiteful splendid spooky spotless
spotted spotty spurious squalid square squealing squeamish staking stale
standing statuesque steadfast steady steep stereotyped sticky stiff stimulating
stingy stormy straight strange striped strong stupendous stupid sturdy subdued
subsequent substantial successful succinct sudden sulky super superb
superficial supreme swanky sweet sweltering swift symptomatic synonymous taboo
tacit tacky talented tall tame tan tangible tangy tart tasteful tasteless tasty
tawdry tearful tedious teeny teeny-tiny telling temporary ten tender tense
tenuous terrible terrific tested testy thankful therapeutic thick thin
thinkable third thirsty thoughtful thoughtless threatening three thundering
tidy tight tightfisted tiny tired tiresome toothsome torpid tough towering
tranquil trashy tremendous tricky trite troubled truculent true truthful two
typical ubiquitous ugliest ugly ultra unable unaccountable unadvised unarmed
unbecoming unbiased uncovered understood undesirable unequal unequaled uneven
unhealthy uninterested unique unkempt unknown unnatural unruly unsightly
unsuitable untidy unused unusual unwieldy unwritten upbeat uppity upset uptight
used useful useless utopian utter uttermost vacuous vagabond vague valuable
various vast vengeful venomous verdant versed victorious vigorous violent
violet vivacious voiceless volatile voracious vulgar wacky waggish waiting
wakeful wandering wanting warlike warm wary wasteful watery weak wealthy weary
well-groomed well-made well-off well-to-do wet whimsical whispering white whole
wholesale wicked wide wide-eyed wiggly wild willing windy wiry wise wistful
witty woebegone womanly wonderful wooden woozy workable worried worthless
wrathful wretched wrong wry xenophobic yellow yielding young youthful yummy
zany zealous zesty zippy zonked

Другие примеры результатов
d67ab0bf4d2c1e4d673ab47d147fac64 — disgusting whimsical pain, unwieldy ducks, curly boiling square, addicted interest, eminent awake ball
58d568ff35f9d31ce194e9c5e5215f27 — abaft pleasant ants, sweltering horse, cut frightened banana, helpless year, shaky meek alley
31ebeeb944a1df66c487f18b7607559b — modern stingy sleep, aware news, craven whimsical van, three stop, victorious white believe
184046df766e1d53f6e16ec8e9eb1552 — naughty bewildered cup, unsuitable place, holistic vacuous thunder, vast bedroom, adorable unadvised attention
82b2f57ed5d4ed1b2798fac1108d4a27 — clear bright caption, gabby badge, threatening selfish flock, medical care, deeply limping alley
35693c66a260ab004b259888f6e814dd — elastic good invention, handsomely bun, alike attractive ticket, acidic tin, careless vague breath
678e17c688d38b35712558c5ae9cb9c1 — attractive busy sea, vengeful interest, hallowed early increase, abiding smile, general wholesale book
5a10c85f0987186d8e597fac0cb8689f — rampant fortunate grandfather, foregoing afternoon, poised breeze porter, cluttered honey, exotic delightful berry
62470a722d8e0cd7ea9006dc5a6338b9 — fumbling few surprise, meek offer, plant nifty nerve, redundant join, frightened forgetful boats
77049f19b7958d7900849519858eec48 — worthless nine society, mysterious trail, cheap concerned price, wicked rate, cagey trite arm
091320ae575b247cbebdfaf5cddcc1af — gleaming young stocking, cool beggar, dependent selfish sisters, silent move, obnoxious cloistered blade
6aea3afc389d1b5e90c191b46f10c518 — witty aback milk, optimal plot, spotless industrious clock, lethal fight, ajar mixed aftermath
597045c6d1468cb7ef31696275d45839 — tricky numberless bulb, stingy wood, elfin sparse fowl, fluffy vein, deep grubby apparel
4347fbd3fca806ec9ec3a1ff41c947bd — tiresome spotted beast, dramatic fruit, callous able education, stingy lift, free melodic bomb
b63c9f2602f861969f6df4c7489c1ccf — numerous abusive poison, meaty heat, dirty guttural carpenter, heartbreaking invention, wet faulty boys
e4749dc40f797b748ea2bee0d832bda6 — bitter shallow attack, resonant boats, cowardly romantic deer, ready push, apathetic didactic birds
9bd317ff56dfe4f3e0dc4f0f1f89177b — null expensive look, whimsical rice, jumpy makeshift detail, husky recess, mighty funny battle
14a4750877d2625b9d83430ca90fe3bc — alike festive selection, silky elbow, comfortable chemical belief, exciting suggestion, silent free bomb
54686a5bf9bff73df83881a92ca999e7 — toothsome gentle weight, living error, panoramic tan cactus, brave self, nosy quizzical bubble
d29408f68d4d2d1b923998fc28e7b2f7 — glamorous psychedelic trouble, cluttered baseball, broken macho sisters, curious mailman, adaptable literate butter
3da6f86cf1bdd4a6dc50070ca02dffbc — prickly garrulous mother, same island, capable remarkable honey, adjoining cabbage, lackadaisical hanging bomb
6260abb2ea6c325d2f62ae6999c377fc — motionless well-made sidewalk, wicked lawyer, chivalrous melted page, eminent dolls, aboard brave cable
3da8ceb8a52220d29e605db7c62e57cc — poor hysterical change, excellent cabbage, wistful bashful respect, weary limit, nimble sloppy box
66fe8255c7431bc7e4bcd71aeb31a0a8 — agonizing obese beast, alive house, defective clever women, cumbersome zinc, curious educated birth
9b74ef4a21d51e6ec8768e9754959819 — soggy deeply good-bye, sparse crook, giddy talented peace, aspiring sleet, historical abaft afternoon
1f8bfce013ffa65386b5f03939862df8 — gorgeous ignorant hands, taboo knowledge, painstaking truthful toad, mute sneeze, forgetful shallow butter
82fc325676950c9dc6446dd852fcb69b — absorbing beneficial rainstorm, expensive slave, drunk flashy guide, curly tramp, sudden daffy bell
ed243209d5a0def5d87419abf020bbb8 — hospitable spiky invention, parched things, abounding hesitant eyes, sedate middle, rabid ambitious boats
44094849dda60dd6ff796ed7d8bd9637 — ruddy somber comfort, abusive verse, grandiose scary request, delicate horn, fretful honorable apparatus
bc6bbfa7290f4ee7c6f2311a10268f9b — raspy scarce trick, cooing advertisement, imported wary dog, rainy ghost, unable bloody bell
8f964a8a59b8f6df297fb87ee21a105c — garrulous quickest debt, luxuriant theory, free frightened lift, short activity, steadfast grateful back
215d7bdf2ab436070cc6307abffc926e — hissing overjoyed curtain, vivacious question, crazy lean comparison, motionless potato, one learned base
Это, собственно, основной используемый формат для хранения/обмена приватными, публичными и симметричными ключами, который может хранить кучу всяческой сопроводительной информации, относящейся к криптографии. Можно вообще извратиться и использовать его в качестве контейнера общего назначения, вместо binary1 plist или ebml.
Для расшифровки нужен же не сам секрет, а message_key. В нём «всего лишь» 16 байт.
Вот только незадача в том, что по шифротексту невозможно определить, какой message_key верен, т.е. для проверки таки придется искать 2**256 preimage-й для MD2, а его вроде еще не взломали так, чтобы атака имела практический смысл.
Всего-то нужен сильный холодильник и немного воображения.
Боб передал Алисе публичный ключ в формате ASN.1 DER, вот сюда можно вставить дамп из примера и посмотреть, как это выглядит.

Так что факторизировать нужно следующее число —
356527243659966548693033457464923716516539456_
319730960454335082893872317336655556619514752_
052654033163046749556804944585554927982098217_
315985406413478394848605180442422330065661415_
504642348309789041002870095790088186364384614_
356226611862292009565904103583804420207453441
А, ну тогда я останавливаю брутфорс, а то мне ровно 1663168150764967181301373761365378286839988198203411906 возрастов Вселенной до конца перебора осталось.

В принципе, раз сбрутить секрет не вариант, можно попробовать факторизировать открытый ключ — не на ноутбуке, конечно же.
Собственно, автор совершил ошибку, использовав textbook RSA и 32-битное целое вместе, поэтому super_secret можно просто сбрутить — перебирать все возможные super_secret-ы и шифровать их предоставленным открытым ключом, пока результат не совпадет с тем, что отправила Алиса. Если бы использовался паддинг, или секрет был бы хотя бы 64 бита, этот сценарий бы уже не сработал.
Я не фанат разработчиков телеграмма, но даже на моем ноутбуке средней паршивости скрипт на Python, набросанный за 10 минут, получит расшифрованное содержимое сообщения самое большее через 22 часа. В чем тогда смысл?
Да, такая возможность есть (хоть со $100) и общедоступна. Т.е. на данный момент развития рынка любой (включая хомячков) может сразу начать торговать без конфликта интересов.

Подскажите, пожалуйста, каким образом это можно сделать?
Как можно было ТАК налажать в отрисовке загрузки спектрума? Я понимаю, если бы это был сюжет для первого канала, но целевой аудитории такое же как серпом по яйкам.
А почему нет? Только .pyd-модули работать не будут без дополнительных костылей, типа запроса на вызов нативного кода на хосте.
Я-то думал, это реализация интерпретатора пайтоновского байткода в железе…
Скачайте GZDoom, подложите ему IWAD от оригинальной DOSовской версии (doom.wad или doom2.wad), а в качестве PWAD укажите те, что дает BrutalDoom.

Версии WADов подойдут от 1.666 и выше.
Получается, у нас изначально есть:
— KeyIV — ключ для IV
— KeyMessage — ключ для сообщения
— PlainIV — открытый IV
— PlainMessage — открытый текст

EncryptedTempIV = AES(plaintext = PlainIV, key = KeyIV, mode = ECB)
EncryptedMessage = AES(plaintext = PlainMessage, key = KeyMessage, iv = EncryptedTempIV, mode = CBC)
EncryptedIV = ???
FinalMessage = Pack(EncryptedIV, EncryptedMessage)

Я вижу несколько вариантов того, как можно получить EncryptedIV:
a) AES(plaintext = EncryptedTempIV, key = KeyIV, mode = ECB)
b) AES(plaintext = EncryptedTempIV, key = KeyIV, iv = PlainIV, mode = CBC)
c) AES(plaintext = EncryptedTempIV, key = KeyMessage, mode = ECB)
d) четвертая смешная опция

К первому варианту (a) — авторы точно уверены, что Encrypt(Encrypt(x)), где Encrypt(x) := AES(plaintext = x, key = SAME_KEY, mode = ECB) — это вообще хорошая идея? В голову сразу приходит пример с гаммированием и полной обратимостью в случае одинакового ключа — кто-то вообще проводил анализ того, что получается с данными, если их дважды зашифровать одинаковым ключом?

Какой из вариантов используется на самом деле?
Эх, но где же «шестерочка» (plasma gun) и «семерочка» (BFG)?
А можете немного подробнее объяснить, если вам не трудно: «При этом IV шифруется тем же самым ключом дважды: до шифрования и после, называется это двойным шифрованием (double encryption)» — что имеется в виду под «до шифрования» и «после шифрования»? IV ведь не является частью открытого текста, чем IV до шифрования отличается от того, что после?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Архитектор программного обеспечения