Ei kai enkkukaan niin paha etteikö siinä olisi jotakin hyvääkin

Edellinen Seuraava

Edellä mainittu Encyclopedia International ei ehkä ole aivan niin huono 1960-luvun tietosanakirja kuin aiemmin ajattelin, joskin vanhentunut ja tekniikan yksityiskohdissa puutteellinen. Se lie kuulunut koulun kirjaston ainoastaan opettajien käyttöön varattuun aineistoon, eikä siten ole paljoa yleisön käsissä kulunut. Päätös dumpata se muutamassa erässä kaupunginkirjaston vaihtokirjahyllyyn on edelleen pitävä.

Jotakin mielenkiintoistakin löytyi kirjasarjan toisesta osasta ARIZONA - BICKELL, nimittäin BASIC ENGLISH. Itse kieltä en niinkään arvosta, mutta tuo enkusta karsittu yksinkertaistettu kieli voisi muodostaa perustan taloudelliselle (ja salatulle) viestintäjärjestelmälle. Sanojen merkitys lienee melko selkeä ja yksiselitteinen suppeahkonkin kielitaidon pohjalta. Voihan sitä tarvittaessa selventää omilla säännöillään.

En ole erikoisempi lingvisti, mutta ehkä tästä pystyisi ajan mittaan kehittelemään jotakin. Epäilemättä tämä suppea sanasto on tarkoitettu tavallisen arkielämän tarpeisiin, joskin eräät asiat ovat saattaneet vuosikymmenten varrella hiukan muuttua. Vanhassa sanastossa ei löydy esimerkiksi kännykkää, pankkiautomaattia ja tietokonetta.

BASIC ENGLISH -kielessä lie sanoja vain 850 erilaista, joten kolmella 10-järjestelmän numerolla pystynee ilmaisemaan minkä tahansa kielen sanan. Laskin kertoo että 210 = 1024, joten kymmenellä bitillä pitäisi pärjätä. Jos lyhyemmät koodit varataan yleisemmille sanoille, niin keskimääräinen sanan pituus saadaan alle kymmenen bitin, vaikka Huffman-enkoodauksen otsikko viekin hiukan tilaa.

Sata sanaa pitkä teksti mahtuisi suoraan 32-järjestelmään koodattuna 200 merkkiä pitkään viestiin, jossa kukin merkki oikeastaan tarvitsee vain viisi bittiä. Jopa 125 tavua riittäisi 100 sanaa pitkän tekstin esittämiseen. Ei paha! Normaalitekstinä 100 sanaa voisi viedä tilaa sopivan epätaloudellisessa Unicode-merkistössä jopa kilotavun verran.

Yksityiskohtaista taloudellisen salakielen kuvausta en voi vielä tässä yhteydessä esittää, mutta haluan kirjata ylös kielen sanat ennenkuin luovun ko. kirjasta. Onhan selvää että aina samojen koodien käyttö sanoille ei voi olla mitenkään kryptistä oikeasti. Minkä tahansa koodin pitäisi ihanteellisesti voida tarkoittaa mitä tahansa kielen sanaa samalla todennäköisyydellä, muuten koodatun viestin avaaminen on liian helppoa. Kryptograafisten periaatteiden mukaan viestin avaamiseen tarvitaan lisäksi myös oikea avain, jota ilman viestin tulee olla (viholliselle/ulkopuoliselle) jokseenkin mahdoton ymmärtää. Ihanteellisesti kryptogrammi on "valkoista kohinaa" jossa ei ole alkuperäisen viestin rakennetta.

Tavallisella enkulla en halua kirjoittaa paljon mitään mutta tällaisella tiiviillä kielellä voisin ehkä jotakin kirjoittaakin. Liian erikoisia ilmauksia ja tarpeettomia anglismeja on syytä välttää. Kommunikoinnissa käytetyn kielen tulee olla yksinkertaista, loogisuuteen pyrkivää ja yksiselitteistä, eikä mitään Shakespearen sonetteja.

Modernimpia ja erikoisempia sanoja tässä aikansa kansainväliseksi kieleksi tarkoitetussa kielessä ei tietenkään ole. Välilyönti, välimerkkejä, numeroita ja sanojen erilaisia taivutusmuotoja tarvitaan myös. Ongelmia ja puutteita voisi paikata jotenkin. Erikoisia sanoja ja nimiä voisi kirjoittaa kirjain tai tavu kerrallaan joka riittäisi niiden salaamiseen? En ole aivan varma riittääkö tämä esitys "täydelliseen" ja käyttökelpoiseen kieleen, mutta katsotaan mitä kissa on raahannut sisään ...

