Archive for the ‘Spektrum’ Category

Steganografi och hemliga meddelanden

10/02/2022

Datorarkeologi, hemliga meddelanden.

Jag tror att rätt många barn som nyligen har lärt sig läsa har gjort sina egna hemliga alfabet där det vanliga latinska/nordiska alfabetet ersätts med ”hemliga tecken” så att meddelandet blir oläsligt. Alternativt kan man använda Cesars kryptering där man tänker sig alfabetet som två ringar där man förskjuter den ena med ett visst antal steg. Om vi antar att vårt vanliga alfabet är den första ringen och vi vrider kryptoalfabetsringen tillbaka ett steg så får vi ett kryptoalfabet där

Vanlig text    Krypterad text
a          --> b
b          --> c
osv.

Ett hemligt meddelande av denna typ är naturligtvis urenkelt att lösa. Med dator kan vi naturligtvis enkelt och snabbt testa alla kombinationer men också för hand går det snabbt att titta på tex. fördelningen av de vanligaste bokstäverna i det gissade språket i meddelandet vilket ger information om hur alfabetet skall förskjutas. Ett barns hemliga alfabet är likaså väldigt enkelt att läsa om vi har en vettig längd på meddelandet. Vi kan ur ordlängd etc. gissa bokstäver och rätt enkelt få fram det hemliga alfabetet.

Enkla substitutionsskiffer dvs. förskjutning av bokstäverna i alfabetet eller hemliga symboler i stället för det normala alfabetet är så enkla att lösa att man kan säga att ett meddelande som kodats på detta sätt egentligen endast visar att meddelandet inte är tänkt att läsas rakt upp och ner.

En intressant detalj är Stanley Kubricks film ”Ett rymdäventyr 2001” där skeppets tänkande dator heter ”HAL”. Av en slump 😉 så är HAL ordet IBM förskjutet en bokstav i riktning mot A d.v.s. IBM har kodats met ett Caesarskiffer försjutet endast ett steg i riktning mot A. Om man vill göra en textfil besvärlig att läsa men helt utan risk att man tappar lösenordet till texten så kan man koda en text med Unixverktyget rot13 som alltså förskjuter alfabetet med 13 steg. Säkerheten är lika med noll men det går inte att se vad texten innehåller bara genom att skumma av den med ögat.

Steganografi

Steganografi är tekniken att gömma ett meddelande tex inom ett skenbart oskyldigt meddelande. Antag att en medeltida krigsherre börjar ha slut på krutet och skickar ett meddelande till den egna kungen där han ber om 1500 kaggar fläsk, 20 kärror bröd … och på slutet konstaterar han krigståget måste avbrytas om han inte snabbt får mera mjöl, smör och salt … där den hemliga betydelsen kunde vara ‘mjöl=kol’, ‘smör=svavel’ och ‘salt=salpeter’ (de tre ingredienserna i svartkrut).

Under antiken kunde en kung t.ex. skicka en slav med ett hemligt meddelande så att håret rakades av huvudet på slaven varefter meddelandet skrevs på skalpen. Då håret hade vuxit ut skickades slaven till mottagaren som rakade av håret igen och läste meddelandet. Andra alternativ kunde vara att lägga in ett meddelande i ett bakat bröd … alternativen är många.

Vi såg i föregående inlägg hur man kan generera morsekod med hjälp av ett dataprogram. Ett kort meddelande, några ord, går på kanske 20 sekunder och ljudfilens längd är ungefär en miljon tecken. Antag att jag, den hemliga agenten, vill skicka en femsidig rapport till min uppdragsgivare utan att väcka uppmärksamhet. Jag kan då ta i bruk mitt morseprogram och regelbundet under en tid skicka t.ex. hälsningar till olika personer med morse. Meddelandet byts med någon dags mellanrum och fienden tittar på varje meddelande … men hittar inget.

