Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Matthews Lab
Search
Search
Appearance
Log in
Personal tools
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
P2p mobile carriers
(section)
Page
Discussion
British English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 7.3. Option 3 - Se͡c̦̲̺͍̜̀ͅr͉̲̞è̜̝ͅt ̖c̮̝͠o̟͔̫͖͡n͏̖͎̲̞̱t̤̬̦̘̞ŕ̰͚̬͇͔a̯̠͠c̙̘t͕̱̫͝s == Enigma introduced the idea of “secret contracts” [secret-contracts]. What these are, is special programs that encapsulate secret information and allow programs to interact with them through special interfaces without anyone being able to extract the secrets inside. To illustrate this point in detail, consider the following program: <pre>program(s): return sha256(s + "my ultra secret info");</pre> With a secret contract it’s possible to give out this program to anyone without fear that the string “my ultra secret info” will be extracted. Enigma even makes it possible for programs to receive secrets dynamically, and do other complex computations without fear of leaking information. Once this concept is understood the original naive protocol can be changed to offer better security: <pre>// Pretend variables marked "secret" use 1337 crypto magic // that prevents people from seeing them in an active contract. decentralized_mobile_service_provider(): store_sim_key(secret sim_key): secret.sim_key = sim_key; compute_integrity_key(secret challenge): // For example -- XOR is not how its done on 2/3/4/5g. secret.integrity_key = secret.sim_key XOR challenge; compute_cipher_key(secret challenge): // Again -- not how it's done but as an example. return sha256("satoshi" + challenge + secret.sim_key); compute_msg_integrity(secret msg): if msg != for a standard call: return return hmac(msg, secret.integrity_key)</pre> '''The protocol then becomes this:''' # Seller calls store_sim_key(sim_key) and gives T-IMSI to buyer. # Buyer requests auth against the T-IMSI from the MsC. # MsC returns challenge to buyer. # Buyer calls compute_cipher_key(challenge) and uses key to encrypt challenge for an authentication response. # Response is given back to MsC. # Buyer calls compute_integrity_key(challenge). Now the buyer doesn’t need to receive an integrity key. The seller can make it accessible through a secret contract interface that only returns a valid IV for certain message types. Integrity checks are required for 3G, 4G, and 5G [msg-integrity]. Thus, the seller can restrict a buyer with secret contracts and they don’t need to learn a buyers session keys, either. <span id="redirecting-inbound-phone-calls"></span>
Summary:
Please note that all contributions to Matthews Lab may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Matthews Lab:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)