Tokihan kielen käyttöön on totuttava ennen sen vakavaa käyttöä. Nimisanoja, verbejä ja adjektiiveja ei pidä sotkea keskenään. Ääntämisellä ei ole merkitystä kunhan tiedetään mitä sanaa tarkoitetaan. On turhaa noudattaa kaikkia englannin kieliopin sääntöjä. Jonkinlainen kryptaus on toivottavaa, sillä tekstin ei pitäisi olla aivan helposti suoraan luettavissa.

Oikeastaan sellainen yleiskäyttöinen salakirjoitus olisi ehkä kaikkein toivottavinta joka koostuu järkevistä täydellisistä lauseista. Se näyttäisi aivan normaalilta tekstiltä, mutta todellinen merkitys olisi aivan erilainen. Se voisi näyttää vaikkapa normihenkilön kirjoittamalta vapaa-ajan viettoon liittyvältä blogilta tai harmittomalta suositulle julkiselle foorumille lähetetyltä anonyymiltä viestiltä, mutta sisältäisi EMP-pommin yksityiskohtaiset teko-ohjeet tai päämajan operaatiopäällikön maanalaiselle taistelusolulle antaman teloitusmääräyksen. Se ei näyttäisi lainkaan salakirjoitukselta, mutta merkitys olisi salattu normaalin vaarattoman näköisiin lauseisiin. Susi lampaan vaatteissa. Se vaan vaatisi sellaisen tekoälyn jota minun hallussani ei ole.

Eräs vaikeasti salattava seikka on se kuka lähettää viestin ja kenelle. Vaikka viestin sisältö olisi täysin käsittämätön, niin lähettäjä ja vastaanottaja voidaan näin yhdistää toisiinsa. Kun viesti on helposti havaittavissa salakirjoitetuksi niin sen murtamiseen voidaan kohdistaa resursseja. Lähettäjää ja vastaanottajaa voidaan erikoisesti tarkkailla, koska salattu viesti kertoo että heillä on jotakin salattavaa. Niinpä viestien pitäisi ihanteellisesti olla vaikeasti lähettäjään sidottavissa, niiden pitäisi olla kenen tahansa luettavissa, eikä niiden pitäisi näyttää salakirjoitetuilta vaikka ovatkin. Kanavan turvallisuuteen ei pidä luottaa tietokoneistetussa nettiympäristössä. Tämä on kylläkin aika kaukainen haavekuva ...


BASIC ENGLISH - 850 sanaa