Jag har redan tidigare, med tanke på användning för steganografi, modifierat både ljudfilerna och pauserna jag använder för att bygga upp meddelandena så att det finns brus i signalerna t.ex. med toppvärdet ungefär 8- bitar av den 16 bitars amplitud ljudfilen tillåter. Bruset ligger då på ungefär 0.5% vilket inte är speciellt störande.

Antag att jag vill skicka min rapport som innehåller 10000 tecken inbakad i morsesignalen. Min text består av tecken som alla ryms i en byte (8 bitar) som i sin tur ryms inom bottenbruset i min morsesignal. Jag behöver nu endast via någon annan kanal meddela min uppdragsgivare att ”Kom ihåg att gratulera den brittiska drottningen då hon fyller 100 år”. Hundra i detta meddelande betyder att jag byter ut vart hundrade talvärde i bruset i meddelandet mot en bokstav. Bruset kommer att öka marginellt men inte så att man enkelt hör skillnaden. Jag måste då skriva ett morsemeddelande som producerar en morse wav-fil med längden större än en miljon talvärden … enkelt.

Jag lägger ut den mixade morsefilen på den vanliga platsen för min morsehobby och min uppdragsgivare laddar ner filen och kör ett program som plockar ut vart hundrade talvärde i wav-filen och dumpar resultatet i en textfil som är min återskapade rapport.

Jag har alltså dolt en textrapport på 10000 tecken i ett oskyldigt morsemeddelande som gick på kanske 20-30 bokstäver. Notera att den sända dolda texten naturligtvis i sig kan vara krypterad innan den läggs till bruset i morsekoden. Det är naturligtvis självklart att texten inte behöver läggas in med 100 teckens intervall utan jag kan använda en slumptalsgenerator som genererar en lämplig slumptalssekvens som säger hur långt avståndet är mellan det hemliga dokumentets bokstäver. Det är också sannolikt att jag endast vill lägga in text i bruset i pauser inte i den reguljära sinusvågen jag använder som ljud eftersom det kan verka misstänkt in enstaka sampel ligger mycket nära noll då sinusvågen ligger nära ett. Jag kan hoppa över områden där jag har en morseton. Både jag och min uppdragsgivare måste naturligtvis kunna generera samma sekvens. Det är självklart att det enkelt går att gömma stora mängder text i en ljudfil som ovan men också självklart att det krävs en del funderande över hur man bäst döljer att det ligger ett meddelande inbakat i filen.

Bilden visar ljusrött brus med amplituden 0.125 (signalen har amplituden 1.0). Om vi antar att ljudfilen är kodad som 16-bitars PCM så kan vi lägga in data med ett största värde 8192 utan att vårt hemliga meddelande sticker ut på något sätt.

Digitalbilder innehåller också enorma mängder data. En modern digitalkamera producerar bilder vars storlek är tiotals megabyte d.v.s. tiotals gånger större än morseljudfilen. Varje bildpunkt innehåller information om tre olika färger och varje färg kodas i en eller flera byte. Det är självklart att jag kan koda information, om jag så vill i pixlar i bilden t.ex. så att jag modifierar färgdata så att jag modifierar en färg så att om färgens värde är ”jämnt” d.v.s. 2, 4, 6 … 254 så skall färgen tolkas som en etta d.v.s. en bit med värdet = 1. På motsvarande sätt kan jag koda en nolla så att jag modifierar ett färgvärde till ”udda” som då tolkas som en bit=0. Förändringarna jag behöver göra är extremt små och sannolikt odetekterbara speciellt som mitt meddelande matar in varierande bitar. Slutresultatet är en bild som ser helt normal ut men i vilken jag kan koda in mängder av dolda data. Olika typer av steganografiska metoder används idag till att koda in t.e.x. copyright information i bilden vilket gör att det i efterhand går att bevisa vem som ägde rättigheterna till bilden.

Notera att det inte är självklart att ovan beskrivna kodningar överlever packning. Om jag konverterar min morse ljudfil till mp3 formatet så kommer filen att packas ihop betydligt. En mp3 kodning är inte förlustfri vilket betyder att om jag packar upp filen tillbaka till wav så har sannolikt mitt hemliga meddelande också förstörts. Samma princip gäller bilder. Enkla hemliga kodningar kan förstöras av packning till något icke förlustfritt format.

En motståndare som försöker hitta mina dolda meddelanden skulle sannolikt bli mycket misstänksam om jag ibland skulle skicka mp3 morsemeddelanden och andra gånger wav meddelanden. Lösningen skulle naturligtvis vara att alltid skicka wav-filer som är opackade.

Om stämning av en fiolstråke (del 1)

11/12/2020

Jag har beskrivit stämning av en fiolkropp, stämning av ett fiolstall etc. i olika artiklar. Jag har inte tidigare skrivit om stämning av en fiolstråke. Detta är den första artiken i en serie artiklar kring stämning av stråkar.

Det verkar självklart att fiolstråken har stor betydelse för hur ljud produceras i en fiol. Ljudet uppstår så att stråkens tagel som är hartzade och något ”klibbiga” kommer, beroende av strängens rörelser, att ha en friktion som ibland är dynamisk (låg) och ibland statisk (hög). Stråken kommer således att fastna/frigöras vilket överför energi från stråkens rörelse till de strängar stråken stryker mot. Processen är mycket komplicerad eftersom man kan vänta sig att det förutom vågrörelser i strängarna (många olika toner samtidigt i form av grundton+övertoner) med säkerhet också uppstår vågrörelser i taglens riktning i den spända stråken. Stråkens egna vibrationer blandas med vibrationerna i de spelade strängarna.

Jag ser som fysiker inga möjligheter att övertygande matematiskt hantera stråkens egenskaper och dess samverkan med det spelade instrumentet. Min utgångspunkt blir att se hur jag kan mäta vissa egenskaper hos stråken och koppla detta till ett specifikt instrument. Jag är intresserad av att se om jag via modifikationer av stråken kan åstadkomma hörbara förändringar i mitt referensinstrument som jag kallar min Kletzmerfiol.

Vilka egenskaper hos stråken kan förväntas ge hörbar effekt

Jag gör en lista över de egenskaper jag ”tror” kan ha betydelse och anger samtidigt varför.

  • Stråkstången kommer då man spelar att bidra med någon typ av egenljud.
  • Stråkstångens styvhet påverkar stångens egensvängningar som sannolikt syns som lågfrekventa resonanser i taglen.
  • Spänningen man justerar med spännskruven påverkar stråkens resonanser då spänningen i taglen förändras.
  • Stråkens spets utgör en styv fjäder som ger högfrekventa longitudinella resonaser i taglen.
  • Mängden tagel avgör hur hög spänning vi får i de enskilda taglen. Ju mera tagel stråken har desto lägre spänning per tagelstrå om alla övriga egenskaper hålls oförändrade.
  • Froschen utgör också en styv fjäder som kommer att ge högfrekventa longitudinella resonanser i taglen.

Ovanstående lista kan säkert kompletteras med ytterligare parametrar.

Vad kan jag mäta

Jag hittade en intressant länk till en engelskspråkig sida av David Langsather som beskriver ett sätt att justera en fiolstråke. Min utgångspunkt är att titta på vad han har att erbjuda och därefter se vad som går att verifiera via mätningar. Det kan också vara intressant att se om jag noterar några spelmässiga förändringar i en stråke jag stämmer. Notera att jag är amatörviolinist och jag har aldrig använt teknik såsom spel med hoppande stråke etc. vilket betyder att jag knappast kan uttala mig om dessa egenskaper. Min son är Sebastian är yrkesviolinist och doktorand som har studerat fiolspel lokalt i Finland, i Sverige samt i Schweitz. Sebastian kan garanterat ge kommentarer gällande hur trimning påverkar stråkens funktion.