Structural Words
100
NOUNS ADJECTIVES
400 General 200 Pictured 100 General 50 Opposites
  1. Come
  2. Get
  3. Give
  4. Go
  5. Keep
  6. Let
  7. Make
  8. Put
  9. Seem
  10. Take
  11. Be
  12. Do
  13. Have
  14. Say
  15. See
  16. Send
  17. May
  18. Will
  19. About
  20. Across
  21. After
  22. Against
  23. Among
  24. At
  25. Before
  26. Between
  27. By
  28. Down
  29. From
  30. In
  31. Off
  32. On
  33. Over
  34. Through
  35. To
  36. Under
  37. Up
  38. With
  39. As
  40. For
  41. Of
  42. Till
  43. Than
  44. A
  45. The
  46. All
  47. Any
  48. Every
  49. No
  50. Other
  51. Some
  52. Such
  53. That
  54. This
  55. I
  56. He
  57. You
  58. Who
  59. And
  60. Because
  61. But
  62. Or
  63. If
  64. Though
  65. While
  66. How
  67. When
  68. Where
  69. Why
  70. Again
  71. Ever
  72. Far
  73. Forward
  74. Here
  75. Near
  76. Now
  77. Out
  78. Still
  79. Then
  80. There
  81. Together
  82. Well
  83. Almost
  84. Enough
  85. Even
  86. Little
  87. Much
  88. Not
  89. Only
  90. Quite
  91. So
  92. Very
  93. Tomorrow
  94. Yesterday
  95. North
  96. South
  97. East
  98. West
  99. Please
  100. Yes
  1. Account
  2. Act
  3. Addition
  4. Adjustment
  5. Advertisement
  6. Agreement
  7. Air
  8. Amount
  9. Amusement
  10. Animal
  11. Answer
  12. Apparatus
  13. Approval
  14. Argument
  15. Art
  16. Attack
  17. Attempt
  18. Attention
  19. Attraction
  20. Authority
  21. Back
  22. Balance
  23. Base
  24. Behavior
  25. Belief
  26. Birth
  27. Bit
  28. Bite
  29. Blood
  30. Blow
  31. Body
  32. Brass
  33. Bread
  34. Breath
  35. Brother
  36. Building
  37. Burn
  38. Burst
  39. Business
  40. Butter
  41. Canvas
  42. Care
  43. Cause
  44. Chalk
  45. Chance
  46. Change
  47. Cloth
  48. Coal
  49. Color
  50. Comfort
  51. Comittee
  52. Company
  53. Comparison
  54. Competition
  55. Condition
  56. Connection
  57. Control
  58. Cook
  59. Copper
  60. Copy
  61. Cork
  62. Cotton
  63. Cough
  64. Country
  65. Cover
  66. Crack
  67. Credit
  68. Crime
  69. Crush
  70. Cry
  71. Current
  72. Curve
  73. Damage
  74. Danger
  75. Daughter
  76. Day
  77. Death
  78. Debt
  79. Decision
  80. Degree
  81. Design
  82. Desire
  83. Destruction
  84. Detail
  85. Development
  86. Digestion
  87. Direction
  88. Discovery
  89. Discussion
  90. Disease
  91. Disgust
  92. Distance
  93. Distribution
  94. Division
  95. Doubt
  96. Drink
  97. Driving
  98. Dust
  99. Earth
  100. Edge
  1. Education
  2. Effect
  3. End
  4. Error
  5. Event
  6. Example
  7. Exchange
  8. Existence
  9. Expansion
  10. Experience
  11. Expert
  12. Fact
  13. Fall
  14. Family
  15. Father
  16. Fear
  17. Feeling
  18. Fiction
  19. Field
  20. Fight
  21. Fire
  22. Flame
  23. Flight
  24. Flower
  25. Fold
  26. Food
  27. Force
  28. Form
  29. Friend
  30. Front
  31. Fruit
  32. Glass
  33. Gold
  34. Government
  35. Grain
  36. Grass
  37. Grip
  38. Group
  39. Growth
  40. Guide
  41. Harbor
  42. Harmony
  43. Hate
  44. Hearing
  45. Heat
  46. Help
  47. History
  48. Hole
  49. Hope
  50. Hour
  51. Humor
  52. Ice
  53. Idea
  54. Impulse
  55. Increase
  56. Industry
  57. Ink
  58. Insect
  59. Instrument
  60. Insurance
  61. Interest
  62. Invention
  63. Iron
  64. Jelly
  65. Join
  66. Journey
  67. Judge
  68. Jump
  69. Kick
  70. Kiss
  71. Knowledge
  72. Land
  73. Language
  74. Laugh
  75. Law
  76. Lead
  77. Learning
  78. Leather
  79. Letter
  80. Level
  81. Lift
  82. Light
  83. Limit
  84. Linen
  85. Liquid
  86. List
  87. Look
  88. Loss
  89. Love
  90. Machine
  91. Man
  92. Manager
  93. Mark
  94. Market
  95. Mass
  96. Meal
  97. Measure
  98. Meat
  99. Meeting
  100. Memory
  1. Metal
  2. Middle
  3. Milk
  4. Mind
  5. Mine
  6. Minute
  7. Mist
  8. Money
  9. Month
  10. Morning
  11. Mother
  12. Motion
  13. Mountain
  14. Move
  15. Music
  16. Name
  17. Nation
  18. Need
  19. News
  20. Night
  21. Noise
  22. Note
  23. Number
  24. Observation
  25. Offer
  26. Oil
  27. Operation
  28. Opinion
  29. Order
  30. Organization
  31. Ornament
  32. Owner
  33. Page
  34. Pain
  35. Paint
  36. Paper
  37. Part
  38. Paste
  39. Payment
  40. Peace
  41. Person
  42. Place
  43. Plant
  44. Play
  45. Pleasure
  46. Point
  47. Poison
  48. Polish
  49. Porter
  50. Position
  51. Powder
  52. Power
  53. Price
  54. Print
  55. Process
  56. Produce
  57. Profit
  58. Property
  59. Prose
  60. Protest
  61. Pull
  62. Punishment
  63. Purpose
  64. Push
  65. Quality
  66. Question
  67. Rain
  68. Range
  69. Rate
  70. Ray
  71. Reaction
  72. Reading
  73. Reason
  74. Record
  75. Regret
  76. Relation
  77. Religion
  78. Representative
  79. Request
  80. Respect
  81. Rest
  82. Reward
  83. Rhythm
  84. Rice
  85. River
  86. Road
  87. Roll
  88. Room
  89. Rub
  90. Rule
  91. Run
  92. Salt
  93. Sand
  94. Scale
  95. Science
  96. Sea
  97. Seat
  98. Secretary
  99. Selection
  100. Self
  1. Sense
  2. Servant
  3. Sex
  4. Shade
  5. Shake
  6. Shame
  7. Shock
  8. Side
  9. Sign
  10. Silk
  11. Silver
  12. Sister
  13. Size
  14. Sky
  15. Sleep
  16. Slip
  17. Slope
  18. Smash
  19. Smell
  20. Smile
  21. Smoke
  22. Sneeze
  23. Snow
  24. Soap
  25. Society
  26. Son
  27. Song
  28. Sort
  29. Sound
  30. Soup
  31. Space
  32. Stage
  33. Start
  34. Statement
  35. Steam
  36. Steel
  37. Step
  38. Stitch
  39. Stone
  40. Stop
  41. Story
  42. Stretch
  43. Structure
  44. Substance
  45. Sugar
  46. Suggestion
  47. Summer
  48. Support
  49. Surprise
  50. Swim
  51. System
  52. Talk
  53. Taste
  54. Tax
  55. Teaching
  56. Tendency
  57. Test
  58. Theory
  59. Thing
  60. Thought
  61. Thunder
  62. Time
  63. Tin
  64. Top
  65. Touch
  66. Trade
  67. Transport
  68. Trick
  69. Trouble
  70. Turn
  71. Twist
  72. Unit
  73. Use
  74. Value
  75. Verse
  76. Vessel
  77. View
  78. Voice
  79. Walk
  80. War
  81. Wash
  82. Waste
  83. Water
  84. Wave
  85. Wax
  86. Way
  87. Weather
  88. Week
  89. Weight
  90. Wind
  91. Wine
  92. Winter
  93. Woman
  94. Wood
  95. Wool
  96. Word
  97. Work
  98. Wound
  99. Writing
  100. Year
  1. Angle
  2. Ant
  3. Apple
  4. Arch
  5. Arm
  6. Army
  7. Baby
  8. Bag
  9. Ball
  10. Band
  11. Basin
  12. Basket
  13. Bath
  14. Bed
  15. Bee
  16. Bell
  17. Berry
  18. Bird
  19. Blade
  20. Board
  21. Boat
  22. Bone
  23. Book
  24. Boot
  25. Battle
  26. Box
  27. Boy
  28. Brain
  29. Brake
  30. Branch
  31. Brick
  32. Bridge
  33. Brush
  34. Bucket
  35. Bulb
  36. Button
  37. Cake
  38. Camera
  39. Card
  40. Carriage
  41. Cart
  42. Cat
  43. Chain
  44. Cheese
  45. Chest
  46. Chin
  47. Church
  48. Circle
  49. Clock
  50. Cloud
  51. Coat
  52. Collar
  53. Comb
  54. Cord
  55. Cow
  56. Cup
  57. Curtain
  58. Cushion
  59. Dog
  60. Door
  61. Drain
  62. Drawer
  63. Dress
  64. Drop
  65. Ear
  66. Egg
  67. Engine
  68. Eye
  69. Face
  70. Farm
  71. Feather
  72. Finger
  73. Fish
  74. Flag
  75. Floor
  76. Fly
  77. Foot
  78. Fork
  79. Fowl
  80. Frame
  81. Garden
  82. Girl
  83. Glove
  84. Goat
  85. Gun
  86. Hair
  87. Hammer
  88. Hand
  89. Hat
  90. Head
  91. Heart
  92. Hook
  93. Horn
  94. Horse
  95. Hospital
  96. House
  97. Island
  98. Jewel
  99. Kettle
  100. Key
  1. Knee
  2. Knife
  3. Knot
  4. Leaf
  5. Leg
  6. Library
  7. Line
  8. Lip
  9. Lock
  10. Map
  11. Match
  12. Monkey
  13. Moon
  14. Mouth
  15. Muscle
  16. Nail
  17. Neck
  18. Needle
  19. Nerve
  20. Net
  21. Nose
  22. Nut
  23. Office
  24. Orange
  25. Oven
  26. Parcel
  27. Pen
  28. Pencil
  29. Picture
  30. Pig
  31. Pin
  32. Pipe
  33. Plane
  34. Plate
  35. Plough
  36. Pocket
  37. Pot
  38. Potato
  39. Prison
  40. Pump
  41. Rail
  42. Rat
  43. Receipt
  44. Ring
  45. Rod
  46. Roof
  47. Root
  48. Sail
  49. School
  50. Scissors
  51. Screw
  52. Seed
  53. Sheep
  54. Shelf
  55. Ship
  56. Shirt
  57. Shoe
  58. Skin
  59. Skirt
  60. Snake
  61. Sock
  62. Spade
  63. Sponge
  64. Spoon
  65. Spring
  66. Square
  67. Stamp
  68. Star
  69. Station
  70. Stem
  71. Stick
  72. Stocking
  73. Stomach
  74. Store
  75. Street
  76. Sun
  77. Table
  78. Tail
  79. Thread
  80. Throat
  81. Thumb
  82. Ticket
  83. Toe
  84. Tongue
  85. Tooth
  86. Town
  87. Train
  88. Tray
  89. Tree
  90. Trousers
  91. Umbrella
  92. Wall
  93. Watch
  94. Wheel
  95. Whip
  96. Whistle
  97. Window
  98. Wing
  99. Wire
  100. Worm
  1. Able
  2. Acid
  3. Angry
  4. Automatic
  5. Beautiful
  6. Black
  7. Boiling
  8. Bright
  9. Broken
  10. Brown
  11. Cheap
  12. Chemical
  13. Chief
  14. Clean
  15. Clear
  16. Common
  17. Complex
  18. Conscious
  19. Cut
  20. Deep
  21. Dependent
  22. Early
  23. Elastic
  24. Electric
  25. Equal
  26. Fat
  27. Fertile
  28. First
  29. Fixed
  30. Flat
  31. Free
  32. Frequent
  33. Full
  34. General
  35. Good
  36. Great
  37. Gray
  38. Hanging
  39. Happy
  40. Hard
  41. Healthy
  42. High
  43. Hollow
  44. Inportant
  45. Kind
  46. Like
  47. Living
  48. Long
  49. Male
  50. Married
  51. Material
  52. Medical
  53. Military
  54. Natural
  55. Necessary
  56. New
  57. Normal
  58. Open
  59. Parallel
  60. Past
  61. Physical
  62. Political
  63. Poor
  64. Possible
  65. Present
  66. Private
  67. Probable
  68. Quick
  69. Quiet
  70. Ready
  71. Red
  72. Regular
  73. Responsible
  74. Right
  75. Round
  76. Same
  77. Second
  78. Separate
  79. Serious
  80. Sharp
  81. Smooth
  82. Sticky
  83. Stiff
  84. Straight
  85. Strong
  86. Sudden
  87. Sweet
  88. Tall
  89. Thick
  90. Tight
  91. Tired
  92. True
  93. Violent
  94. Waiting
  95. Warm
  96. Wet
  97. Wide
  98. Wise
  99. Yellow
  100. Young
  1. Awake
  2. Bad
  3. Bent
  4. Bitter
  5. Blue
  6. Certain
  7. Cold
  8. Complete
  9. Cruel
  10. Dark
  11. Dead
  12. Dear
  13. Delicate
  14. Different
  15. Dirty
  16. Dry
  17. False
  18. Feeble
  19. Female
  20. Foolish
  21. Future
  22. Green
  23. Ill
  24. Last
  25. Late
  26. Left
  27. Loose
  28. Loud
  29. Low
  30. Mixed
  31. Narrow
  32. Old
  33. Opposite
  34. Public
  35. Rough
  36. Sad
  37. Safe
  38. Secret
  39. Short
  40. Shut
  41. Simple
  42. Slow
  43. Small
  44. Soft
  45. Solid
  46. Special
  47. Strange
  48. Thin
  49. White
  50. Wrong

Lisäksi tarvitaan BASIC ENGLISH -sanojen päätteet sekä tarvittavat lisäsanat ja kieleen varsinaisesti kuulumattomat erikoissanat, erilaiset väli- ja erikoismerkit, erilliset kirjaimet A ... Ö sekä numerot 0 ... 9, että voitaisiin esim. kahdella 32-järjestelmän koodilla ilmaista kaikki tarvittavat 1024 sanaa ja merkkiä. Sanojen välillä ei välttämättä tarvitse käyttää välilyöntiä koska voidaan tulkita että erillisten sanojen välille normaalisti kuuluu välilyönti.

Koodattaessa tarvittavia lisäsanoja ja -merkkejä
(Yhteensä 1024 - 850 = 174 kpl)
LISÄSANA PÄÄTE KIRJAIN NUMERO MERKKI ERIKOISSANA
  1. MORE
  2. MOST
  3. DO
  4. THAT
  5. THIS
  6. I
  7. HE
  8. YOU
  9. WHO
  10. Monday
  11. Tuesday
  12. Wednesday
  13. Thursday
  14. Friday
  15. Saturday
  16. Sunday
  17. January
  18. February
  19. March
  20. April
  21. May
  22. June
  23. July
  24. August
  25. September
  26. November
  27. December
  28. STOP
  29. Meter(s)
  30. Kilogram(s)
  31. Hour(s)
  32. Centimeter(s)
  33. Kilometer(s)
  34. Gram(s)
  35. Ton(s)
  36. Minute(s)
  37. Second(s)
  38. Liter(s)
  39. Milli
  40. Kilo
  41. Mega
  42. Giga
  43. ...
  1. -S
  2. -ER
  3. -ING
  4. -ED
  5. -LY
  6. :ST
  7. :ND
  8. :RD
  9. :TH
  1. A
  2. B
  3. C
  4. D
  5. E
  6. F
  7. G
  8. H
  9. I
  10. J
  11. K
  12. L
  13. M
  14. N
  15. O
  16. P
  17. Q
  18. R
  19. S
  20. T
  21. U
  22. Ü
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. Å
  29. Ä
  30. Ö
  1. One
  2. Two
  3. Three
  4. Four
  5. Five
  6. Six
  7. Seven
  8. Eight
  9. Nine
  10. Ten
  11. Eleven
  12. Twelve
  13. Thirteen
  14. Fourteen
  15. Fifteen
  16. Sixteen
  17. Seventeen
  18. Eighteen
  19. Nineteen
  20. Twenty
  21. I
  22. II
  23. III
  24. IV
  25. V
  26. VI
  27. VII
  28. VIII
  29. IX
  30. X
  31. C
  32. L
  33. M
  34. 0
  35. 1
  36. 2
  37. 3
  38. 4
  39. 5
  40. 6
  41. 7
  42. 8
  43. 9
  1.   (välilyönti)
  2. . (piste)
  3. , (pilkku
  4. ? (kysymysmerkki)
  5. CRLF (rivin loppumerkki)
  6. ! (huutomerkki)
  7. @ (miukumauku)
  8. € (euro)
  9. £ (punta)
  10. $ (dollari)
  11. " (lainausmerkki)
  12. + (plus)
  13. - (miinus/väliviiva)
  14. = (on yhtä kuin)
  15. * (tähti/kertomerkki)
  16. / (jakoviiva/kautta)
  17. ( (sulku auki)
  18. ) (sulku kiinni)
  19. % (prosentti)
  20. & (et/ja)
  21. < (pienempi kuin)
  22. > (suurempi kuin)
  23. : (kaksoispiste)
  24. ; (puolipiste)
  25. _ (alaviiva)
  26. ' (heittomerkki)
  27. ½ (puoli)
  28. TAB (tabulaattori)
  29. [ (hakasulku auki)
  30. ] (hakasulku kiinni)
  31. { (aaltosulku auki)
  32. } (aaltosulku kiinni)
  33. # (numeromerkki)
  34. ¤ (aurinkomerkki)
  35. ^ (potenssiinkorotus)
  36. ~ (tilde)
  37. ...
  1. {ERIKOISSANA#01}
  2. {ERIKOISSANA#02}
  3. {ERIKOISSANA#03}
  4. {ERIKOISSANA#04}
  5. {ERIKOISSANA#05}
  6. {ERIKOISSANA#06}
  7. {ERIKOISSANA#07}
  8. {ERIKOISSANA#08}
  9. {ERIKOISSANA#09}
  10. {ERIKOISSANA#10}
  11. {ERIKOISSANA#11}
  12. ...

Systeemin kehittely on vielä kesken ... Erilaisia sanoja ja merkkejä täytyisi olla yhteensä 1024 kappaletta, niiden koodit välillä 0 ... 1023.

Sanojen ja merkkien muuntaminen luvuksi tapahtuu siten että ryhmälle nakitettuun peruslukuun lisätään sanan tai merkin järjestysnumero ryhmässään yhdellä vähennettynä. Esimerkiksi jos halutaan muuntaa toinen erikoissana {ERIKOISSANA#02} - mitä sitten merkinneekään - luvuksi ja sen ryhmän perusluku olkoon esimerkiksi tasan 1000 niin luku olisi 1000 + (2 - 1) = 1001.

Sanojen ja merkkien ryhmien peruslukujen porrastuksen avulla huolehditaan siitä että jokainen selväkielinen koodi on yksikäsitteinen molempiin suuntiin, jokaista sanaa ja merkkiä vastaa tietty uniikki numeerinen koodi.

Luvut 0 ... 1023 voidaan esittää 32-järjestelmässä kahdella 32-järjestelmän koodilla ( arvot välillä 0 ... 31 ) jotka saadaan yhdistämällä 10 numeroa ja sopivat 22 kirjainta joita ei voi käsin kirjoitettuna sekoittaa numeroihin (esim. isot kirjaimet O ja I helposti sekoittuisivat saman näköisiin numeroihin 0 ja 1). Nimittäin on 210 = 1024 = 25 * 25 = 32 * 32

Kerta-avaimen avulla viestin kryptaus ja avaus toimii yksinkertaisesti aina saman vakiomoduluksen 1024 kanssa. Olkoonpa esimerkiksi kryptattava sana jonka koodi on 666 ja kerta-avaimen vastaava periaatteessa satunnainen avainluku olkoon esimerkiksi 789. Nämä luvut lasketaan yhteen modulo 1024 : 666 + 789 (mod 1024) = 1455 (mod 1024) ja kun saadusta - arvoltaan luvun 1023 ylittävästä - summasta vähennetään modulus 1024 saadaan 1455 (mod 1024) = 1455 - 1024 = 431 joten luku 431 siis edustaa tässä tapauksessa alkuperäistä sanaa. Muunnettuna 32-järjestelmään se voidaan esittää taloudellisemmin kahdella koodilla sovitussa merkistössä.

Viestin lähettäjä lähettää siis vastaanottajalle tämän esimerkin osalta kryptatun luvun 431. Sen todellinen merkitys on 666 - mikä sitä vastaava sana lieneekään - mutta edes tuota oikeaa lukua 666 ei ulkopuolinen voi ilman avainta tietää. Lähetettävä kryptattu luku voisi avaimesta riippuen aivan hyvin olla mikä tahansa luku välillä 0 ... 1023, riippumatta siitä mikä on sen selväkielinen merkitys.

Avainta ei suinkaan lähetetä kanavaan. Jos joku asiaankuulumaton sieppaa salatun viestin, hän ei saa siitä selkoa ilman avainta, vaikka tietäisi kaikki muut toteutuksen yksityiskohdat. Vaikka salakuuntelija tietäisikin että kanavassa siirtyvä luku täytyy olla viestisanan ja avainluvun summa modulo 1024, niin hän ei saa selville viestisanaa koska hän ei tiedä ko. avainlukua.

Esimerkin salattu viestiluku saapuu sitten oikealle vastaanottajalleen. Salauksen avaaminen tapahtuu niin että kryptatusta luvusta vähennetään se sama satunnainen avainluku 789 ja jos erotus on negatiivinen niin tarvittaessa lisätään modulus 1024. Esimerkin kryptattu luku 431 avautuu siis näin ikään : 431 - 789 (mod 1024) = -358 (mod 1024) = -358 + 1024 = 1024 - 358 = 666 joka on sen saman sanan koodi josta lähdettiin, kuten pitääkin olla. Avattaessa salakirjoitus osapuolten välillä siirretystä käsittämättömästä kryptogrammista syntyy sana tai merkki kerrallaan ymmärrettävä sisältö joka on sama kuin lähettäjän selväteksti.

Eri sanoille tietenkin käytetään erilaisia avainlukuja. Avain on kertakäyttöinen ja sisältää samalla todennäköisyydellä lukuja 0 ... 1023 tai 1 ... 1024. Avaimen lukuja on kryptattaessa ja avattaessa käytettävä samassa järjestyksessä. Avaimen on oltava vähintään yhtä pitkä kuin salakirjoitettava teksti. Samaa avainta ei käytetä eri viesteille eikä avainta toisteta samassa viestissä ; avaimen täytyy olla riittävän pitkä. Jos avain on pitempi kuin viesti niin viestin loppuun lisätään yhdentekeviä merkkejä niin että pituus tulee täyteen. Lyhyissä viesteissä on pelkästään hyvä ettei kryptogrammin pituus paljasta selkokielisen viestin asiasisällön tarkkaa pituutta.

Satunnaisen avaimen ansiosta mikä tahansa selväkielinen sana tai merkki voi kryptattaessa muuttua miksi tahansa saman systeemin sanaksi tai merkiksi samalla todennäköisyydellä. Tämä tekee salauksesta turvallisen kunhan avain ei joudu ulkopuolisiin käsiin. Avaimet täytyy osapuolille jakaa etukäteen ja ne on syytä tuhota käytön jälkeen.

Oikein toteutettua kerta-avaimella salausta ei pysty tietokoneella murtamaan, olkoon käytettävissä mikä tahansa määrä laskentatehoa. Kokeilemalla läpi kaikki mahdolliset avaimen yhdistelmät voi tietenkin tuottaa kaikki mahdolliset sen pituiset viestit. Osa tuloksista on luultavasti vääriä koska sisältävät pelkkää siansaksaa, mutta jäljelle jää suuri joukko mahdollisuuksia joista ei pysty osoittamaan sitä oikeaa. Kaikki eri mahdollisuudet ovat yhtä todennäköisiä.

Jos meillä on 1000 sanaa pitkä viesti jossa kukin sana voi olla jokin 1000:sta vaihtoehdosta, niin mahdollisten erilaisten viestien määrä on 10001000 eli (10 * 10 * 10)1000 joka on aika iso luku 101000 * 101000 * 101000 = 101000+1000+1000 = 103000. Siinä on siis 10-järjestelmässä ilmaistuna noin 3000 numeroa. Kaikki sanojen yhdistelmät eivät ehkä ole kovin järkeviä, mutta tuohon määrään sisältyy silti erittäin suuri joukko viestejä jotka voisivat merkitä jotakin. Tarkistettavaa on aika paljon. Jos pystyy täydellisesti käsittelemään yhden vaihtoehtoisen viestin nanosekunnissa (10-9 sekuntia eli sekunnin miljardisosa ; vaatinee koneelta terahertsitaajuuksia) niin vuorokaudessa pystyy käsittelemään noin 864 * 1011 viestiä ja vuodessa noin 315,576 * 1014 viestiä. Tuhannessa vuodessa pystyisi siis käsittelemään vain noin 3,2 * 1019 viestiä, olettaen että tietokone toimii häiriöttä niin pitkään. Siitä vaan on - tota noin - vielä aika tavalla matkaa lukuun 103000 kun miljoonassa vuodessakin tshekattaisiin vain 3 * 1022 viestiä eli kovin pieni murto-osa kokonaisuudesta.

Kärjistäen voisi ilmaista että alkuperäinen viesti on voinut olla samalla todennäköisyydellä sekä "NO F-WORD WAY" että "YES, YES, YES!!!" - tai mitä tahansa näiden väliltä - eikä ilman oikeaa avainta pysty sanomaan mikä näistä on se oikea. Viestin murtajan kannalta kaikki eri yhdistelmät ovat keskenään aivan yhtä oikeita, joten hän ei voi saada mitään varsinaista tietoa viestin todellisesta sisällöstä.

On ehkä hyvä ajatus välttää liiallista säännöllisyyttä viestin laadinnassa. Viestiin kannattaa ehkä tehdä tahallisia virheitä jotka eivät estä ydinsisällön ymmärtämistä. Jossakin tilanteessa murtaja saattaa nimittäin ehkä saada etua siitä jos hän voi luottaa että viesti on aivan tarkasti tietyn muotoinen. Epäsäännöllisyys ja vaihtelu on hyvästä. Kryptattaessa ei yleisesti ole hyvä ajatus noudattaa aina samaa kaavaa, samojen sanojen ei aina saa olla samalla kohdalla. Tämä voi auttaa sellaisissa rajatapauksissa että viesti on jostakin syystä osittain murtunut tai avain on osittain vuotanut.

Huffman-koodaus perustuu siihen että viestin pituutta voidaan ehkä lyhentää käyttämällä siinä eniten esiintyville koodeille lyhyempiä binäärisiä koodeja. Runsaasti esiintyvä sana voidaan koodata lyhyellä binäärisellä lukujonolla "1" tai "01" ja harvinainen sana pitemmällä binäärisellä lukujonolla "00000000000001". Lukujono loppuu aina ykköseen joten ykkönen on sanan lopun merkki silloinkin kun ykköset ja nollat ovat pitemmän kokonaisuuden sisällä. Viestissä esiintymättömiä sanoja ja merkkejä ei tarvitse koodata lainkaan. Periaatteessa sanojen binääriset lukujonot liitetään yhteen peräkkäin ja niistä muodostetaan esim. 32-järjestelmän lukuja niin että samaan 32-järjestelmän lukuun voi sisältyä useita lyhyiden sanojen binäärisiä esityksiä. Sanojen tavurajat eivät säily. Sanan loppu koodin sisällä tunnistetaan loppubitistä "1". Viestin otsikkotietoihin tarvitaan viestissä esiintyvien koodien esitystapa siten että lyhyemmät koodit tulevat ensin. Otsikossa esintyvät koodit tarkoittavat siis järjestyksessä binäärisiä lukujonoja "1", "01", "001", "0001", "00001", "000001" jne, vaikka näitä binäärisiä koodeja ei sinänsä olekaan otsikossa mainittu. Otsikon pituus on syytä esittää ihan ensimmäisenä että tiedetään missä otsikko loppuu ja varsinainen viesti alkaa.

Kerta-avaimen ("One-Time-Pad" eli OTP) salauksen ja Huffman-koodauksen järkevä yhdistäminen epäilemättä olisi jonkinlainen haaste. Luulisin että Huffman-koodaus menee hukkaan jos sitä ei tehdä ennen salakirjoitusta. Salakirjoitus levittää koodit tarpeettomasti laajemmalle alueelle.


Galleria