Jag mäter stråkens knacktoner i specifika punkter och använder dessa mätningar till att avgöra om jag behöver göra Langsathers modifikationer på stråken samt var stråken skall modifieras.

Mätning av knackspektra

Följande utrustning används vid mätningarna.

  • En Røde NT1 mikrofon med stort membran.
  • Behringer UMC404HD USB ljudkort med fyra mikrofoningångar med Phantom spänningsmatning.
  • Ljudet mäts och processas med programmet Audacity på en iMac dator. Notera att det går att sätta upp samma mätomgivning på en Windows PC eller på en PC som kör Linux.
  • Fourierspektrum mäts för knackspektra med ett fönster med storleken 16834 mätpunkter. Fönstret måste använda många punkter för att vi skall få fram de detaljer i spektret vi studerar. Om vi har ett fönster med t.ex. 1024 punkter så kan vi inte stämma stråken till en specifik frekvens med precisionen +/- någon Hz.
  • Som hammare använder jag skaftet av en kökskniv helt i metall. Jag vill mäta knacktonen från stråken inte hammaren, därför vill jag att hammaren har helt annan täthet och hårdhet än stråken.

Knackspektra är intressanta genom att det mänskliga örat uppfattar att en knackning har en ”tonhöjd” trots att ett spektrum beräknat på knackljudet kan uppfattas som mest brus. Det visar sig dock att det i allmänhet i spektret finns en eller flera toppar inom det område det mänskliga örat är mest känsligt (300-3000Hz). Örat är mindre känsligt för lägre och högre frekvenser. Notera dock att det mänskliga örat hör över ett betydligt bredare spektrum (20-20000Hz) men att den största känsligheten är den ovan angivna. Det mänskliga örat kommer alltså att fungera som ett bandpassfilter.

Min uppfattning är att hjärnan ganska fritt kan välja frekvenstoppar från knackspektrets låga frekvenser och sätta stämpeln ”grundton” på den frekvensen. Lyssnaren uppfattar då att knacktonen har en tonhöjd som motsvarar ifrågavarande frekvenstopp. Ett problem är dock att hjärnan kan ha flera lämpliga toppar att välja mellan vilket leder till att olika personer kan uppfatta tonhöjden i samma knackning olika!

Som avslutning på den här artikeln visar jag ett knackspektrum för den kinesiska stråke jag använder som experimentmaterial. Notera att jag knackade endast tre gånger då jag mätte utgångsläget. Det visar sig att det lönar sig att knacka 10-20 ggr och beräkna spektret för hela knacksekvensen. Många knackningar ger ett mera lättläst spektrum.

Pilen visar på den obestämda topp vi vill förstärka genom slipning/sickling runt knackstället. Vi vill få fram en distinkt frekvenstopp nära 252 Hz så att samma topp återfinns längs hela stråken.

I nästa artikel i serien tittar vi på hur stämningsprocessen i praktiken kan ske. Jag är intresserad av kommentarer från läsare som använder en liknande teknik samt också av beskrivningar av andra metoder för justering av en stråke.


Pointman's

A lagrange point in life

THE HOCKEY SCHTICK

Lars Silén: Reflex och Spegling

NoTricksZone

Lars Silén: Reflex och Spegling

Big Picture News, Informed Analysis

Canadian journalist Donna Laframboise. Former National Post & Toronto Star columnist, past vice president of the Canadian Civil Liberties Association.

JoNova

Lars Silén: Reflex och Spegling

Climate Audit

by Steve McIntyre

Musings from the Chiefio

Techno bits and mind pleasers

Bishop Hill

Lars Silén: Reflex och Spegling

Watts Up With That?

The world's most viewed site on global warming and climate change

TED Blog

The TED Blog shares news about TED Talks and TED Conferences.

Larsil2009's Blog

Lars Silén: Reflex och Spegling

%d bloggare gillar detta: