US20220191176A1 - System and method for routing-based internet security - Google Patents
System and method for routing-based internet security Download PDFInfo
- Publication number
- US20220191176A1 US20220191176A1 US17/685,410 US202217685410A US2022191176A1 US 20220191176 A1 US20220191176 A1 US 20220191176A1 US 202217685410 A US202217685410 A US 202217685410A US 2022191176 A1 US2022191176 A1 US 2022191176A1
- Authority
- US
- United States
- Prior art keywords
- memory
- bus
- message
- data
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 188
- 230000015654 memory Effects 0.000 claims abstract description 500
- 238000004891 communication Methods 0.000 claims description 183
- 238000003860 storage Methods 0.000 claims description 117
- 238000005516 engineering process Methods 0.000 claims description 69
- 230000006870 function Effects 0.000 claims description 41
- 238000013507 mapping Methods 0.000 claims description 38
- 230000003287 optical effect Effects 0.000 claims description 34
- 230000005291 magnetic effect Effects 0.000 claims description 28
- 239000004020 conductor Substances 0.000 claims description 26
- 239000004065 semiconductor Substances 0.000 claims description 20
- 230000011664 signaling Effects 0.000 claims description 19
- 239000003990 capacitor Substances 0.000 claims description 13
- 238000004804 winding Methods 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims description 5
- 210000003813 thumb Anatomy 0.000 claims description 3
- 238000007493 shaping process Methods 0.000 claims description 2
- 238000012384 transportation and delivery Methods 0.000 abstract description 31
- 235000008694 Humulus lupulus Nutrition 0.000 abstract description 18
- 230000000670 limiting effect Effects 0.000 description 99
- 239000010410 layer Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 38
- 230000008569 process Effects 0.000 description 37
- 241000234282 Allium Species 0.000 description 30
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 30
- 108091006146 Channels Proteins 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 27
- 230000013011 mating Effects 0.000 description 27
- 230000007246 mechanism Effects 0.000 description 27
- 230000002093 peripheral effect Effects 0.000 description 27
- 239000000835 fiber Substances 0.000 description 24
- 238000012545 processing Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 20
- 238000000638 solvent extraction Methods 0.000 description 20
- 230000032258 transport Effects 0.000 description 20
- 230000001413 cellular effect Effects 0.000 description 17
- 230000010354 integration Effects 0.000 description 16
- 230000006855 networking Effects 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 11
- 229910052710 silicon Inorganic materials 0.000 description 11
- 239000010703 silicon Substances 0.000 description 11
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 10
- 238000013461 design Methods 0.000 description 10
- 239000003999 initiator Substances 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 239000000758 substrate Substances 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 238000011012 sanitization Methods 0.000 description 9
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 241000282412 Homo Species 0.000 description 6
- 238000003491 array Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000006378 damage Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 238000004549 pulsed laser deposition Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- 239000010949 copper Substances 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000013478 data encryption standard Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000004033 plastic Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012358 sourcing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013506 data mapping Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 230000005294 ferromagnetic effect Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 229910052594 sapphire Inorganic materials 0.000 description 2
- 239000010980 sapphire Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- JEOQACOXAOEPLX-WCCKRBBISA-N (2s)-2-amino-5-(diaminomethylideneamino)pentanoic acid;1,3-thiazolidine-4-carboxylic acid Chemical compound OC(=O)C1CSCN1.OC(=O)[C@@H](N)CCCN=C(N)N JEOQACOXAOEPLX-WCCKRBBISA-N 0.000 description 1
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 241000408659 Darpa Species 0.000 description 1
- 206010011906 Death Diseases 0.000 description 1
- 241000920033 Eugenes Species 0.000 description 1
- 241000321453 Paranthias colonus Species 0.000 description 1
- 240000005499 Sasa Species 0.000 description 1
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 208000000260 Warts Diseases 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 210000001520 comb Anatomy 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000615 nonconductor Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 239000000377 silicon dioxide Substances 0.000 description 1
- 201000010153 skin papilloma Diseases 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 239000003381 stabilizer Substances 0.000 description 1
- 239000011573 trace mineral Substances 0.000 description 1
- 235000013619 trace mineral Nutrition 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Definitions
- This disclosure relates generally to an apparatus and method for improved networking or storage security using an address or data scrambling, partitioning and routing in digital data networks, and more particularly, to a secured digital data when it is IP-based communicated over the Internet or when it is stored in a memory.
- the Internet is a global system of interconnected computer networks that use the standard Internet Protocol Suite (TCP/IP), including Transmission Control Protocol (TCP) and the Internet Protocol (IP), to serve billions of users worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic and optical networking technologies.
- the Internet carries a vast range of information resources and services, such as the interlinked hypertext documents on the World Wide Web (WWW) and the infrastructure to support electronic mail.
- WWW World Wide Web
- the Internet backbone refers to the principal data routes between large, strategically interconnected networks and core routers in the Internet.
- the Internet does not rely on central control or coordinating facilities, nor do they implement any global network policies.
- the resilience of the Internet results from its principal architectural features, most notably the idea of placing as few network states and control functions as possible in the network elements, but instead relying on the endpoints of communication to handle most of the processing to ensure data integrity, reliability and authentication.
- the high degree of redundancy of today's network links and sophisticated real-time routing protocols provides alternative paths of communications for load balancing and congestion avoidance.
- IP Internet Protocol
- IP Internet Protocol Version 4
- IPv4 Internet Engineering Task Force (IETF) Request for Comments (RFC) 791 and RFC 1349, and the successor, Internet Protocol Version 6 (IPv6), is in active and growing deployment worldwide. IPv4 uses 32-bit addresses (providing 4 billion, or 4.3 ⁇ 10 9 addresses), while IPv6 uses 128-bit addresses (providing 340 undecillion or 34 ⁇ 10 38 addresses), as described in RFC 2460.
- the Internet Protocol is responsible for addressing hosts and routing datagrams (packets) from a source host to the destination host across one or more IP networks.
- the Internet Protocol defines an addressing system that has two functions. Addresses identify hosts and provide a logical location service. Each packet is tagged with a header that contains the meta-data for the purpose of delivery. This process of tagging is also called encapsulation.
- IP is a connectionless protocol for use in a packet-switched Link Layer network, and does not need circuit setup prior to transmission. The aspects of delivery guaranteeing, proper sequencing, avoidance of duplicate delivery, and data integrity are addressed by an upper transport layer protocol (e.g., TCP—Transmission Control Protocol and UDP—User Datagram Protocol).
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- IP addressing and routing refers to how end hosts become assigned IP addresses and how sub-networks of IP host addresses are divided and grouped together. IP routing is performed by all hosts, but most importantly by internetwork routers, which typically use either Interior Gateway Protocols (IGPs) or External Gateway Protocols (EGPs) to help make IP datagram forwarding decisions across IP connected networks. Core routers serving in the Internet backbone commonly use the Border Gateway Protocol (BGP) as per RFC 4098 or Multi-Protocol Label Switching (MPLS).
- BGP Border Gateway Protocol
- MPLS Multi-Protocol Label Switching
- GG24-4338-00 titled: “Introduction to Networking Technologies”, 1 Edition April 1994, Redbook Document No. GG24-2580-01 “IP Network Design Guide”, 2 nd Edition June 1999, and Redbook Document No. GG24-3376-07 “TCP/IP Tutorial and Technical Overview”, ISBN 0738494682 8 th Edition December 2006, which are incorporated in their entirety for all purposes as if fully set forth herein.
- a Wireless Mesh Network (WMN) and Wireless Distribution Systems (WDS) are known in the art to be a communication network made up of clients, mesh routers and gateways organized in a mesh topology and connected using radio. Such wireless networks may be based on DSR as the routing protocol.
- WMNs are standardized in IEEE 802.11s and described in a slide-show by W. Steven Conner, Intel Corp. et al. titled: “IEEE 802.11s tutorial” presented at the IEEE 802 Plenary, Dallas on Nov. 13, 2006, in a slide-show by Eugen Borcoci of University Politehnica Bucharest, titled: “Wireless Mesh Networks Technologies: Architectures, Protocols, Resource Management and Applications”, presented in INFOWARE Conference on Aug.
- FIG. 1 a A schematic view of a prior art internet-based network 10 is shown in FIG. 1 a .
- the Internet or the Internet backbone is shown as the dashed line defining the cloud 11 .
- Various endpoint devices such as servers 14 a , 14 b , 14 c , and 14 d , laptops 12 a and 12 b , and desktop computers 13 a , 13 b , and 13 c are shown interconnected via the Internet 11 .
- the Internet backbone 11 contains routers 15 a - j interconnected by various bi-directional packet-based communication links 16 a - n .
- the communication link 16 a connects routers 15 h and 15 j
- communication link 16 b connects routers 15 f and 15 j
- communication link 16 c connects routers 15 f and 15 i
- communication link 16 d connects routers 15 h and 15 g
- communication link 16 e connects routers 15 g and 15 c
- communication link 16 f connects routers 15 c and 15 f
- communication link 16 g connects routers 15 i and 15 j
- communication link 16 h connects routers 15 d and 15 i
- communication link 16 i connects routers 15 d and 15 e
- communication link 16 k connects routers 15 e and 15 f
- communication link 16 l connects routers 15 e and 15 a
- communication link 16 m connects routers 15 c and 15 a
- communication link 16 n connects routers 15 a and 15 b .
- communication link 17 a connects laptop 12 b to the Internet 11 via router 15 a
- communication link 17 b connects server 14 a to router 15 a
- communication link 17 c connects desktop computer 13 c to router 15 d
- communication link 17 d connects server 14 d to router 15 i
- communication link 17 e connects computer 13 b to router 15 i
- communication link 17 f connects server 14 b to router 15 j
- communication link 17 g connects laptop 12 a to router 15 j
- communication link 17 h connects server 14 c to router 15 g
- communication link 17 i connects computer 13 a to router 15 c.
- the packet may be generally segmented into the IP data 19 b to be carried as payload, and the IP header 19 f .
- the IP header 19 f contains the IP address of the source as Source IP Address field 19 d and the Destination IP Address field 19 c .
- the IP header 19 f and the payload 19 b are further encapsulated by adding a Frame Header 19 e and Frame Footer 19 a used by higher layer protocols.
- the Internet is a packet switching network, wherein packets are forwarded from their source to their ultimate destination via the routers.
- a packet is formed at the source, which includes the destination IP address and the source IP address.
- the packets are routed in the Internet based on various policies and routing algorithms. For example, the packet is first sent to the router 15 j over link 17 g , as schematically shown by the dashed line path 21 a .
- the Internet structure is using a client-server model, among other models.
- server or ‘server computer’ relates herein to a device or computer (or a series of computers) connected to the Internet and is used for providing specific facilities or services to other computers or other devices (referred to in this context as ‘clients’) connected to the Internet.
- a server is commonly a host that has an IP address and executes a ‘server program’, and typically operating as a socket listener.
- Many servers have dedicated functionality such as web server, Domain Name System (DNS) server (described in RFC 1034 and RFC 1035), Dynamic Host Configuration Protocol (DHCP) server (described in RFC 2131 and RFC 3315), mail server, File Transfer Protocol (FTP) server and database server.
- DNS Domain Name System
- DHCP Dynamic Host Configuration Protocol
- FTP File Transfer Protocol
- client herein refers to a program or to a device or a computer (or a series of computers) executing this program, which accesses a server over the Internet for a service or a resource.
- Clients commonly initiate connections that a server may accept.
- web browsers are clients that connect to web servers for retrieving web pages
- email clients connect to mail storage servers for retrieving mails.
- a network routing is commonly used in the Internet, where the knowledge of the network layout is in the network routing devices, which accordingly determine where to forward the packet. In such a case, the source needs only to specify the destination IP address.
- Source routing is a method described in RFC 1940 that can be used to specify the route that a packet should take through the network. In source routing the path through the Internet is set by the source. When the sender determines the exact network route the packets must take, ‘strict’ source routing is used.
- An alternate common form of source routing is called Loose Source Record Route (LSRR). When using the LSRR the sender provides one or more hops (such as an intermediate router) that the packet must go through.
- LSRR Loose Source Record Route
- the Dynamic Source Routing is a simple and efficient on-demand routing protocol designed for use in multi-hop wireless ad hoc network of mobile devices, such as wireless mesh networks.
- the DSR is described in RFC 4728 and is designed to restrict the bandwidth consumed by control packets in ad hoc wireless networks by eliminating the periodic table-update messages that are required in the table-driven approach.
- the Internet is a public network, based on known network protocols such as TCP/IP, which specifications are widely and published.
- a third party ‘attacker’
- Methods of attacking data carried over the Internet include using network packet sniffers, IP spoofing, man-in-the-middle attacks and more.
- sensitive or confidential information transported over the Internet such as bank account details and credit card numbers exchanged during a commercial transaction, medical records, criminal records, vehicle driver information, loan applications, stock trading, voter registration and other sensitive information carried over the Internet.
- data is not carried as clear text but is rather encrypted, so that the data is transferred over the Internet as transformed (or scrambled) data forming unreadable formats (typically by using a mathematical algorithm).
- Encryption based mechanisms are commonly end-to-end processes involving only the sender and the receiver, where the sender encrypts the plain text message by transforming it using an algorithm, making it unreadable to anyone, except the receiver which possesses special knowledge. The data is then sent to the receiver over a network, and when received the special knowledge enables the receiver to reverse the process (decrypt) to make the information readable as in the original message.
- the encryption process commonly involves computing resources such as processing power, storage space and requires time for executing the encryption/decryption algorithm, which may delay the delivery of the message.
- Transport Layer Security and its predecessor Secure Sockets Layer (SSL) are non-limiting examples of end-to-end cryptographic protocols, providing secured communication above the OSI Transport Layer, using keyed message authentication code and symmetric cryptography.
- the TLS client and server negotiate a stateful connection by using a handshake procedure, during which various parameters are agreed upon, allowing a communication in a way designed to prevent eavesdropping and tampering.
- the TLS 1.2 is defined in RFC 5246, and several versions of the protocol are in widespread use in applications such as web browsing, electronic mail, Internet faxing, instant messaging and Voice-over-IP (VoIP).
- VoIP Voice-over-IP
- TLS is usually implemented on top of any of the Transport Layer protocols, encapsulating the application-specific protocols such as HTTP, FTP, SMTP, NNTP, and XMPP.
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- DCCP Datagram Congestion Control Protocol
- a prominent use of TLS is for securing World Wide Web traffic carried by HTTP to form HTTPS.
- Notable applications are electronic commerce and asset management.
- SMTP Simple Mail Transfer Protocol
- RRC 3207 TLS
- These applications use public key certificates to verify the identity of endpoints.
- Another Layer 4 (Transport Layer) and upper layers encryption-based communication protocols include SSH (Secure Shell) and SSL (Secure Socket Layer).
- Layer 3 (Network Layer) and lower layer encryption based protocols include IPsec, L2TP (Layer 2 Tunneling Protocol) over IPsec, and Ethernet over IPsec.
- IPsec is a protocol suite for securing IP communication by encrypting and authenticating each IP packet of a communication session.
- the IPsec standard is currently based on RFC 4301 and RFC 4309, and was originally described in RFCs 1825-1829, which are now obsolete, and uses the Security Parameter Index (SPI, as per RFC 2401) as an identification tag added to the header while using IPsec for tunneling the IP traffic.
- SPI Security Parameter Index
- An IPsec overview is provided in Cisco Systems, Inc. document entitled: “An Introduction to IP Security (IPSec) Encryption”, which is incorporated in its entirety for all purposes as if fully set forth herein.
- DES is based upon secret-key cryptography, also referred to as symmetric cryptography, and relies upon a 56-bit key for encryption.
- secret-key cryptography also referred to as symmetric cryptography
- the sender and receiver of cipher text both possess identical secret keys, which are, in an ideal world, completely unique and unknown to the world outside of the sender and receiver.
- the sender may send the cipher text to the receiver using any available public or otherwise insecure communication system.
- the receiver having received the cipher text, decrypts it using the secret key to arrive at the plain text.
- Video services over the Internet include video conferencing and IPTV (IP Television).
- IPTV IP Television
- the multimedia service is a real-time (or near real-time) application, and thus sensitive to delays over the Internet.
- two-way services such as VoIP or other telephony services and video-conferencing are delay sensitive.
- the delays induced by the encryption process, as well as the hardware/software costs associated with the encryption render encryption as non-practical.
- H.323 is a standard for teleconferencing that was developed by the International Telecommunications Union (ITU). It supports full multimedia audio, video and data transmission between groups of two or more participants, and it is designed to support large networks. H.323 is network-independent: it can be used over networks using transport protocols other than TCP/IP. H.323 is still a very important protocol, but it has fallen out of use for consumer VoIP products due to the fact that it is difficult to make it work through firewalls that are designed to protect computers running many different applications. It is a system best suited to large organizations that possess the technical skills to overcome these problems.
- ITU International Telecommunications Union
- SIP Session Initiation Protocol
- IETF Internet Engineering Task Force
- SIP is defined in a number of RFCs, principally RFC 3261.
- a SIP-based VoIP implementation may send the encoded voice data over the network in a number of ways.
- Most implementations use Real-time Transport Protocol (RTP), which is defined in RFC 3550.
- RTP Real-time Transport Protocol
- Both SIP and RTP are implemented on UDP, which, as a connectionless protocol, can cause difficulties with certain types of routers and firewalls.
- STUN Simple Traversal of UDP over NAT
- RFC 3489 a protocol defined in RFC 3489 that allows a client behind a NAT router to find out its external IP address and the type of NAT device.
- Onion routing is a technique for anonymous communication over the Internet or any other computer network. Messages are repeatedly encrypted and then sent through several network nodes called onion routers. Each onion router removes a layer of encryption to uncover routing instructions, and sends the message to the next router where this is repeated. This prevents these intermediary nodes from knowing the origin, destination, and contents of the message. To prevent an adversary from eavesdropping on message content, messages are encrypted between routers.
- onion routing and mix cascades in general
- onion routing is to protect the privacy of the sender and the recipient of a message, while also providing protection for message content as it traverses a network.
- Onion routing accomplishes this according to the principle of Chaum mix cascades: messages travel from source to destination via a sequence of proxies (“onion routers”), which re-route messages in an unpredictable path.
- Routing onions are data structures used to create paths through which many messages can be transmitted.
- the router at the head of a transmission selects a number of onion routers at random and generates a message for each one, providing it with symmetric keys for decrypting messages, and instructing it which router will be next in the path.
- Each of these messages, and the messages intended for subsequent routers, is encrypted with the corresponding router's public key. This provides a layered structure, in which it is necessary to decrypt all outer layers of the onion in order to reach an inner layer. Onion routing is described in U.S. Pat. No. 6,266,704 to Reed et al.
- ‘Tor’ is an anonymizing network based on the principles of ‘onion routing’, and involves a system which selects a randomly chosen route for each connection, via the routers present in the Tor network.
- the last server appears herein as an ‘exit node’ and sends the data to the final recipient after leaving the Tor cloud. At this point, it is no longer possible for an observer constantly watching the ‘exit node’ to determine who the sender of the message was.
- This concept and its components are known from the ‘Tor’ project in http://www.torproject.org.
- the Tor network concept is described in U.S.
- Patent Application Publication 2010/0002882 to Rieger et al. in the publication “Tor The Second-Generation Onion Router”, in Proceedings of the 13th USENIX Security Symposium August 2004, by Dingledine R., Mathewson N., Syverson P., in publication “Tor Protocol specification” by Dingledine R. and Mathewson N., in publication “Tor Directory Protocol, Version 3”, and publication “TC: A Tor Control Protocol” downloaded from the Tor web-site, which are incorporated in their entirety for all purposes as if fully set forth herein.
- a bus is a subsystem commonly consisting of a conductor, or group of conductors, that are used for carrying signals, data or power, and typically serves as a common connection between the circuits, devices or other components.
- a bus can be used for transferring data between components within a computer system, between computers or between a computer and peripheral devices.
- Many physical or logical arrangements may be used to implement a bus, such as parallel (wherein each data word is carried in parallel on multiple electrical conductors or wires), serial (such as bit-serial connections), or a combination of both, and the bus may be wired in various topologies such as multi-drop (electrical parallel) or daisy-chain.
- a bus may be implemented as a communication network employing hubs or switches.
- a bus may be internal, commonly implemented as a passive back-plane or motherboard conductors, or external, the latter is commonly a cable, and may use passive or active circuitry.
- a bus may further carry a power signal (commonly low-voltage DC power signal, e.g., 3.3 Volts DC (VDC), 5 VDC, 12 VDC and 48 VDC).
- VDC 3.3 Volts DC
- 5 VDC 5 VDC
- 12 VDC 12 VDC and 48 VDC
- FIG. 16 A non-limiting schematic example of a computer system 160 employing memory-mapped I/O (Input/Output) scheme is shown in FIG. 16 .
- a processor 163 (which may serve as a CPU—Central Processing Unit) is connected to a memory 162 and I/O circuitry 161 via bus 164 .
- the bus 164 comprises three buses, an address bus 166 , a data 167 and control bus 165 .
- the address bus 166 carries the address specified by the processor 163 , relating to the physical or virtual location in the memory 162 , or physical or virtual specific I/O component, while the value to be read or written is sent on the data bus 167 .
- the control bus 165 carries control information between the processor 163 and other devices, such as commands from the processor 163 or signals that report to the processor 163 the status of various devices such as memory 162 and I/O 161 , and also for controlling and supporting the address bus 166 and the data bus 167 .
- one line of the control bus may be used to indicate whether the CPU 163 is currently reading from, or writing to, the memory 162 (R/W line).
- the address bus 166 and the data bus 167 may be carried separately over dedicated conductors (non-multiplexed bus), or alternatively may be carried over the same conductors using time-multiplexing.
- FIG. 17 A schematic non-limiting example of detailed coupling of a memory component 171 to address bus 166 , data bus 167 and control bus 165 is shown in sub-system 170 shown in FIG. 17 .
- the memory 171 is capable of storing 256 bytes (256*8), and thus addressable by 8 address lines A 7 (MSB—Most Significant Bit), A 6 , A 5 , A 4 , A 3 , A 2 , A 1 and A 0 (LSB—Least Significant Bit), connected via A 7 line 176 a , A 6 line 176 b , A 5 line 176 c , A 4 line 176 d , A 3 line 176 e , A 2 line 176 f , A 1 line 176 g and A 0 line 176 h , collectively referred to as address bus 176 carrying the address word.
- the processor specifies an address over the address bus 166 , and the address bus 176 may be coupled to receive the address from the address bus 166 via an address logic circuit 174 .
- the address logic circuit 174 may be a simple buffer or line-driver, or may be a latch or register that are commonly used in a multiplexed bus environment.
- data values to be written to, or read from, the memory 171 are coupled to or from the data 167 via data logic 175 , may be a simple bi-directional buffer or line-driver, or may be a bi-directional latch or register which are commonly used in a multiplexed bus environment.
- the 8 bits data word is designated as D 7 (MSB), D 6 , D 5 , D 4 , D 3 , D 2 , D 1 and D 0 (LSB), connected via D 7 line 177 a , D 6 line 177 b , D 5 line 177 c , D 4 line 177 d , D 3 line 177 e , D 2 line 177 f , D 1 line 177 g and D 0 line 177 h , collectively referred to as data bus 177 carrying the address word.
- a non-limiting example of a processor may be 80186 or 80188 available from Intel Corporation located at Santa-Clara, Calif., USA. The 80186 and its detailed memory connections are described in the manual “80186/80188 High-Integration 16-Bit Microprocessors” by Intel Corporation, which is incorporated in its entirety for all purposes as if fully set forth herein.
- Another non-limiting example of a processor may be MC68360 available from Motorola Inc. located at.
- memory and “storage” are used interchangeably herein and refer to any physical component that can retain or store information (that can be later retrieved) such as digital data on a temporary or permanent basis, typically for use in a computer or other digital electronic device.
- a memory can store computer programs or any other sequence of instructions, or data such as files, text, numbers, audio and video, as well as any other form of information represented as a string of bits or bytes.
- the physical means of storing information may be electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical.
- a memory may be in a form of Integrated Circuit (IC, a.k.a. chip or microchip).
- the memory may be in the form of a packaged functional assembly of electronic components (module).
- module may be based on a PCB (Printed Circuit Board) such as PC Card according to Personal Computer Memory Card International Association (PCMCIA) PCMCIA 2.0 standard, or a Single In-line Memory Module (SIMM) (or DIMM) which is standardized under the JEDEC JESD-21C standard.
- PCB Printed Circuit Board
- SIMM Single In-line Memory Module
- DIMM Single In-line Memory Module
- a memory may be in the form of a separately rigidly enclosed box such as hard-disk drive.
- Semiconductor memory may be based on Silicon-On-Insulator (SOI) technology, where a layered silicon-insulator-silicon substrate is used in place of conventional silicon substrates in semiconductor manufacturing, especially microelectronics, to reduce parasitic device capacitance and thereby improving performance.
- SOI-based devices differ from conventional silicon-built devices in that the silicon junction is above an electrical insulator, typically silicon dioxide or sapphire (these types of devices are called silicon on sapphire, or SOS, and are less common).
- SOI-Based memories include Twin Transistor RAM (ITRAM) and Zero-capacitor RAM (Z-RAM).
- a memory may be a volatile memory, where a continuous power is required to maintain the stored information such as RAM (Random Access Memory), including DRAM (Dynamic RAM) or SRAM (Static RAM), or alternatively be a non-volatile memory which does not require a maintained power supply, such as Flash memory, EPROM, EEPROM and ROM (Read-Only Memory). Volatile memories are commonly used where long-term storage is required, while non-volatile memories are more suitable where fast memory access is required. Volatile memory may be dynamic, where the stored information is required to be periodically refreshed (such as re-read and then re-written) such as DRAM, or alternatively may be static, where there is no need to refresh as long as power is applied, such as RAM. In some cases, a small battery is connected to a low-power consuming volatile memory, allowing its use as a non-volatile memory.
- RAM Random Access Memory
- DRAM Dynamic RAM
- SRAM Static RAM
- Volatile memory volatile memory which does not
- a memory may be read/write (or mutable storage) memory where data may be overwritten more than once and typically at any time, such as RAM and Hard Disk Drive (HDD).
- a memory may be an immutable storage where the information is retained after being written once.
- the data may be written at the time of manufacture of the memory, such as mask-programmable ROM (Read Only Memory) where he data is written into the memory a part of the IC fabrication, CD-ROM (CD—Compact Disc) and DVD-ROM (DVD—Digital Versatile Disk, or Digital Video Disk). Alternately, the data may be once written to the “write once storage” at some point after manufacture, such as Programmable Read-Only Memory (PROM) or CD-R (Compact Disc-Recordable).
- PROM Programmable Read-Only Memory
- CD-R Compact Disc-Recordable
- a memory may be accessed using “random access” scheme where any location in the storage can be accessed at any moment in typically the same time, such as RAM, ROM or most semiconductor-based memories.
- a memory may be of “sequential access” type, where the pieces of information are gathered or stored in a serial order, and therefore the time to access a particular piece of information or a particular address depends upon which piece of information was last accessed, such as magnetic tape based storage.
- Common memory devices are location-addressable, where each individually accessible unit of data in storage is selected using its numerical memory address.
- a memory may be file-addressable, where the information is divided into files of variable length, and a file is selected by using a directory or file name (typically a human readable name), or may be content-addressable, where each accessible unit of information is selected based on the basis of (or part of) the stored content.
- File addressability and content addressability commonly involves additional software (firmware) or hardware or both.
- Semiconductor based medium is based on transistors, capacitors or other electronic components in an IC, such as RAM, ROM and Solid-State Drives (SSDs).
- a currently popular non-volatile semiconductor technology is based on a flash memory, and can be electrically erased and reprogrammed.
- the flash memory is based on NOR or NAND based single-level cells (SLC) or multi-level cells (MLC), made from floating-gate transistors.
- Non-limiting examples of applications of flash memory include personal and laptop computers, PDAs, digital audio players (MP3 players), digital cameras, mobile phones, synthesizers, video games consoles, scientific instrumentation, industrial robotics and medical electronics.
- the magnetic storage uses different types of magnetization on a magnetically or ferromagnetic coated surface as a medium for storing the information.
- the information is accessed by read/write heads or other transducers.
- Non-limiting examples of magnetic-based memory are Floppy-disk, magnetic tape data storage and HDD.
- In optical storage typically an optical disc is used, that stores information in deformities on the surface of a circular disc, and the information is read by illuminating the surface with a laser diode and observing the reflection.
- the deformities may be permanent (read only media), formed once (write once media) or reversible (recordable or read/write media).
- Non-limiting examples of read-only storage commonly used for mass distribution of digital information such as music, audio, video or computer programs, include CD-ROM, BD-ROM (BD—Blu-ray Disc) and DVD-ROM.
- Non-limiting examples of write once storage are CD-R, DVD-R, DVD+R and BD-R
- non-limiting examples of recordable storage are CD-RW (Compact Disc-ReWritable), DVD-RW, DVD+RW, DVD-RAM and BD-RE (Blu-ray Disc Recordable Erasable).
- Another non-limiting example is magneto-optical disc storage, where the magnetic state of a ferromagnetic surface stores the information, which can be read optically.
- 3D optical data storage is an optical data storage, in which information can be recorded and/or read, with three-dimensional resolution.
- a storage medium may be removable, designed to be easily removed from, and easily installed or inserted into, the computer by a person, typically without the need for any tool and without the need to power off the computer or the associated drive. Such capability allows for archiving, for transporting data between computers, and for buying and selling software.
- the medium may be read using a reader or player that reads the data from the medium, or may be written by a burner or writer, or may be used for writing and reading by a writer/reader commonly referred to as a drive.
- the medium has the form factor of a disk, which is typically a round plate on which the data is encoded, respectively known as magnetic disc and optical disk.
- Disk drives may be internal (integrated within the computer enclosure) or may be external (housed in a separate box that connects to the computer).
- Floppy disks that can be read from or written on by a floppy drive, are a non-limiting example of removable magnetic storage medium, and CD-RW (Compact Disc-ReWritable) is a non-limiting example of a removable optical disk.
- CD-RW Compact Disc-ReWritable
- a non-volatile removable semiconductor based storage medium is commonly in use and is referred to as a memory card.
- a memory card is a small storage device, commonly based on flash memory, and can be read by a suitable card reader.
- a memory may be accessed via a parallel connection or bus (wherein each data word is carried in parallel on multiple electrical conductors or wires), such as PATA, PCMCIA or EISA, or via serial bus (such as bit-serial connections) such as USB or Ethernet based on IEEE802.3 standard, or a combination of both.
- the connection may further be wired in various topologies such as multi-drop (electrical parallel), point-to-point, or daisy-chain.
- a memory may be powered via a dedicated port or connector, or may be powered via a power signal carried over the bus, such as SATA or USB.
- a memory may be provided according to a standard, defining its form factor (such as its physical size and shape) and electrical connections (such as power and data interface).
- a standard-based memory may be easily inserted to, or removed from, a suitable corresponding slot (a.k.a. expansion slots) of a computer or other digital device.
- a memory card using a PC Card form factor according to PCMCIA 2.0 (or JEIDA 4.1) is used, suitable for mounting into a corresponding PCMCIA-compatible slot, supporting 16 or 32-bit width interface, and connected via 68 pins connectors.
- CardBus according to PCMCIA 5.0 may be used.
- the memory is in the form of SD (Secure Digital) Card, based on standard by SD Card Association (SDA), which is commonly used in many small portable devices such as digital video camcorders, digital cameras, audio players and mobile phones.
- SD Secure Digital
- SDA SD Card Association
- Other types of memory cards may be equally used, such as CompactFlash (CF), MiniSD card, MicroSD Card, and xD-Picture Card.
- a memory may be provided as a USB drive (such as USB Flash drive), which is a portable enclosed card that plugs into a computer USB port and communicates with a USB host.
- USB drive such as USB Flash drive
- Such flash-based memory drives are commonly referred to as “thumb drives”, “jump drives” and “memory sticks”.
- Such USB mass storage devices and others are described in “Chapter 1: Mass Storage basics”, downloaded October 2011 from: http://www.lvr.com/files/usb_mass_storage_chapter_1.pdf, which is incorporated in its entirety for all purposes as if fully set forth herein.
- the memory is designed to fit into a drive bay in a computer enclosure.
- drive bays are standard-sized, and used to store disk drives.
- the drives may be usually secured with screws or using a tool-less fasteners.
- a current popular standard is the 3.5 inches (3.5′′) bays, which dimensions are specified in SFF standard specifications SFF-8300 and SFF-8301, which were incorporated into the EIA (Electronic Industries Association) standard EIA-470.
- main memory or primary memory or internal memory
- secondary storage or external memory or auxiliary storage
- mass storage media commonly associated with a dismount removable media, used for archiving rarely accessed information.
- the latency of accessing a particular location is typically nanoseconds for primary storage, milliseconds for secondary storage, and seconds for tertiary storage.
- a memory may be Direct-attached Storage (DAS), where the memory is directly connected to a host, computer, server, or workstation, commonly without a network in between.
- DAS Direct-attached Storage
- Common examples involve a number of hard disk drives (HDD) connected to a processor or a computer through a Host Bus Adapter (HBA).
- HBA Host Bus Adapter
- Commonly serial and point-to-point connections are used, such as SATA, eSATA, SCSI, SAS and Fibre Channel.
- a memory can be part of a Network-attached Storage (NAS), wherein a self-contained file level storage (typically arranged as a server) is connected to a network, providing data sharing to other devices (such as heterogeneous clients), commonly via a network device such as a hub, switch or router.
- NAS Network-attached Storage
- NAS is specialized for its task by its hardware, software, or both, and thus provides faster data access, easier administration, and simple configuration.
- NAS is typically associated with a LAN, and commonly provides an Ethernet interface based on IEEE802.3 standard may be used such as 10/100BaseT, 1000BaseTfrX (gigabit Ethernet), 10 gigabit Ethernet (10GE or 10GbE or 10 GigE per IEEE Std 8023ae-2002as standard), 40 Gigabit Ethernet (40GbE), or 100 Gigabit Ethernet (100 GbE as per Ethernet standard IEEE P802.3ba).
- a memory may be part of a Storage Area Network (SAN), which is a high-speed (commonly dedicated) network (or sub-network) for sharing storage devices, such as disk arrays, tape libraries and optical jukeboxes.
- SAN Storage Area Network
- the SAN typically allows multiple computers or servers to access multiple storage devices using a network such as WAN or LAN.
- SAN often utilizes a Fibre Channel fabric topology, commonly made up of a number of Fibre Channel switches.
- Molecular memory uses molecular species as the data storage element.
- the molecular component can be described as a molecular switch, and may perform this function by any of several mechanisms, including charge storage, photochromism, or changes in capacitance.
- charge storage photochromism
- capacitance changes in capacitance.
- each individual molecule contains a bit of data, leading to massive data capacity.
- Blu-ray Disc (official abbreviation BD) is an optical disc storage medium designed to supersede the DVD format, where blue laser is used to read the disc, allowing information to be stored at a greater density than is possible with the longer-wavelength red laser used for DVDs.
- the disc diameter is 120 mm and the disc thickness is 1.2 mm of plastic optical disc, the same size as DVDs and CDs.
- Blu-ray Discs contain 25 GB (23.31 GiB) per layer, with dual layer discs (50 GB) being the norm for feature-length video discs. Triple layer discs (100 GB) and quadruple layers (128 GB) are available for BD-XL Blu-ray re-writer drives.
- HDD Hard Disk Drives
- An HDD is a non-volatile, random access digital data storage device, featuring rotating rigid platters on a motor-driven spindle within a protective enclosure.
- the enclosure may be internal to the computer system enclosure or external.
- Data is magnetically read from, and written to, the platter by read/write heads that floats on a film or air above the platters.
- the HDDs are typically interfaced using high-speed interfaces, commonly of serial type.
- SSDs include a controller that incorporates the electronics that bridge the NAND memory components to the host computer.
- the controller is an embedded processor that executes firmware-level code and is one of the most important factors of SSD performance. Functions performed by the controller include Error correction (ECC), Wear leveling, Bad block mapping, Read scrubbing and read disturb management, Read and write caching, and Garbage collection.
- ECC Error correction
- SSD Solid State Disk
- a communication link (such as Ethernet, or any other LAN, PAN or WAN communication link) may also be regarded as bus herein.
- a bus may be an internal bus (a.k.a. local bus), primarily designed to connect a processor or CPU to peripherals inside a computer system enclosure, such as connecting components over the motherboard or backplane.
- a bus may be an external bus, primarily intended for connecting the processor or the motherboard to devices and peripherals external to the computer system enclosure. Some buses may be doubly used as internal or as external buses.
- a bus may be of parallel type, where each word (address or data) is carried in parallel over multiple electrical conductors or wires; or alternatively, may be bit-serial, where bits are carried sequentially, such as one bit at a time.
- a bus may support multiple serial links or lanes, aggregated or bonded for higher bit-rate transport.
- Non-limiting examples of internal parallel buses include ISA (Industry Standard architecture); EISA (Extended ISA); NuBus (IEEE 1196); PATA—Parallel ATA (Advanced Technology Attachment) variants such as IDE, EIDE, ATAPI, SBus (IEEE 1496), VESA Local Bus (VLB), PCI and PC/104 variants (PC/104, PC/104 Plus, PC/104 Express).
- Non-limiting examples of internal serial buses include PCIe (PCI Express), Serial ATA (SATA), SMBus, and Serial Peripheral Bus (SPI) bus.
- Non-limiting examples of external parallel buses include HIPPI (HIgh Performance Parallel Interface), IEEE-1284 (‘Centronix’), IEEE-488 (a.k.a. GPIB—General Purpose Interface Bus) and PC Card/PCMCIA.
- Non-limiting examples of external serial buses include USB (Universal Serial Bus), eSATA and IEEE 1394 (a.k.a. FireWire).
- buses that can be internal or external are Futurebus, InfiniBand, SCSI (Small Computer System Interface), and SAS (Serial Attached SCSI).
- the bus medium may be based on electrical conductors, commonly copper wires based cable (may be arranged as twisted-pairs) or a fiber-optic cable.
- the bus topology may use point-to-point, multi-drop (electrical parallel) and daisy-chain, and may further be based on hubs or switches.
- a point-to-point bus may be full-duplex, providing simultaneous, two-way transmission (and sometimes independent) in both directions, or alternatively a bus may be half-duplex, where the transmission can be in either direction, but only in one direction at a time.
- Buses are further commonly characterized by their throughput (data bit-rate), signaling rate, medium length, connectors and medium types, latency, scalability, quality-of-service, devices per connection or channel, and supported bus-width.
- a configuration of a bus for a specific environment may be automatic (hardware or software based, or both), or may involve user or installer activities such as software settings or jumpers.
- Recent buses are self-repairable, where spare connection (net) is provided which is used in the event of malfunction in a connection.
- Some buses support hot-plugging (sometimes known as hot swapping), where a connection or a replacement can be made, without significant interruption to the system or without the need to shut-off any power.
- a well-known example of this functionality is the Universal Serial Bus (USB) that allows users to add or remove peripheral components such as a mouse, keyboard, or printer.
- a bus may be defined to carry a power signal, either in separate dedicated cable (using separate and dedicated connectors), or commonly over the same cable carrying the digital data (using the same connector). Typically dedicated wires in the cable are used for carrying a low-level DC power levels, such as 33 VDC, 5 VDC, 12 VDC and any combination thereof.
- a bus may support master/slave configuration, where one connected node is typically a bus master (e.g., the processor or the processor-side), and other nodes (or node) are bus slaves. A slave may not connect or transmit to the bus until given permission by the bus master.
- a bus timing, strobing, synchronization, or clocking information may be carried as a separate signal (e.g. clock signal) over a dedicated channel, such as separate and dedicated wired in a cable, or alternatively may use embedded clocking (a.k.a. self-clocking), where the timing information is encoded with the data signal, commonly used in line codes such as Manchester code, where the clock information occurs at the transition points.
- a separate signal e.g. clock signal
- a dedicated channel such as separate and dedicated wired in a cable
- embedded clocking a.k.a. self-clocking
- Any bus or connection herein may use proprietary specifications, or preferably be similar to, based on, substantially or fully compliant with an industry standard (or any variant thereof) such as those referred to as PCI Express, SAS, SATA, SCSI, PATA, InfiniBand, USB, PCI, PCI-X, AGP, Thunderbolt, IEEE 1394, FireWire and Fibre Channel.
- Fibre Channel is a gigabit-speed network technology primarily used for storage networking, and has recently become the standard connection type for storage area networks (SAN) in enterprise storage.
- Fibre Channel is standardized in the T11 Technical Committee of the InterNational Committee for Information Technology Standards (INCITS), an American National Standards Institute (ANSI) accredited standards committee.
- IOCITS InterNational Committee for Information Technology Standards
- ANSI American National Standards Institute
- Fibre Channel signaling can run on both twisted pair copper wire and fiber-optic cables.
- Fibre Channel Protocol FCP is a transport protocol (similar to TCP used in IP networks) that predominantly transports SCSI commands over Fibre Channel networks.
- FC-P2P Point-to-Point
- FC-AL Arbitrated loop
- FC-SW Switched fabric
- FC-SW Switched fabric
- Some Fibre Channel devices support SFP transceiver, mainly with LC fiber connector, while some 1GFC devices used GBIC transceiver, mainly with SC fiber connector.
- Fibre Channel is further described in “Fibre Channel Solutions Guide” by FCIA—Fibre Channel Industry Association (www.fibrechannel.org, September 2010), “Technology Brief—Fibre Channel Basics”, by Apple Computer, Inc. (May 2006), and Weimer T. of Unylogix, “Fibre Channel Fundamentals” (available for download from the Internet October 2011), which are all incorporated in their entirety for all purposes as if fully set forth herein.
- InfiniBand is a switched fabric communications link used in high-performance computing and enterprise data centers. Its features include high throughput, low latency, quality of service and failover, and it is designed to be scalable. InfiniBand offers point-to-point bidirectional serial links intended for the connection of processors with high-speed peripherals such as disks. On top of the point-to-point capabilities, InfiniBand also offers multicast operations as well. It supports several signaling rates and links can be bonded together for additional throughput.
- the SDR serial connection's signaling rate is 2.5 gigabit per second (Gbit/s) in each direction per connection. DDR is 5 Gbit/s and QDR is 10 Gbit/s.
- FDR is 14.0625 Gbit/s and EDR is 25.78125 Gbit/s per lane.
- Lanes can be aggregated in units of 4 or 12, called 4 ⁇ or 12 ⁇ .
- a 12 ⁇ QDR link therefore carries 120 Gbit/s raw, or 96 Gbit/s of useful data.
- SDR 10 Gbit/s
- DDR 20 Gbit/s
- QDR 40 Gbit/s
- InfiniBand uses a switched fabric topology, as opposed to a hierarchical switched network like traditional Ethernet architectures. Most of the network topologies are Fat-Tree (Clos), mesh or 3D-Torus.
- InfiniBand technology is further described in the White Paper “Introduction to InfiniBandTM”, Mellanox technologies Inc., Document Number 2003WP Rev. 1.90, in the document by Grim P. of InfiniBandrm Trade Association: “Introduction to InfiniBandTM for End Users”, 2010, and in the White Paper “An Introduction to InfiniBand—Bringing I/O up to speed” Rev. Number v1.1, by JNI Corporation, Jan. 25, 2002, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- Serial ATA (SATA or Serial Advanced Technology Attachment) is a computer bus interface for connecting host bus adapters to mass storage devices such as hard disk drives and optical drives.
- Serial ATA industry compatibility specifications originate from The Serial ATA International Organization (a.k.a. SATA-IO, serialata.org), and the specification defines three distinct protocol layers: physical, link, and transport.
- Serial ATA was designed to replace the older parallel ATA (PATA) standard (often called by the old name IDE), offering several advantages over the older interface: reduced cable size and cost (7 conductors instead of 40), native hot swapping, faster data transfer through higher signaling rates, and more efficient transfer through an (optional) I/O queuing protocol.
- PATA parallel ATA
- SATA host-adapters and devices communicate via a high-speed serial cable over two pairs of conductors.
- parallel ATA used a 16-bit wide data bus with many additional support and control signals, all operating at much lower frequency.
- SATA uses the same basic ATA and ATAPI command-set as legacy ATA devices.
- Advanced Host Controller Interface AHCI is an open host controller interface published and used by Intel, which has become a de facto standard. It allows the use of the advanced features of SATA such as hotplugging and native command queuing (NCQ).
- SATA controllers typically operate in “IDE emulation” mode, which does not allow features of devices to be accessed if the ATA/IDE standard does not support them.
- the SATA standard defines a data cable with seven conductors (3 grounds and 4 active data lines in two pairs) and 8 mm wide wafer connectors on each end. SATA cables can have lengths up to 1 meter (33 ft), and connect one motherboard socket to one hard drive.
- the SATA standard specifies a power connector that differs from the decades-old four-pin Molex connector found on pre-SATA devices. Like the data cable, it is wafer-based, but its wider 15-pin shape prevents accidental mis-identification and forced insertion of the wrong connector type.
- Standardized in 2004, eSATA provides a variant of SATA meant for external connectivity. While it has revised electrical requirements and the connectors and cables are not identical with SATA, the protocol and logical signaling are compatible on the (internal) SATA level.
- SATA uses a point-to-point architecture. The physical connection between a controller and a storage device is not shared among other controllers and storage devices.
- SATA defines multipliers, which allows a single SATA controller to drive multiple storage devices. The multiplier performs the function of a hub; the controller and each storage device are connected to the hub.
- SATA bus, protocol and applications are further described in “Serial ATA technology, Technology Brief, 4th edition”, by Hewlett-Packard Development Company, L.P., TC1108815, October 2011, in white paper “External Serial ATA”, by Silicon Image, Inc., September 2004, in Krotov I. Redpaper: “IBM System x Server Disk Drive Interface Technology”, IBM Corp. Document REDP-4791-00, Oct. 10, 2011, “Serial ATA Advanced Host Controller Interface (AHCI)”, Revision 1.0, downloaded from Intel website, October 2011, and white-paper “Serial ATA—A comparison with Ultra ATA Technology”, downloaded from www.seagate.com on October 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- AHCI Serial ATA Advanced Host Controller Interface
- PCI Express Peripheral Component Interconnect Express
- PCIe PCI Express
- PCIe PCI Express
- PCIe PCI Express
- PCIe has numerous improvements over the aforementioned bus standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance-scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot plug functionality. More recent revisions of the PCIe standard support hardware I/O virtualization.
- the PCIe electrical interface is also used in a variety of other standards, most notably ExpressCard, a laptop expansion card interface.
- PCIe 3.0 is the latest standard for expansion cards that is available on mainstream personal computers.
- the PCIe bus is like a high-speed serial replacement of the older PCI/PCI-X bus an interconnect bus using shared address/data lines.
- a key difference between a PCIe bus and the older PCI is the bus topology.
- PCI uses a shared parallel bus architecture, where the PCI host and all devices share a common set of address/data/control lines.
- PCIe is based on point-to-point topology, with separate serial links connecting every device to the root complex (host).
- PCIe bus link supports full-duplex communication between any two endpoints, with no inherent limitation on concurrent access across multiple endpoints.
- PCIe communication is encapsulated in packets. The work of packetizing and de-packetizing data and status-message traffic is handled by the transaction layer of the PCIe port (described later). Radical differences in electrical signaling and bus protocol require the use of a different mechanical form factor and expansion connectors (and thus, new motherboards and new adapter boards); PCI slots and PCIe slots are not interchangeable.
- the PCIe link between 2 devices can consist of anywhere from 1 to 32 lanes.
- the packet data is striped across lanes, and peak data-throughput scales with the overall link width.
- the lane count is automatically negotiated during device initialization, and can be restricted by either endpoint.
- a single-lane PCIe (xl) card can be inserted into a multi-lane slot ( ⁇ 4, ⁇ 8, etc.), and the initialization cycle auto-negotiates the highest mutually supported lane count.
- the link can dynamically down-configure the link to use fewer lanes, thus providing some measure of failure tolerance in the presence of bad or unreliable lanes.
- the PCIe standard defines slots and connectors for multiple widths: ⁇ 1, ⁇ 4, ⁇ 8, ⁇ 16, and ⁇ 32.
- a PCI-X (133 MHz 64 bit) device and PCIe device at 4-lanes ( ⁇ 4), Gen1 speed have roughly the same peak transfer rate in a single-direction: 1064 MB/sec.
- the PCIe bus has the potential to perform better than the PCI-X bus in cases where multiple devices are transferring data communicating simultaneously, or if communication with the PCIe peripheral is bidirectional.
- a lane is commonly composed of a transmit pair and a receive pair, each of differential lines.
- Each lane is composed of 4 wires or signal paths, meaning conceptually, each lane is a full-duplex byte stream, transporting data packets in 8-bit ‘byte’ format, between the endpoints of a link, in both directions simultaneously.
- Physical PCIe slots may contain from one to thirty-two lanes, in powers of two (1, 2, 4, 8, 16 and 32). Lane counts are written with an x prefix (e.g., ⁇ 16 represents a sixteen-lane card or slot), with ⁇ 16 being the largest size in common use. A PCIe card fits into a slot of its physical size or larger (maximum ⁇ 16), but may not fit into a smaller PCIe slot ( ⁇ 16 in an ⁇ 8 slot).
- Some slots use open-ended sockets to permit physically longer cards and negotiate the best available electrical connection.
- the number of lanes actually connected to a slot may also be less than the number supported by the physical slot size.
- a non-limiting example is a ⁇ 8 slot that actually only runs at ⁇ 1. These slots allow any ⁇ 1, ⁇ 2, ⁇ 4 or ⁇ 8 cards, though only running at ⁇ 1 speed.
- This type of socket is called a ⁇ 8 ( ⁇ 1 mode) slot, meaning that it physically accepts up to ⁇ 8 cards, but only runs at ⁇ 1 speed.
- the advantage is that it can accommodate a larger range of PCIe cards without requiring motherboard hardware to support the full transfer rate. This keeps the design and implementation costs down.
- PCI Express Mini Card also known as Mini PCI Express, Mini PCIe, and Mini PCI-E
- Mini PCI Express Mini Cards are 30 ⁇ 50.95 mm.
- a half-length card is also specified 30 ⁇ 26.8 mm. Cards have a thickness of 1.0 mm (excluding components).
- AdvancedTCA is a PCIe variant providing a complement to CompactPCI for larger applications; supports serial based backplane topologies.
- AMC a complement to the AdvancedTCA specification; supports processor and I/O modules on ATCA boards ( ⁇ 1, ⁇ 2, ⁇ 4 or ⁇ 8 PCIe). It has the connector bracket reversed so it cannot fit in a normal PCI Express socket, but is pin compatible and may be inserted if the bracket is removed.
- FeaturePak is a tiny expansion card format (43 ⁇ 65 mm) for embedded and small form factor applications; it implements two ⁇ 1 PCIe links on a high-density connector along with USB, I2C, and up to 100 points of I/O. Thunderbolt is a variant from Intel that combines DisplayPort and PCIe protocols in a form factor compatible with Mini DisplayPort.
- PCIe is further described in the tutorial “PCI Express—An Overview of the PCI Express Standard”, National Instruments, Published Aug. 13, 2009, in the White Paper “Creating a PCI ExpressTM Interconnect”, Intel Corporation, Downloaded October 2011, in “PHY Interface for the PCI ExpressTM Architecture”, Version 2.00, Intel Corporation 2007, and in Cooper S., One Stop Systems, Presentation “Utilizing PCI Express Technology”, Downloaded October 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- SAS Serial Attached SCSI
- SATA Serial Attached SCSI
- SATA 3 Gbit/s drives may be connected to SAS backplanes, but SAS drives may not be connected to SATA backplanes.
- the T10 technical committee of the International Committee for Information Technology Standards (INCITS) develops and maintains the SAS protocol; the SCSI Trade Association (SCSITA) promotes the technology.
- SASA is based on full-duplex with link aggregation (4-ports wide at 24 Gbit/s) over 10 meters external cable, and may connect to 255 device port expanders.
- the SAS standard defines the connectors and voltage levels.
- the physical characteristics of the SAS wiring and signaling are compatible with and have loosely tracked that of SATA up to the present 6 Gbit/s rate, although SAS defines more rigorous physical signaling specifications as well as a wider allowable differential voltage swing intended to support longer cabling.
- SAS-1.0/SAS-1.1 adopted the physical signaling characteristics of SATA at the 1.5 Gbit/s and 3 Gbit/s rates
- SAS-2.0 development of a 6 Gbit/s physical rate led the development of an equivalent SATA speed.
- 12 Gbit/s is slated to follow 6 Gbit/s in a future SAS-3.0 specification.
- a typical Serial Attached SCSI system consists of an initiator, a target, a Service Delivery Subsystem and expanders:
- An Initiator is a device that originates device-service and task-management requests for processing by a target device and receives responses for the same requests from other target devices. Initiators may be provided as an on-board component on the motherboard (as is the case with many server-oriented motherboards) or as an add-on host bus adapter.
- a Target is a device containing logical units and target ports that receives device service and task management requests for processing and sends responses for the same requests to initiator devices. A target device could be a hard disk or a disk array system.
- a Service Delivery Subsystem is the part of an I/O system that transmits information between an initiator and a target.
- cables connecting an initiator and target with or without expanders and backplanes constitute a service delivery subsystem.
- Expanders are devices that form part of a service delivery subsystem and facilitate communication between SAS devices. Expanders facilitate the connection of multiple SAS End devices to a single initiator port. An initiator may connect directly to a target via one or more PHYs.
- Nearline SAS or NL-SAS drives are enterprise SATA drives with a SAS interface, head, media, and rotational speed of traditional enterprise-class SATA drives with the fully capable SAS interface typical for classic SAS drives.
- SAS Expanders facilitate communication between large numbers of SAS devices.
- Expanders contain two or more external expander-ports. Each expander device contains at least one SAS Management Protocol target port for management and may contain SAS devices itself. For example, an expander may include a Serial SCSI Protocol target port for access to a peripheral device.
- An expander is not necessary to interface a SAS initiator and target but allows a single initiator to communicate with more SAS/SATA targets.
- Edge expanders can do direct table routing and subtractive routing.
- a fanout expander can connect up to 255 sets of edge expanders, known as an edge expander device set, allowing for even more SAS devices to be addressed.
- the subtractive routing port of each edge expanders will be connected to the PHYs of a fanout expander.
- the SAS is further described in White Paper “serial Attached SCSI and Serial Compatibility”, Intel Corporation Doc. 0103/OC/EW/PP/1K—254402-001, 2002, in the Product Manual “Serial Attached SCSI (SAS) Interface Manual”, Publication Ser. No. 10/029,3071, Rev. B, Seagate Technology LLC, May 2006, and in Technology Brief, 40 edition, “Serial Attached SCSI technologies and architectures”, Hewlett-Packard Development Company, L.P., TC0000772, August 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- USB Universal Serial Bus
- USB was designed to standardize the connection of computer peripherals, such as keyboards, pointing devices, digital cameras, printers, portable media players, disk drives and network adapters to personal computers, both to communicate and to supply electric power. It has become commonplace on other devices, such as smartphones, PDAs and video game consoles. USB has effectively replaced a variety of earlier interfaces, such as serial and parallel ports, as well as separate power chargers for portable devices.
- a USB system has an asymmetric design, consisting of a host, a multitude of downstream USB ports, and multiple peripheral devices connected in a tiered-star topology.
- USB hubs may be included in the tiers, allowing branching into a tree structure with up to five tier levels.
- a USB host may have multiple host controllers and each host controller may provide one or more USB ports. Up to 127 devices, including the hub devices (if present), may be connected to a single host controller. USB devices are linked in series through hubs. There always exists one hub known as the root hub, which is built into the host controller.
- a physical USB device may consist of several logical sub-devices that are referred to as device functions. A host assigns one and only one device address to a function.
- USB device communication is based on pipes (logical channels).
- a pipe is a connection from the host controller to a logical entity, found on a device, and named an endpoint. Because pipes correspond 1-to-1 to endpoints, the terms are sometimes used interchangeably.
- a USB device can have up to 32 endpoints: 16 into the host controller and 16 out of the host controller. The USB standard reserves one endpoint of each type, leaving a theoretical maximum of 30 for normal use.
- USB devices seldom have this many endpoints.
- Endpoints are grouped into interfaces and each interface is associated with a single device function.
- endpoint zero which is used for device configuration and which is not associated with any interface.
- a single device function composed of independently controlled interfaces is called a composite device.
- a composite device only has a single device address because the host only assigns a device address to a function.
- USB 1.x and 2.0 specifications provide a 5 V supply on a single wire from which connected USB devices may draw power.
- the specification provides for no more than 5.25 V and no less than 4.75 V (5 V ⁇ 5%) between the positive and negative bus power lines.
- the voltage supplied by low-powered hub ports is 4.45-525 V.
- a unit load is defined as 100 mA in USB 2.0, and 150 mA in USB 3.0.
- a device may draw a maximum of 5 unit loads (500 mA) from a port in USB 2.0; 6 (900 mA) in USB 3.0.
- a low-power device draws at most 1 unit load, with minimum operating voltage of 4.4 V in USB 2.0, and 4 V in USB 3.0.
- a high-power device draws the maximum number of unit loads permitted by the standard. Every device function initially as low-power, but the device may request high-power and will get it if the power is available on the providing bus. Some devices, such as high-speed external disk drives, require more than 500 mA of current and therefore cannot be powered from one USB 2.0 port. Such devices usually come with a Y—shaped cable that has two USB connectors to be plugged into a computer. With such a cable a device can draw power from two USB ports simultaneously.
- a bus-powered hub initializes itself at 1 unit load and transitions to maximum unit loads after it completes hub configuration. Any device connected to the hub will draw 1 unit load regardless of the current draw of devices connected to other ports of the hub (i.e.
- a self-powered hub will supply maximum supported unit loads to any device connected to it.
- the VBUS will present 1 unit load upstream for communication if parts of the hub are powered down.
- USB supports the following signaling rates (the terms speed and bandwidth are used interchangeably, and “high-” is alternatively written as “hi-”).
- a low-speed rate of 1.5 Mbit/s ( ⁇ 183 kB/s) is defined by USB 1.0. It is very similar to full-bandwidth operation except each bit takes 8 times as long to transmit.
- the full-speed rate of 12 Mbit/s ( ⁇ 1.43 MB/s) is the basic USB data rate defined by USB 1.0. All USB hubs support full-bandwidth.
- a high-speed (USB 2.0) rate of 480 Mbit/s ( ⁇ 57 MB/s) was introduced in 2001.
- USB 3.0 USB 3.0
- D+ and D ⁇ characteristic impedance
- Transmitted signal levels are 0.0 to 03 volts for low and 2.8 to 3.6 volts for high in full-bandwidth and low-bandwidth modes, and ⁇ 10 to 10 mV for low and 360 to 440 mV for high in hi-bandwidth mode.
- the cable wires are not terminated, but the HS mode has termination of 45 ⁇ to ground, or 90 ⁇ differential to match the data cable impedance, reducing interference due to signal reflections.
- USB 3.0 introduces two additional pairs of shielded twisted wire and new, mostly interoperable contacts in USB 3.0 cables, for them. They permit the higher data rate, and full duplex operation. The USB is further described in “Universal Serial Bus 3.0 Specification”, Revision 1.0, Jun. 6, 2011, downloaded from www.usb.org, and in Peacock C., “USB in a Nutshell”, 3 rd Release, November 23, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- Such sanitization techniques use non destructive actions, such as deleting files and block erase (such by formatting or overwriting by external dedicated software, for example as required by DOD 5220), while other techniques use destructive means such as physical drive destruction and disk drive degaussing.
- physical drive destruction disks removed from disk drives are broken up or ground into microscopic pieces.
- degaussers may be used to erase magnetic data on disk drives, while creating high intensity magnetic fields that erase all magnetic recordings in a hard disk drive (or magnetic tape).
- a non-destructive means include in-drive encryption using an encryption key.
- the intermediate servers are serving as interposition relay servers that act as a link between the sender and recipient, and passes along the data therebetween.
- the sender, the recipient and the servers are each associated with an IP (Internet Protocol) address for being addressable in the Internet, the method executed by the sender comprising the steps of partitioning the message into a plurality of message slices according to a slicing scheme, each message slice containing one or more of the message elements, associating each message slice with an intermediate server according to an associating scheme, and sending each message slice together with the IP address of the recipient to the server associated with the message slice.
- Each message may use a different slicing scheme and a different associating scheme.
- One or all of the plurality of intermediate servers executes the steps of receiving and identifying a message slice and the IP address of the recipient, and sending the message slice with the IP address to the recipient or to another intermediate server.
- the recipient executes the steps of receiving and identifying a plurality of the message slices, and reconstructing at least part of the original message as it existed before the partitioning step by the sender.
- the sender method steps may be preceded by the step of determining the number of message slices to use for the message partitioning, followed by the step of partitioning the message into the determined number of message slices.
- the number of message slices to use for the message partitioning may be a random number.
- the sender method steps may be preceded by the step of determining the number of message elements in each of the message slices used for the message partitioning, followed by the step of partitioning the message into message slices each having the determined number of message elements.
- the message slices may have the same or distinct number of message elements.
- the number of message elements included in each of the message slices may be a random number.
- the slicing scheme may be based on a non-overlapping partitioning, wherein each of the message elements is included in a single message slice, or an overlapping partitioning, wherein each of the message elements is included in two or more message slices.
- the slicing scheme may be based on sequential partitioning, where the message elements in one or more of the message slices follow one another the same as in the message, or non-sequential partitioning, where the message elements in one or more of the message slices do not follow one another the same as in the message.
- the slicing scheme may be based on interval sequential partitioning, where the message elements in one or more of the message slices are separated by at least one intervening element in the message.
- Each of the message elements may be a bit, a nibble, a byte or a multi-byte word, and may represent a number or a character.
- the sender method may be preceded by a step of padding the message, or padding one or more of the message slices after the partition.
- the slicing scheme may involve partitioning that is based on the current date or the current TOD (Time-of-Day).
- the slicing scheme or any other information about the partitioning may be sent together with one or more of the message slices. Further, information about a message slice is sent together with another slice. The order of sending the message slices may be random, or based on the order of the first message element in each message slice of the message.
- the method of the sender may be preceded by the step of encrypting the message before the partitioning, and partitioning is executed on the encrypted message, and the step of decrypting the reconstructed message follows the method steps at the recipient. Further, the method of the sender may be preceded by the step of encrypting at least part of the message slices after the partition at the sender or at an intermediate server, and the step of decrypting or encrypting a message slice may precede the sending of the message slice at the intermediate server. Further, the step of decrypting at least part of the message slices may precede the reconstruction of the message at the recipient.
- the intermediate servers may be located in geographically disparate locations, such as different cities, different states, different countries or different continents.
- One or more of the intermediate servers may further execute the steps of storing the message slice, the IP address of the sender or the IP address of the recipient.
- the sender or an intermediate server method may further be preceded by the step of storing a list composed of a succession of IP addresses available as source IP addresses for use by the associating scheme.
- the associating scheme may associate a packet including a message slice to each of the IP addresses in the list, such that a distinct source IP address is associated with each message slice.
- the associating scheme may associate the entire or part of the source IP addresses in the list with a packet including a message slice.
- the associating scheme may sequentially or randomly associate the source IP address in the list with the succession of packets including the message slices.
- the source IP addresses may be selected for association from the list randomly, based on the former selection for a message or message slice, or based on the current date or the current TOD (Time-of-Day).
- the sender, the recipient, or an intermediate server may be a dedicated device or part of a device, and may comprise a memory, and a processor configured by the memory to perform the sender, recipient, or intermediate server method.
- a sender may be part of the computer wherein the message to be sent is originated, or connected for receiving the message to be sent from another computer via a network such as a LAN or Intranet, commonly used in an enterprise or other business entity.
- the sender or the receiver may be co-located or integrated with a computer, router (e.g., NAT-enabled router), a gateway or a firewall (e.g., sharing an enclosure, an Internet connection, a LAN connection, an IP address, a processor or a peripheral device), and connected between a LAN and the Internet.
- router e.g., NAT-enabled router
- gateway e.g., sharing an enclosure, an Internet connection, a LAN connection, an IP address, a processor or a peripheral device
- the intermediate servers may be dedicated servers, or may be integrated with other servers (e.g., sharing an enclosure, an Internet connection, a LAN connection, an IP address, a processor or a peripheral device), having a specific distinct functionality, such as a web server, online gaming server, instant messaging server, a database server, a mail server, a FTP file transfer server, e-mail server, audio/video streaming server, a DHCP server, or a DNS server.
- the intermediate server shares with the other server an enclosure, an Internet connection, an IP address, a processor, or a peripheral device.
- part or all of the communication (such as transfer of packets containing message slices) between the sender, the recipient, and the intermediate servers may be based on the source routing technique, either strict or LSRR, or based on onion routing, such as the Tor technique.
- Each or all of the intermediate servers may execute a method for relaying a message from a sender to a recipient.
- the sender and the recipient are each associated with an IP (Internet Protocol) for being addressable in the Internet
- the method executed by an intermediate server includes the steps of receiving from the sender a packet which includes as a payload the message and the recipient IP address, followed by extracting and identifying the message, the sender IP address and the recipient IP address from the received packet, followed by sending the message together with the sender IP address to the recipient or to an intermediate server.
- the method may further include the step of decrypting the message after receiving it. Further, the method may further include the step of encrypting the message before sending it.
- the message is composed of a succession of message elements
- the method executed by one or all of the intermediate servers further includes the steps of partitioning the message into a plurality of message slices, each message slice containing one or more of the message elements, and sending each message slice together with the IP address of the sender to the recipient or to another intermediate server.
- the method may be used for real-time applications or services, and for the delivery of audio or video information, such as VoIP, video conferencing, IPTV or Internet telephony service.
- the slicing scheme or the associating scheme may be random and based on a random number, which may be based on a physical process or on an algorithm for generating pseudo-random numbers.
- An intermediate server may further execute the steps of partitioning the received message slice into a plurality of sub-slices, each sub-slice containing one or more of the message elements, and sending the sub-slices with the IP address of the recipient to another intermediate server or to the recipient.
- the sender steps or the recipient steps may be executed by a dedicated software module, or integrated with the application involved in generating the message to be sent or using the received message.
- the same software module or the same hardware may serve as both the sender and the intermediate server, wherein the sender steps and the intermediate server steps are respectively executed by a single software module or executed by the same processor.
- the same software module or the same hardware may serve as both the recipient and the intermediate server, wherein the recipient steps and the intermediate server steps are respectively executed by a single software module or executed by the same processor.
- the slicing scheme and the associating scheme may be determined at the sender, or the sender method may be preceded by the step of receiving and storing the slicing scheme.
- the slicing scheme and the associating scheme may be received via the Internet from the recipient, from one of the intermediate servers or from another server.
- the slicing scheme and the associating scheme may be periodically received, at random or based on a date or on TOD.
- a slicing may be used in storing a message in multiple memories.
- a CAPTCHA may be used to improve the communication security.
- the CAPTCHA may be added to, integrated with, embedded in or a part of a message or a message slice.
- the message or a portion thereof may be embedded in a CAPTCHA, such as using the characters of a message (or a message slice) as the basis for generating CAPTCHA image.
- the CAPTCHA includes part or all of the information required to decrypt the received message or slice.
- a CAPTCHA may include information about a key public or private) used for encryption.
- the CAPTCHA may include information about the slicing scheme or any other information involving the reconstruction of the sent message.
- scrambling and de-scrambling schemes are used for encrypting and decrypting a digital data content written onto a memory (or memories) or storage (or storages).
- the memory (or storage) physical means may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical storage medium.
- the memory may semiconductor (a.k.a. Solid-state) based, and in the form of a chip, IC, module, ICs mounted on a PCB, memory card, or a rigidly enclosed box.
- the memory may be volatile or non-volatile, and may be of static or dynamic types.
- the memory may be written more than once at any time, or may be written once, as part of the manufacturing process or afterwards (e.g. by the user using a dedicated equipment, or as part of an electronic circuit as part of normal operation).
- the memory may use random or sequential access. Further, the memory may be location-addressable or file-addressable or content-ad
- the memory may employ a non-removable medium, or a removable medium associated with a suitable writer/reader (or read-only) drive.
- a memory may be accessed using a parallel or serial connection or bus, and may be powered from a dedicated connection or from the bus connection.
- the memory is commonly characterized by its capacity and access time, and may be designed as portable or as in-computer enclosure.
- the memory may be a DAS, or part of NAS or SAN.
- a connection herein such as the connection of peripherals in general, and memories in particular to a processor, may use a bus.
- a communication link (such as Ethernet, or any other LAN, PAN or WAN communication links may also be regarded as buses herein.
- a bus may be an internal bus, an external bus or both.
- a bus may be a parallel or a bit-serial bus.
- a bus may be based on a single or on multiple serial links or lanes.
- the bus medium may electrical conductors based such as wires or cables, or may be based on a fiber-optic cable.
- the bus topology may use point-to-point, multi-drop (electrical parallel) and daisy-chain, and may further be based on hubs or switches.
- a point-to-point bus may be full-duplex, or half-duplex. Further, a bus may use proprietary specifications, or may be based on, similar to, substantially or fully compliant to an industry standard (or any variant thereof), and may further be hot-pluggable.
- a bus may be defined to carry only digital data signals, or may also defined to carry a power signal (commonly DC voltages), either in separated and dedicated cables and connectors, or may carry the power and digital data together over the same cable.
- a bus may support master/slave configuration.
- a bus may carry a separated and dedicated timing signal or may use self-clocking line-code.
- an address scrambler that is connectable between a processor (directly connected or via a bus) and the memory (directly connected or via a bus) or memories is disclosed.
- the address scrambler converts the address word to another address word according to a conversion scheme, which may be a one-to-one mapping scheme.
- a data scrambler is connected between a processor (directly connected or via a bus) and the memory (directly connected or via a bus).
- the data scrambler converts the data word to be written to another data word according to a conversion scheme, which may be a one-to-one mapping scheme.
- the inverse conversion scheme may be applied to the data word read from the memory, in order to reconstruct the original word written.
- Each of the data and address scramblers may be connections-based, where the significance of the address or data bits in the address or data words respectively is changed.
- Each of the data and address scramblers may be based on any combinational logic that may be based on discrete logic gates, ASICs, PLDs, memory, processor or any combination thereof.
- the memory may be a non-removable or a removable medium type, where the written information on the medium is scrambled (using address or data scrambling or both), and thus cannot be eligibly read without passing through the suitable de-scrambling scheme.
- the scrambling scheme (or any of the scramblers or both) may be one-time set or programmed, such as in manufacturing, or by the user using a dedicated programmer or on-board programming during regular system operation. Alternatively or in addition, the scrambling scheme may be field changed and overwritten/programmable in the field, such as by the processor accessing the memory. Further, the scramblers may be volatile or non-volatile. Each of the scramblers (or both) may include a random number generator, used to write a random number in defined parts of the memory, such as during write cycles.
- Both data and address scramblers may be simultaneously used in accessing the same memory.
- the scrambler may use same, similar or different scrambling schemes, handle same or different bus widths, and may be based on the same or different implementations and component types.
- the two scramblers may be integrated together to share the same enclosure, mechanical support, connectors, power sources, interfaces or support circuitry.
- the address word, the data word, or both are carried using a bit-serial connection or communication such as serial bus
- the address (or data) word from the processor is first extracted, then the address (or data) word is identified and converted, and then inserted back to the serial stream connected to the memory.
- the conversion may use converting the serial address (or data) word to parallel, converting to another parallel address (or data) word according to a conversion scheme, and the parallel converted word is then serialized and combined over the bit-serial connection or communication.
- An adapter may include a data scrambler, address scrambler, or both, as well as encryption, and interfaces required for connecting to the processor (directly or via a bus) and to the memory (directly or via a bus).
- the adapter, or any part thereof may include passive or power consuming (active) electronic circuits.
- the adapter, or any part thereof may be powered from the power source (AC or DC) or the power supply powering the processor, from the power source (AC or DC) or the power supply powering the memory or both.
- the adapter (or any part thereof) may be powered from a separate or a dedicated power source or power supply.
- the adapter (or any part thereof) may be powered via the bus or other connection to the processor, and may also power feed the memory directly or via the connection or bus.
- the adapter may be powered from a separate or a dedicated power source or power supply.
- the adapter may be powered via the bus or other connection to the memory, and may also power feed the processor directly or via the connection or bus.
- the powering via a connection (such as a connector) or bus may use a dedicated cable, where the cable is having power-dedicated wires or conductors, or by using power and data carried over the same wires such as by using FDM or phantom scheme.
- the adapter includes circuits for splitting the power and data signals, such as a power-pass filter substantially passing the power signal and substantially stopping the data signal, working together with a data-passing filter substantially passing the data signal and substantially stopping the power signal.
- a capacitor connected to a transformer center-tap may be used for separating the power and data signals.
- two transformers may be used, passing the data signal (or signals) between the primary and secondary windings or the transformers, while the power is accessed at the transformers center-taps.
- the adapter may use a dedicated power connector for receiving power thereof, or may use a connector that connect to a cable (such as a bus cable) carrying both power and data over the same cable.
- the adapter (or any part thereof) may be used to supply power to a device connected to it, such as a memory. Such powering may be via a connection or bus that use a dedicated cable, or by using the same cable and having power-dedicated wires or conductors, or by using power and data carried over the same wires such as by using FDM or phantom scheme.
- the adapter includes circuits for combining the power and data signals, such as a power-passing filter substantially passing the power signal and substantially stopping the data signal, working together with a data-passing filter substantially passing the data signal and substantially stopping the power signal.
- a capacitor connected to a transformer center-tap may be used for combining the power and data signals.
- two transformers may be used, passing the data signal (or signals) between the primary and secondary windings or the transformers, while the power is supplied at the transformers center-taps.
- Adapters may be provided (or manufactured) where each one includes a distinct address scrambling scheme, distinct data scrambling scheme, or both. Alternatively, adapters may be provided (or manufactured) in pairs or other groups sharing the same scrambling scheme.
- An adapter or an address/data scrambler may be implemented by software or firmware, hardware or a combination of both.
- the hardware may be a separate physical entity, implemented in the form of a die, an IC, a box-shaped enclosure, or a PCB carrying ICs and other electronic components (such as plug-in or removable module).
- the circuits and functionalities may be integrated with a processor, a memory or an intermediate device, such as hub, switch, router or bus expander.
- the electrical connections can make use of standard expansion or bus connectors, including edge connectors. Each connection may be keyed and preferably supports hot-plugging.
- an adapter for connecting to a processor and to a location-addressable memory capable of storing data words in an address space.
- the memory may be connectable to the processor via a bus of a first type, and the adapter may comprise a first port connectable to a first bus of the first type; a first interface coupled to the first port for receiving a first data word associated with an address in the address space; a second port connectable to a second bus; a second interface coupled to the second port for transmitting a second data word associated with the address; and a scrambler connected between the first and second interfaces for converting the first data word to the second data word, distinct from the first data word; and wherein one of the first and second buses is connectable to a processor and the other is connectable to a memory.
- an adapter for connecting to a processor and to a memory (such as location-addressable memory) having an address space.
- the memory is connectable to the processor via a bus of a first type.
- the adapter comprising a first port connectable to a first bus of the first type for connecting to the processor, a first interface coupled to the first port for receiving a first address word in the address space from the processor; a second port connectable to a second bus for connecting to the memory; a second interface coupled to the second port for transmitting a second address word in the address space to the memory; and a scrambler connected between the first and second interfaces for converting the first address word to a second address word distinct from the first address word.
- the first address word may be converted to the second address word using a one-to-one mapping, and the scrambler may be based only on electrical connections.
- Each of the first and second address words may define a sequence of bits, and the conversion may include re-arranging the sequence of at least two bits of the address words.
- Each of the first and second address words may comprise multiple bits, and a level of significance may be associated with each of the bits, and the conversion may include changing the significance level of at least two bits in the address words.
- the scrambler may be based on logic gates implementing a Boolean function, such as discretely packaged logic gates, PLD, memory or a processor.
- the conversion may be according to a pre-set conversion scheme, which may be is programmable by the processor.
- the scrambler may be coupled to the first bus for being addressed by the processor.
- the second bus type may be of the same type of the first bus, or may be of a type that is distinct from the first bus type.
- the adapter may include the memory, and the memory may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical storage medium, or any combination thereof.
- the memory is file-addressable or content-addressable, and may be part of a NAS or a SAN.
- the memory may be a once written memory, and may be connectable to the processor to be read from, or written to, via the second bus, which may be a parallel bus or a bit-serial bus.
- the adapter may comprise a power supply having a power port couplable to be powered from a power source, where the power supply is having one or more DC outputs for powering at least part of the memory.
- the adapter may comprise a power connector for connecting to the power source, and the power port may be coupled to the power connector.
- the second bus may be based on a cable carrying a power signal, and the adapter may further comprise a bus connector for connecting to the cable, and the power port may be coupled to the bus, and connected for powering the power supply from the power signal.
- the memory may be a random-accessed or a sequential-accessed memory, and may be location-based, randomly-accessed, and can be written multiple times.
- the memory may be volatile and based on semiconductor storage medium, such as: RAM, SRAM, DRAM, TTRAM and Z-RAM.
- the memory may be non-volatile and based on semiconductor storage medium, such as ROM, PROM, EPROM or EEROM, and may be Flash-based, such as SSD drive or USB ‘Thumb’ drive.
- the memory may be based on non-volatile magnetic storage medium, such as HDD.
- the memory may be based on an optical storage medium that is recordable and removable, and may include an optical disk drive.
- the storage medium may be: CD-RW, DVD-RW, DVD+RW, DVD-RAM BD-RE, CD-ROM, BD-ROM or DVD-ROM.
- the adapter or the memory (or both) form factor may be an IC, a PCB on which one or more ICs are mounted, or a box-shaped enclosure.
- the adapter may further comprise an encryptor/decryptor functionality that is using an encryption scheme that is coupled between the first and second interfaces, for encrypting and decrypting digital data between the first and second buses.
- the encryption scheme may be based on AES 128,192 or 256 bits.
- the first bus or the second bus (or both) may each be based on a PAN, a LAN or a WAN communication link.
- the first bus or the second bus (or both) may each be based on Ethernet and may be substantially compliant with IEEE 802.3 standard, and be based on one out of: 100BaseT/TX, 1000BaseT/TX, 10 gigabit Ethernet substantially (or in full) according to IEEE Std 802.3ae-2002as standard, 40 Gigabit Ethernet, and 100 Gigabit Ethernet substantially according to IEEE P8023ba standard.
- the first bus or the second bus may each be based on a multi-drop, a daisy-chain topology, or a point-to-point connection, use half-duplex or full-duplex, and may employs a master/slave scheme.
- the first bus or the second bus (or both) may each be a wired-based, point-to-point, and bit-serial bus, wherein a timing, clocking or strobing signal is carried over dedicated wires, or using a self-clocking scheme.
- Each of the buses (or both) may use a fiber-optic cable as the bus medium, and the adapter may further comprise a fiber-optics connector for connecting to the fiber-optic cable.
- Each of the buses may use conductors such as a bus cable including multiple wires, and the adapter may further comprise a bus connector for connecting to the bus cable.
- the bus cable may carry one or more DC or other power signals, over dedicated wires or over the same wires carrying the digital data.
- the adapter may comprise a power/data splitter arrangement having first, second and third ports, wherein only the digital data signal is passed between the first and second ports, and only the power signal is passed between the first and third ports, and wherein the first port is coupled to the bus connector.
- the power and digital data signals may be carried using FDM, where the digital data signal is carried over a frequency band above and distinct from the power signal.
- the power/data splitter may comprise an HPF coupled between the first and second ports, and a LPF coupled between the first and third ports, or a transformer and a capacitor connected to the transformer windings.
- the power and digital data signals may be carried using phantom scheme substantially according to IEEE 802.3af-2003 or IEEE 802.3at-2009 standards, and the power/data splitter may comprise at least two transformers having a center-tap connection.
- the adapter may at least in part supply one or more power signals are DC type carried over dedicated wires or carried over the same wires carrying digital data.
- the adapter may comprise a power/data combiner arrangement having first, second and third ports, wherein only the digital data signal is passed between the first and second ports, and only the power signal is passed between the first and third ports, and wherein the first port is coupled to the bus connector.
- the power and digital data signals may be carried using FDM, where the digital data signal is carried over a frequency band above and distinct from the power signal, and the power/data combiner may comprise an HPF between the first and second ports and a LPF between the first and third ports.
- the power/data combiner may comprise a transformer and a capacitor connected to the transformer windings.
- the power and digital data signals may be carried using a phantom scheme substantially according to IEEE 8023af-2003 or IEEE 802.3at-2009 standards, and the power/data combiner may comprise at least two transformers having a center-tap connection.
- the adapter may be implemented as a separate physical entity, such as in the form of a die, an IC, a box-shaped enclosure, or a PCB carrying ICs and other electronic components, a plug-in card or a removable enclosure.
- the adapter may be integrated with the memory, integrated with the processor, or with an intermediate device, such as a hub, a switch, a router or a bus expander.
- Each of the buses may be based on a cable, and the respective first port or second port may be a connector connectable to the cable.
- the cable may include conductive wires or may be a fiber-optic cable.
- the first interface or the second interface may comprise a transmitter and a receiver coupled to the connector for respectively transmitting to, and receiving from, the cable.
- the transmitter may use differential signaling, emphasis shaping, or self-clocking line-code, and may employ error detection, alignment, clock-correction or channel-bonding.
- the receiver may use equalization, impedance matching termination, or PLL, and may use decoding and detecting encoding-based errors.
- the first bus may be a serial bus
- the adapter may comprise a serializer and de-serializer coupled between the first interface and the scrambler, for converting to parallel the digital data received from the first interface and for serializing the digital data received from the scrambler.
- the second bus may be a serial bus, and wherein the adapter further comprises a serializer/de-serializer coupled between the second interface and the scrambler, for converting to parallel the digital data received from the second interface and for serializing the digital data received from the scrambler.
- the adapter may be integrated with the processor or the memory, and may comprise a component shared with the processor or the memory.
- the adapter may comprise a single enclosure housing the first and second ports, the first and second interfaces and the scrambler, and the enclosure may further house the processor or the memory.
- the adapter may comprise a power supply for powering at least part of the adapter, and the power supply may be connected to also power the processor or the memory.
- the adapter may comprise components mounted on a substrate (such as a PCB), and the substrate may be used to also support the processor or the memory.
- a set of two or more adapters wherein both adapters use scramblers having the same scrambling schemes.
- the adapters may be are mechanically attached, mechanically detachable or both.
- the adapter may be formed as a plug-in and removable unit with the memory or a computer including the processor.
- the adapter may be used for DRM, allowing access or authentication to a scrambled software.
- information is stored in multiple memories.
- the information is overlapping or non-overlapping split into multiple portions stored in the multiple memories.
- the splitting may be address based, data (such as data word) based, or both.
- the address space required is overlapping or non-overlapping split between the memories, where each address is associated with an address (or multiple addresses) in the memories using a mapping scheme.
- the mapping may be sequential or non-sequential.
- the data word to be stored is overlapping or non-overlapping split between the memories using a mapping scheme.
- the locations in the memories not used may be filled with random data.
- FIG. 1 a depicts schematically the Internet and computers connected to the Internet
- FIG. 1 b illustrates an example of a construction of an IP-based packet
- FIG. 2 depicts schematically the transfer of data over the Internet
- FIGS. 3 a , 3 b and 3 c depict schematically the path of message slices over the Internet in a first example
- FIG. 4 depicts schematically the path of a message slice over the Internet in a second example
- FIG. 5 illustrates schematically a simplified flow chart of part of a method for slicing, packetizing, and sending a message
- FIG. 6 illustrates schematically a simplified flow chart of part of a method for receiving and reconstructing a message
- FIG. 7 illustrates an example of a construction of an IP-based packet carrying a message slice
- FIG. 8 illustrates an example of a construction of an IP-based packet carrying a message slice
- FIG. 9 a illustrates schematically a simplified flow chart of part of a method for single hop relaying a message slice
- FIG. 9 b illustrates schematically a simplified flow chart of part of a method for multi-hop relaying a message slice
- FIG. 10 illustrates an example of a construction of an IP-based packet carrying a message slice in multi-hop relaying
- FIG. 11 depicts schematically a firewall device connected between the Internet and a LAN
- FIG. 12 depicts schematically a firewall device and another device connected between the Internet and a LAN;
- FIG. 13 illustrates schematically a general computer system connected to the Internet
- FIG. 14 depicts schematically the path of message slices over the Internet in an example
- FIGS. 15 a and 15 b depict schematically the path of message slices over the Internet in an example where the same device is used as source computer, a relay server and a firewall;
- FIG. 16 illustrates a schematic electrical diagram of part of a computer system
- FIG. 17 illustrates a schematic electrical diagram of interfacing a memory as part of a computer system
- FIG. 18 illustrates a schematic electrical diagram of an address scrambler interfacing a memory
- FIG. 19 illustrates a schematic electrical diagram of a connections-based address scrambler interfacing a memory
- FIG. 19 a illustrates a schematic electrical diagram of discrete logic gates based address scrambler interfacing a memory
- FIG. 19 b illustrates a schematic electrical diagram of a general logic based address scrambler interfacing a memory
- FIG. 19 c illustrates a schematic electrical diagram of a memory based address scrambler interfacing a memory
- FIG. 20 illustrates a schematic electrical diagram of a data scrambler interfacing a memory
- FIG. 21 illustrates a schematic electrical diagram of a connections-based data scrambler interfacing a memory
- FIG. 21 a illustrates a schematic electrical diagram of a one-way logic block based data scrambler interfacing a memory
- FIG. 21 b illustrates a schematic electrical diagram of a two-way logic block based data scrambler interfacing a memory
- FIG. 21 c illustrates a schematic electrical diagram of a memory based data scrambler interfacing a memory
- FIG. 21 d illustrates a schematic electrical diagram of a data scrambler interfacing a memory, based on a two-way logic block and a random number generator combined;
- FIG. 22 illustrates a schematic electrical diagram of data and address scramblers interfacing a memory
- FIG. 22 a illustrates a schematic electrical diagram of data and address scramblers interfacing a memory
- FIG. 22 b illustrates a schematic electrical diagram of an adapter connected between a memory and a processor
- FIG. 22 c illustrates a schematic electrical diagram of data and address scramblers interfacing a removable-medium memory
- FIG. 23 illustrates a schematic electrical diagram of an address scrambler serially interfacing a memory
- FIG. 24 illustrates a schematic electrical diagram of a data scrambler serially interfacing a memory
- FIG. 25 illustrates a schematic electrical diagram of a shared powering scheme
- FIG. 26 illustrates a schematic electrical diagram of a separate powering scheme
- FIG. 27 illustrates a schematic electrical diagram of an adapter powering scheme
- FIG. 27 a illustrates a schematic electrical diagram of a powering scheme of an adapter and a memory
- FIG. 27 b illustrates a schematic electrical diagram of an adapter powering scheme
- FIG. 27 c illustrates a schematic electrical diagram of a powering scheme of an adapter and a memory
- FIG. 28 illustrates a schematic electrical diagram of a powering scheme of an adapter and a bus
- FIG. 28 a illustrates a schematic electrical diagram of a powering scheme of a bus-powered adapter
- FIG. 29 illustrates a schematic electrical diagram of a powering scheme of a bus-powered adapter and a powered-bus
- FIG. 30 illustrates a schematic electrical diagram of FDM power/data signals combining/splitting circuit
- FIG. 31 illustrates a schematic electrical diagram of FDM power/data signals combining/splitting circuit using capacitor and transformer
- FIG. 32 illustrates a schematic electrical diagram of phantom scheme power/data signals combining/splitting circuit
- FIG. 33 illustrates a schematic electrical diagram of an adapter including encryption functionality
- FIG. 34 depicts schematically a laptop and flash drive
- FIG. 34 a depicts schematically a laptop and flash drive inserted thereto
- FIG. 35 depicts schematically a laptop, an adapter, and flash drive
- FIG. 35 a depicts schematically a laptop, an adapter and a flash drive inserted thereto;
- FIG. 35 b depicts schematically a laptop, a flash drive, and an adapter inserted thereto;
- FIG. 35 c depicts schematically an adapter, a flash drive inserted thereto, and a laptop;
- FIG. 36 depicts schematically an HDD, a motherboard, and bus cables for connecting them;
- FIG. 36 a depicts schematically an HDD connected via a bus to a motherboard
- FIG. 37 depicts schematically an HDD, an adapter, a motherboard, and bus cables;
- FIG. 37 a depicts schematically an HDD connected to a motherboard via an adapter using bus cables
- FIG. 38 depicts schematically a cellular telephone handset and a memory card
- FIG. 39 depicts schematically a cellular telephone handset, an adapter, and a memory card
- FIG. 39 a depicts schematically the connections of a cellular telephone handset, an adapter, and a memory card
- FIG. 40 depicts schematically an HDD and a plug-in adapter
- FIG. 41 depicts schematically an adapter based on rotary switches
- FIG. 41 a depicts schematically an adapter based on rotary switches connected to a motherboard
- FIG. 42 depicts schematically a motherboard including an adapter based on rotary switches
- FIG. 43 depicts schematically a set of detachable USB adapter pair
- FIG. 44 depicts schematically a set of detachable SIM adapter quad
- FIG. 45 illustrates a schematic electrical diagram of splitting/combining using multiple memories via adapters
- FIG. 45 a illustrates a schematic electrical diagram of splitting/combining using multiple memories
- FIG. 46 illustrates a schematic electrical diagram of data word splitting/combining using multiple memories
- FIG. 46 a illustrates a schematic electrical diagram of data word splitting/combining using multiple memories and random numbers.
- a message to be transmitted via the Internet is first sliced into one or more parts (‘slices’). Each message slice is combined with the ultimate destination address, and slicing information.
- the modified message encapsulating the slice of the message and the ultimate destination address is sent as one or more packets to a relay server on the Internet, which is not necessarily associated with the ultimate destination device.
- the relay server may then identify the ultimate destination and forward the message slice to the ultimate destination (with the source address encapsulated into the packets), or alternatively send the message to another relay server, which will repeat the process.
- the laptop 12 a (‘sender’) wishes to send a message to the desktop computer 13 c (‘receiver’ or ‘recipient’) via the Internet 11 as shown in FIG. 2 above.
- the credit card number “9182 8374 6547” is to be exchanged between the purchasing client at laptop 12 a and the store desktop computer 13 c .
- the credit card number is sliced into three parts: slice #1 being “9182”, slice #2 being “8474” and slice #3 consisting of “6547”.
- the slice #1 combined with the destination 13 c IP address and the number ‘1’ as identifying the slice, is sent as a regular packet to the server 14 b , functioning as a relay server.
- the packet or packets may use the path 31 a as using the link 17 g for transporting the packets to the router 15 j , and path 31 b for transferring the packets from the router 15 j to the server 14 b over link 17 f .
- the destination computer 13 c ‘receiver’ or ‘recipient’) IP address or any other identification of the destination are not encapsulated within the payload of the sent packets, and not as part of the header of the packets.
- the relay server 14 b Upon proper receipt of the packets from the source laptop 12 a , the relay server 14 b decodes the destination address from the packets payload, adds the source address to the message received (if required) and pass along the newly formed message as packets to the destination computer 13 c over the Internet.
- the packets may use the paths 31 c , 31 d , 31 e and 31 f over the respective communication links 17 f , 16 g , 16 h and 17 c , forming a communication path from the server 14 b , via routers 15 j , 151 and 15 d to the destination 13 c , as shown in network 30 of FIG. 3 a.
- the slice #2 is sent as regular packets to another server 14 d (preferably different from the relay server 14 b used for handling slice #1), functioning as a relay server.
- the packets relating to slice #2 are transported using the paths 33 a , 33 b and 33 c respectively using communication links 17 g , 16 g and 17 d , via routers 15 j and 15 i , as shown in network 32 in FIG. 3 b .
- the relay server 14 d retransmits the received message (which includes slice #2), encapsulated as packets payload together with the source 12 a IP address, to the destination 13 c , for example using paths 33 d , 33 e , and 33 f over the respective communication links 17 d , 16 h and 17 c , via routers 15 i and 15 d.
- the slice #3 is sent as regular packets to another server 14 c (preferably different from the relay servers 14 b and 14 d respectively used for handling slices #1 and #2), functioning as a relay server.
- the packets relating to slice #3 are transferred using the paths 35 a , 35 b , 35 c , and 35 d respectively using communication links 17 g , 16 a , 16 d , and 17 h , via routers 15 j , 15 h , and 15 g , as shown in network 34 in FIG. 3 c .
- the relay server 14 c retransmits the received message (which includes slice #3), encapsulated as packets payload together with the source 12 a IP address, to the destination 13 c , for example using paths 35 e , 35 f , 35 g , 35 h , 351 and 35 j over the respective communication links 17 h , 16 e , 16 m , 16 n , 16 j and 17 c , via routers 15 g , 15 c , 15 a , 15 b and 15 d.
- the destination computer 13 c receives and identifies the three messages including the IP address of laptop 12 a as the source for these three messages. Further, the slices “8374”, “6547” and “9182” (respectively received from encryption routers 14 b , 14 d and 14 c ) are then decoded together with their respective identifications “2”, “3” and 1”, thus enabling the destination to reconstruct faithfully the original message as “9182 8374 6547”.
- a single relay server was used in each path of a slice of the message (single ‘hop’)
- a plurality of relay servers may be used in one or more slice-related paths between a source and destination.
- a non-limiting example of using two relay servers 14 c and 14 a are shown in network 40 in FIG. 4 .
- a specific slice-related message is shown to be transported from the source laptop 12 a first to the relay server 14 c using paths 41 a , 41 b , 41 c and 41 d over the respective communication links 17 g , 16 a , 16 d , and 17 h via routers 15 j , 15 h and 15 g .
- the slice-related message is then routed to the relay server 14 a using paths 41 e , 41 f , 41 g and 41 h over the respective communication links 17 h , 16 e , 16 m and 17 b , via the respective routers 15 g , 15 c and 15 a .
- the relay server 14 a re-transmits the slice and its appended information to the destination desktop computer 13 c using paths 41 i , 41 j , 41 i , 41 k and 41 l over the respective communication links 17 b , 16 n , 16 j and 17 c , via routers 15 a , 15 b and 15 d.
- the various slices are transported over different paths, with minimum overlapping paths.
- any single point of interception or eavesdropping on the Internet 11 will not be able to monitor or intercept the whole message, but at most puts a single slice (or less probably few slices) in danger.
- the message slicing described herein is distinct from the fragmentation used as part of the regular packet handling in various protocols, in order to adjust the size of packets for adapting to the various technologies used for the transmission.
- an MTU Maximum Transmission Unit
- MTU Maximum Transmission Unit
- the relay servers 14 a , 14 b , 14 c and 14 d described in the above non-limiting example are geographically disparate, in order to increase the probability of introducing different and remote paths in the Internet for the various slices.
- the source computer 12 a and the destination computer 13 c may each be at geographical locations distant from the relay servers.
- the servers may be located in different continents, such as a relay server 14 a in Europe, a relay server 14 b in Asia, a relay server 14 c in North-America, and a relay server 14 d in Australia.
- the source computer 12 a may be in Africa and the destination computer 13 c located in South-America.
- the servers may be located in different countries, such as the relay server 14 a in Canada, the relay server 14 b in Mexico, and the relay server 14 c in the US.
- distant locations in the same country may be used, such as one relay server at the East-Coast and one at the West-Coast of North-America.
- communication security is enhanced since no packets in the Internet are transported containing (in the IP header) both IP addresses of the source computer 12 a and the destination computer 13 c .
- Packets sent from the source computer 12 a to the first hop include the IP address of the source computer 12 a and the IP address of the relay server acting as a temporary destination.
- the IP address of the ultimate destination computer 13 c is embedded in the payload, thus hidden from routers and other devices in the path, that are typically handling and processing only the packet header.
- the packets reaching the destination computer 13 c include the IP address of the ultimate destination computer 13 c and the IP address of the relay server acting as an intermediate destination; however the IP address of the source computer 12 a is hidden in the payload, and cannot easily be exposed.
- any interception or eavesdropping on the Internet 11 cannot identify the communication packets exchanged between the actual computer source 12 a and the ultimate destination 13 c by analyzing the IP header of the packets.
- Encryption algorithms used for security over the Internet commonly involves the exchange of encryption related information and other handshaking before the actual transmission of the message is taking place.
- One non-limiting example is the exchange of public-key in the RSA algorithm or any other public-key based cryptography.
- Such prior communication enhances the communication vulnerability for interception. Since the slicing scheme may be known in advance to the ultimate destination, the method described herein is not inherently based on exchanging any information between the sender and the ultimate destination prior to sending of a message, thus simplifying the transmission process and improving the message transfer security.
- the method provides a strong degree of unlinkability, where an eavesdropper cannot easily determine the sender and the receiver/recipient, of a given message, or part of a message.
- common end-to-end encryption schemes (such as the RSA algorithm) are based on the exchange of the public key and the encrypted message between the end devices, revealing the existence of such communication.
- encryption or any other manipulation of a message may not be suitable.
- it may be required for legal purposes to provide non-repudiation of a message (e.g., e-mail).
- the method described herein provides a mechanism for secure delivery of the native message, without any altering of, tampering with or manipulating the message (except for its slicing). Hence, it may be used as a substitute (or as addition) for digital signature or any other authentication method, providing a non-repudiation capability.
- the relay servers used to carry a message may store a replica of the message slices relayed through them, allowing a simple way to prove a message delivery, yet obviating from having the whole message stored in a single location other than the ultimate destination computer.
- the method described herein makes use of existing protocols, and does not interfere with any Layer 4, Layer 3 or any lower layers, thus enabling the use of any existing and standard hardware, programs, protocols and applications.
- the method described herein further improves the authentication of the communication between the source computer and the ultimate destination computer, thus improving the protection against spam, forgery and fraud.
- the recipient computer expects messages from the source computer to arrive in slices from multiple relay servers. Hence, a packet arriving directly from the source computer (e.g., having the IP address of the source computer in the IP header), or a packet including a complete message, are suspected and not verified as being a genuine message actually sent by the source computer. Further, in some embodiments the slicing of the message into message slices should conform to an agreed upon slicing scheme known to the ultimate destination computer, and thus a message that is wrongly sliced (not according to the agreed upon slicing scheme) is suspected not to be sent by the source computer.
- the source computer originating the message transmission (such as computer 12 a in the above non-limiting example) generally executes the flow chart 50 shown in FIG. 5 .
- the first step 51 ‘Receive Message’ involves receiving the message to be sent.
- the message may be obtained directly from a user, such as a user typing the message on a keyboard being part of, or connected to, the source computer.
- the message may be received by another application running on the same computer or in another connected computer. While the message exampled above in FIGS. 3 a -3 c involved the numbers of a credit card for commercial transaction over the Internet, the message may include any type of data, and be used for any type of application.
- the message may include any collection of numbers, characters, images or any other types of symbols.
- a message may include one or more of strings (at any length), including characters that may represent letters, numerical digits, punctuation marks and control characters.
- strings at any length
- Common characters use the ASCII (American Standard Code for Information Interchange) standard, which includes definitions for 128 characters, each using 7 or 8 bits per character.
- a step 52 ‘Encrypt Message’ may be executed, where the message is encrypted in order to add an additional level of security to the message delivery mechanism.
- the message is not encrypted, and the security of the delivery is based on other or none security means, together with the splitting and using of different paths described herein.
- the message content is split into multiple parts (‘slices’).
- the credit card number “9182 8374 6547” may be split into three non-overlapping parts as described above, being “9182”, “8374” and “6547”.
- the message may be split into overlapping parts, wherein parts of the message are included in more than a single slice.
- the credit card number “9182 8374 6547” may be split into the slices set “9182 8374”, “8374 6547”, and “6547 9182” or the alternative set “47918283”, “82837465”, and “74654791”, where each part includes half of the ‘former’ slice and half of the ‘next’ slice (using the cyclic approach, where the last digit is considered to be before the first one).
- any two slices out of three includes the whole message, and as such allows for reconstruction of the sent message even in the case where one of the slices was lost.
- any number of slices may be used, and the security of the whole message is improved as more slices are used.
- the message may be split to the bits level, and each bit will be carried as a slice in a separate packet.
- 8-bits aggregation (byte) or character-based splitting may equally be used.
- the number of slices can alternatively (or in addition) be dependent upon the number of relay servers available or chosen for the transmission of the message. For example, in the case wherein the message is to be transmitted to three relay servers (such as relay servers 14 b , 14 d and 14 c used in the non-limiting example of FIGS. 3 a -3 c above), 3 slices per message are used, where each slice is transmitted via a different relay server. Further, any multiplication of the number of relay servers to be used may equally be the number of slices. For example, in the case where the message is to be transmitted to three relay servers, the number of slices may be 6, 9, or 12, where each relay server respectively handles 2, 3, or 4 slices.
- a slice may include parts of the message having fixed (or variable) slicing intervals. Referring to the above non-limiting example where the message is the credit card number to be sent as a message is “9182 8374 6547”, and assuming three slices, the message may be split into the slices set “9275”, “1844”, and “8367”, having a step (‘distance’) of three places (two digits) between each any two digits in the slices.
- the message to be sent includes three octets (bytes) of bits, being “01010101 11110000 00111100”, using two bit intervals forms the slices set “01010011”, “10110010”, and “01110010”.
- Other forms of interlacing may be equally used.
- Such non-sequential form provides improved security since no slice includes any meaningful or eligible information, and thus cannot be identified even as part of a message if intercepted.
- the non-sequential slicing may use combining non-adjacent bits, nibbles, bytes, characters, and strings into the slices.
- the splitting non-limiting examples above involved splitting into equal length of slices.
- the message is the credit card number to be sent as a message is “9182 8374 6547”
- the message was exampled to split into three non-overlapping parts, being “9182”, “8374” and “6547”.
- all three slices include exactly 4 digits.
- non-equal length of data slicing may as well be used.
- the above message may be split into three slices being “9”, “182 8374 65”, and “47”, respectively having 1, 9 and 2 digits.
- the destination may still easily reconstruct the original message based on the slice numbering mechanism.
- Padding may be included as part of the slicing scheme.
- the message is the credit card number to be sent as a message is “9182 8374 6547”
- the slicing scheme involves slicing into 3 non-overlapping slices of 5 numbers each
- the message may be padded by adding characters in the beginning of the message, or at the end, or both.
- the added characters may have no impact on the message such as adding ‘SPACE’ characters, or adding non-numbers characters to the numbers based message.
- the characters T or ‘@’ may be added, amending the message to be “@@9182 8374 6547@”, and the 3 slices are in such a case “@@918”, “28374” and “6547@”.
- Equal length slices results in equal length packets, thus if intercepted, the packet or the slice length provides no information about the location of the slice in the message.
- the padding scheme may include adding characters or other information any place in the message or slice, not limited to the beginning or end of the message or slice.
- padding is used in order to reduce the eligibility of the slices if intercepted.
- padding is added in a random manner (e.g., random characters or random placing or both) known only to the ultimate destination computer, thus allowing it to reconstruct the original message by removing the added characters or elements.
- Sharing the information about the padding scheme used may be an integral part of the coordination of the slicing scheme.
- the slices carry the padding information in the slices.
- Each packet may include the padding information of the slice included in that packet.
- a packet includes information about the padding of the other slices.
- the first character of a slice (or anywhere else in the packet) includes the character used for padding in another slice. The first slice will include the character of the second slice, the second slice will include the character of the third slice, and the third slice will include the character of the first slice.
- the message is the credit card number to be sent as a message is “9182 8374 6547” and is required to be sent as non-overlapping 3 slices of 6 characters each, the slices may be “@918*2”, “#@8374” and “*654 #7”.
- the slices are sequentially and individually handled, based on a pre-determined order (or randomly).
- a single slice out of the available slices to be sent is selected to be handled first.
- the slice including the first part of the message e.g., the first character or first bit
- the slice including the last part of the message e.g., the last character or last bit
- the slices are handled (and sent) in a random order.
- the slice may be encrypted. It should be noted that this step 57 is distinct from step 52 , where the latter involved encrypting the message as a whole block, while step 57 involves encrypting only a part (a single slice) of the message.
- the encryption in the ‘Encrypt Slice’ step 57 can be used as an addition or as an alternative to the whole message encryption of ‘Encrypt Message’ step 52 .
- the relay server serving as the intermediate node for delivery of the currently selected slice. For example, in the above example shown in FIG. 3 a , it was determined that the relay server 14 b will be used for the first slice to be sent. It should be noted that a single relay server per message may equally be used, where all the slices are transported via the single relay server.
- the source computer holds a list of the IP addresses of the available relay servers that can be used. For each message to be sent, the source computer can select to use all or part of the pool of the available relay servers. Further, the source computer may decide to use only part of the available relay servers for all the messages to be sent. In addition, the source computer may decide to use the same set of relay servers (which may be the all or part of the available ones) for all messages to be sent, or to use a different set of relay servers for each message sent.
- the selection of relay server to use may be sequential or otherwise orderly planned, or alternatively be a random selection. The selection may further be based on information relating to the relay servers.
- the location of the relay servers may be used to determine which servers to use. For example, only relay servers which are geographically located outside the country (or continent) in which the source computer is located may only be selected. Similarly, only relay servers which are geographically located outside the country (or continent) in which the ultimate destination computer is located may only be selected. Other information such as past information regarding traffic through the relay servers or other communication related information may be used.
- the source computer may select to use the whole set (‘ABCDE’) or only part of the set such as (‘ABDE’). In the latter case, no slice will be forwarded to the relay server ‘C’ for any message to be sent. Further, the source computer may decide to use the entire set for any message sent, hence any message will be split into at least 5 slices, carried through the 5 relay servers (‘ABCDE’), wherein at least one slice is transferred via each relay server. Alternatively (or in addition), the source computer chooses to split the set of servers into two or more overlapping or non-overlapping groups.
- the slices will use the relay server in an orderly way (disregarding the messages forming the slices), where a first slice will use a relay server ‘A’, a second slice the relay server ‘B’, and so on, using the cyclic order so that the relay server ‘A’ will be used again after the relay server ‘E’ is used.
- a first slice message may draw the relay server ‘A’, the next one may draw the relay server ‘D’, and so on.
- a first message may draw the relay servers ‘AD’, a next one may draw the relay server ‘BDE’, and so on.
- the source computer stores only a single relay server IP address, and the first slice is sent to this relay server.
- the encryption computer sends to the source computer the IP address and any other information required relating to the next relay server to use.
- the process is repeated in the second relay server, sending to the source computer the third relay server to use and so forth.
- the process may be initiated by using the first relay server that was used for the former message, or preferably the first slice of the next message will use the relay server whose identity was received after the last slice of the former message was sent.
- the packet to be sent to the determined relay server which includes the selected slice is prepared in a ‘Construct Packet’ step 59 .
- a non-limiting example of a packet 70 is shown in FIG. 7 .
- the IP Header field 71 f includes in the destination field 71 c the IP address of the relay server determined in the ‘Determine Relay server’ step 58 , and in the source field 71 d the IP address of the computer transmitting the selected slice.
- the IP address of the laptop 12 a will be used as the ‘Source IP Address’ and the IP address of the relay server 14 b will be used as the ‘Destination IP Address’.
- the IP Data field 71 g will include the selected slice in field ‘Slice #n’ 71 b (that may be encrypted in the case the data was encrypted in the ‘Encrypt Slice’ step 57 or in the ‘Encrypt Message’ step 52 , or both). Further, the IP Data field 71 g contains information in the field ‘Sequence Identifier’ 71 h regarding the slicing mechanism for allowing the receiving entity to reconstruct the message from the received slices. For example, in the case of slicing based on sequential order, the number of this slice in the whole message is provided.
- the IP Data field 71 g further contains in the field ‘Ultimate Destination IP Address’ 71 i the IP address of the computer on the Internet which is the ultimate destination for the whole message, such as the IP address of the computer 13 a in the example in FIG. 3 a above.
- the ‘Frame Footer’ field 71 a and the ‘Frame Header’ field 71 e are added to the packet as required. Hence the constructed packet will be transported over the Internet from the sender computer to a relay server as the first hop, while including all the required information for reconstructing the message out of its slices and about the final destination.
- a ‘Send Packet’ step 49 the packet that was prepared in the ‘Construct Packet’ step 59 is actually sent by the source computer to the Internet, where the packet 70 starts its way towards the specified relay server.
- a ‘Whole Message Sent?’ step 54 the status of the slices is checked. In the case all the slices forming a message were handled and sent, the message related activity is ended in the ‘END’ step 55 . If not all the slices were handled, a slice that was not yet selected is selected to be handled in the ‘Select Next Slice’ step 56 , and being handled as described above. Hence, the process will be repeated for all the available slices until all the slices of the message received in ‘Receive Message’ step 51 are sent encapsulated as packets. While the flow chart 50 suggests that a packet containing a slice is transmitted before another slice is selected for handling, the arrangement equally relates to preparing all slices first and afterwards sending all the packets containing those slices.
- one slice is chosen at a time and sent in a packet in the ‘Send packet’ step 49 .
- few or all of the packets, including the slices are first stored, and afterwards sent in an orderly manner, or preferably in a random manner. In the latter case, the sequence of sending the packet provides no information regarding the order of the slices in the original packet.
- the relay server serving as an intermediate node (such as server 14 b in the above example shown in FIG. 3 a ) generally executes the flow chart 90 shown in FIG. 9 a .
- the first step 91 ‘Receive Packet’ involves receiving the packet 70 prepared by the source computer in the ‘Construct Packet’ step 59 and sent in the ‘Send Packet’ step 49 .
- the encrypted data is decrypted in the ‘Decrypt Packet’ step 92 .
- the ‘Ultimate Destination IP Address’ field 71 i is encrypted, this field is preferably decrypted in order to allow proper sending of the slice to the required ultimate destination.
- the various fields included in the packet are identified in an ‘Identify Fields’ step 93 .
- the IP address 71 i of the ultimate destination is identified in a ‘Determine Ultimate Destination’ step 94 .
- a packet 80 shown in FIG. 8 is constructed by the relay server as part of a ‘Construct Packet’ step 95 .
- the packet 80 contains an IP Header 81 f which includes the ‘Relay server IP Address’ 71 c as identifying the packet sender, and the ‘Ultimate Destination IP Address’ field 71 i identifying the message ultimate receiver.
- the original message IP address may also be included in the IP Data field 81 g , as the ‘Source IP Address’ 71 d , intended to be used by the ultimate message destination in order to identify the message originator.
- the ‘Frame Footer’ field 81 a and the ‘Frame Header’ field 81 e are added as required, to form an eligible packet that can be routed via the Internet.
- the packet 80 is then sent to the Internet in a ‘Send Packet’ step %, and thus completing the relaying of the slice in an ‘END’ step 97 .
- the computer serving as the message destination node (such as desktop computer 13 c in the above example in FIG. 3 a ), generally executes the flow chart 60 shown in FIG. 6 .
- the first step 61 ‘Receive Packet’ involves receiving the packet 80 prepared by the encryption router in the ‘Construct Packet’ step 95 and sent in ‘Send Packet’ step 96 in FIG. 9 a , follows by identifying the various fields of packet 80 in a ‘Identify Fields’ step 62 .
- the slice was encrypted in the ‘Encrypt Slice’ step 57 (in FIG. 5 ); the mating decrypting algorithm is executed in the ‘Decrypt Slice’ step 63 , in order to recover the original slice.
- the slice and all other related information carried in the packet 80 are stored as part of a ‘Store Information’ step 64 .
- the destination computer reverts to wait in order to receive the rest of the packets required for reconstructing the original message in the ‘Receive Packet’ step 61 .
- the various slices are properly combined in order to reconstruct the original message in a ‘Reconstruct Message’ step 66 .
- the mating decrypting algorithm is executed in the ‘Decrypt Message’ step 67 , in order to recover the original pre-encryption message.
- the recovered message may be used by the destination computer in a ‘Use Message’ step 68 .
- FIGS. 5-9 a While it has been exampled in FIGS. 5-9 a above for the case wherein a single relay server is used for a slice delivery mechanism, the arrangement equally applies to using two or more relay servers for the transfer of a single slice from a source computer to a destination computer.
- the providing of additional hops in the transport mechanism improves the communication security. For example, since the packets are delivered over the Internet having in the IP header which is neither the IP address of the source nor the ultimate destination, the packets are less vulnerable to IP addresses based interception.
- FIG. 4 A non-limiting example of delivery of a slice using two relay servers is described in FIG. 4 above.
- the computer serving as the relay server (such as the relay server 14 c in the above example in FIG. 4 ), generally executes the flow chart 98 shown in FIG.
- the intermediate relay server sends the packet including a slice not directly to the ultimate destination (such as desktop computer 13 c in FIG. 4 example), but rather to another intermediate relay server (such as relay server 14 a in FIG. 4 example).
- a packet 100 shown is FIG. 10 is composed in a ‘Construct Packet’ step 95 .
- This packet contains in its IP Header 101 b the ‘next’ relay server IP address in the ‘Next Relay server IP Address’ field 101 d (as the packet destination), and the current relay server IP address as the source address in the ‘Current Relay server IP Address’ field 101 f .
- the IP data 101 c of the packet 100 contains both the ‘Source IP Address’ field 71 d (as in packet 80 ) and the ‘Ultimate Destination Address IP Address’ field 71 i (as in packet 70 ).
- the ‘Frame Footer’ field 101 a and the ‘Frame Header’ field 101 e are added as required to form an eligible packet that can be routed via the Internet, and the formed packet 100 is then sent in ‘Send Packet’ step %, ending the retransmission process in the ‘END’ step 97 .
- the flow chart 98 is repeated in all intermediate relay servers serving as hops for a slice, except the ‘last’ relay server which sends the slice to the ultimate destination, and thus executing flow chart 90 described above.
- a relay server may serve one or multiple source computers, and may be used for relaying a single slice or multiple slices of a message.
- the anonymity and untraceability may be improved and better protection against traffic analysis can be provided by padding all outgoing packets to a constant length, fixing a constant sending rate by sending null or dummy packets, and other means of unifying the forwarded packets.
- the slices-including packets from the various computer sources may be scrambled and forwarded in an order not based on the input order, such as by randomly selecting the packets to be relayed. Other techniques such as Chaum mixes may be used or the purpose of non-repeating and hiding the correspondences between input and output packets.
- a relay server may combine multiple slices originated from multiple senders (source computers or other relay servers) to a single message or packet, which is sent to another relay server which then split it into separated slices, making it difficult to attacker to perform traffic analysis.
- a message may not be partitioned and sent as a single slice in a single packet.
- all the messages are sent over the Internet without being sliced.
- the method and the parameters used for the slicing mechanism should be known to it.
- the destination computer should know if a non-overlapping or an overlapping partition is used. If non-overlapping splitting is used, such as using sequential and equal-length character-based slicing where each slice includes one or more characters, the ultimate destination computer needs to know how many slices are forming the original message, or how many characters are included in each slice. In the example above of the credit-card number containing twelve characters which are split into three slices having four characters each, the ultimate destination computer needs to know that three slices are forming the original credit-card number. Alternatively (or in addition), the ultimate destination computer needs to know that each slice contains exactly four characters out of the twelve characters consisting of the original message.
- the splitting mechanism is fixed and is not changed over time or per message. All messages sent by all sources are using the same mechanism, which is also known in advance to all the ultimate destination computers.
- the splitting mechanism for all messages to-be-sent may consist of splitting into 3 non-overlapping slices.
- all the ultimate destination computers will receive exactly three packets containing exactly three slices, thus receiving three packets/slices enables the composing of the original message from its three parts.
- messages are delivered in the network using different splitting schemes, using different parameters for same splitting schemes or both.
- each of the potential sources is assigned a splitting scheme or a parameter of a specific splitting scheme. For example, some of the source computers in the network will only use sequential slicing, while others may use non-sequential slicing. Further, some of the source computers assigned to use sequential slicing will only use a specific number of slices, while the others will only use a different number of slices per message. For example, some may use 3 slices per message while others will only use 4 slices per message.
- the potential ultimate destination computers have a look-up table which associates for each source computer (e.g., identified by its IP address) the splitting scheme and parameter used by this source computer.
- the destination computer 13 c will identify the source computer 12 a (by its IP address) upon receiving the first packet associated with it.
- the look-up table stored in the destination computer 13 c associates sequential, non-overlapping, and 3 slices per message to this specific source computer 12 a , hence the destination computer 13 c waits until the entire 3 packets (including 3 slices) are received, and then the slices are sequentially combined to form the original message.
- the source computer independently selects which using splitting scheme to use, or which parameter to use for the selected splitting scheme, or both. These selections are not coordinated with any ultimate destination computer or with any other entity in the network.
- the selection of which splitting scheme to use or the parameter to be used (or both) may be fixed and unchanged over time or relating to any specific message. Alternatively, the selection may be message dependent.
- the source computer may select, for each message to be sent, the slicing scheme or the parameter to use in a scheme (or both) from a list of options. The selection may be based on randomness, wherein the slicing method or the parameter to be used (or both) are randomly selected from the options space.
- the selection may make use of the numbering of the messages to be sent. For example, the first message will use a specific slicing scheme, the next message will use another pre-determined slicing method and the next one will use a distinct third slicing method.
- the selection may be cyclic covering part or all of the set of possible slicing schemes or parameters (or both).
- the selection is based on the message ultimate destination, where a different slicing scheme (or parameters or both) is associated with each potential ultimate destination.
- the user of the source computer or another application executed in this computer selects the slicing scheme or parameter.
- the user who enters the credit card number may be asked to determine the number of slices to use for this message.
- the selection is based on timing measuring, such as time-of-day (TOD). For example, one selection will be used on a daily basis from 2.00 AM to 3.00 AM, a different selection from 3.00 AM to 4.00 AM and so on, cycling in a 24-hour day. Similarly, each day of the week may use different selection. Any combination of the above schemes may be equally used.
- the source computer independently selects a slicing scheme or a parameter in a specific slicing scheme (or both), it is required that this selection is coordinated with the ultimate destination computer. Such coordination allows the latter to adequately combine the received slices by reversing the slicing process in order to faithfully reconstruct the original message sent by the source computer.
- the information about the slicing scheme used is encapsulated together with the slices in the slice-containing packets sent.
- the packet 70 shown in FIG. 7 contains in the IP Data 71 g (and further in the IP Data 81 g in packet 80 ) an additional field including the required information regarding the slicing scheme.
- the ultimate destination computer decodes the slicing scheme information and uses it to reconstruct the original message sent.
- the slicing information may be contained in a single packet, such as the first packet to be sent, or the packet including the slice having the first piece of data of the message.
- the last packet to be sent or the packet including the slice having the last piece of data of the message may be used for carrying the slicing scheme information.
- the slicing scheme information may be repeated in all packets sent, allowing the ultimate destination computer to decode the slicing scheme from any of the received packets.
- the information regarding the slicing scheme is split and carried (non-overlapping or overlapping) over few packets, or over all the packets sent carrying the message.
- Such split provides the advantage that even in the case that one or multiple packets are intercepted; the slicing scheme cannot be obtained by the interceptor, thus offering a higher degree of security for the message delivery.
- the coordination between the message sender (the source computer) and the receiver (the ultimate destination computer) regarding the slicing scheme uses a dedicated packet including the required information.
- sending the packets including message slices is preceded by sending a dedicated packet (not including any part of the message) alerting the ultimate destination computer regarding the slicing scheme used for the message upcoming in the next packet or packets.
- a dedicated packet not including any part of the message
- such message will be relayed through a relay server (similar to a slice carrying packet) to improve its delivery security.
- such dedicated slicing scheme information packet is sent after all the slice-carrying packets are transmitted or between the slice-carrying packets.
- the slicing scheme to be used is determined independently by the ultimate destination computer. All the techniques described above regarding selection of a slicing scheme by the source computer can equally be used by the ultimate destination computer. Upon making the proper selection of a slicing scheme, the selection is to be notified to the source computer, which in turn executes the scheme on the message to be sent.
- the slicing scheme to be used may be sent to the source computer when the ultimate destination computer becomes aware that a message is about to be sent to it from the source computer.
- the source computer notifies the ultimate destination computer that a message intended for it has been received, and the ultimate destination computer replies with the slicing scheme to be used for this message.
- the ultimate destination computer may periodically (e.g., once a day or every hour) and automatically (without waiting from any external trigger) send to the source computer information about the slicing scheme to be used.
- the same slicing scheme may be used for all those source computers, or alternatively a different slicing scheme may be used for each source computer.
- the slicing scheme is centrally controlled, as an alternative or in addition to the selection by the source or ultimate destination computers.
- a server connected to the Internet is functioning as the ‘manager’ of the slicing method. It can be a dedicated server, such as server 14 a in FIGS. 3 a -3 c above, which is not involved in the message delivery as a relay server, or alternatively a relay server can double as the manager, such as the relay server 14 b .
- the manager selects the slicing scheme (or slicing parameters or both) to be used by part or all of the source and ultimate destination computers.
- the selecting of the slicing scheme may use any of the methods described above, such as the selection by source or destination computers.
- a slicing scheme After a slicing scheme is selected, it is shared with the source computers or the ultimate destination computers or both. The same slicing scheme may be used for all source and ultimate destination computers connected. Alternatively (or in addition), the various computers will grouped into multiple groups, each group include one or more source computer and one or more ultimate destination computer, which are involved in message delivery. The manager may assign a different slicing scheme for each group for improved security. Further, few managers may be employed, each associated with a different group.
- the manager sends the updated slicing scheme to be used periodically to all or a group of the source and ultimate destination computers. For example, such delivery may take place once a day or every hour. Alternatively and preferably, the periods between consecutive transmissions have random length.
- a source computer prior to slicing a message, sends a request for a slicing scheme to the manager, which in turn replies with a selected slicing scheme to be used.
- the ultimate destination is notified of the slicing scheme used by the source computer as described above.
- the ultimate destination computer communicates with the manager before the reconstructing of the original message from its slices, in order to be notified by the manager which slicing scheme was used by the source computer for splitting.
- the security of the message delivery may be improved by using multi-hop relaying, wherein a slice in a packet is transported via multiple relay servers before reaching the ultimate destination computer.
- the number of hops of a slice is set by the source computer.
- the packet sent further includes in the ‘IP Data’ field 71 g of packet 70 a field of “Hops Left”, serving as a counter for counting the number of left hops.
- a similar field will be embedded in the ‘IP Data’ field 101 c of packet 100 , which is sent from one relay server to the ‘next’ one.
- Each relay server receiving the packet decrements the “Hops Left” counter by one before sending it further, thus this counter is gradually decremented through the packet path. If the result after decrementing by one is zero (hence the counter was received as one), the relay server sends the packet to the ultimate destination computer. If not, the packet is sent (with the counter decreased by one) to another relay server.
- the number of hops to be used by a source computer may be fixed, changed for each slice or for each message, or any combination thereof. Further, the number of hops may be centrally controlled as part of the slicing scheme by a manager server as described above, or may be independently determined by the source computer. Preferably, the number of hops is randomly selected for each slice or message sent.
- the number of hops of a slice is determined by a relay server.
- the relay server that receives a slice from a source computer determines the number of hops for this slice.
- the selection of the number of hops may use the same schemes described above regarding such selection in the source computer.
- a relay server randomly and independently makes the decision whether to send the slice to another relay server or to the ultimate destination computer. In such a case, there is no information anywhere in the network regarding the number of hops of a slice, adding to its security. For example, all the relay servers randomly make this decision with a probability of 50% (50% probability of sending to another relay server and 50% probability of sending to the ultimate relay server).
- a slice will be forwarded to the ultimate destination after a single hop with a probability of 50%, after 2 hops with a probability of 75%, after 3 hops with a probability of 87.5% and so forth.
- Encryption may be added to enhance the security of the message delivery.
- the message is encrypted before the slicing, as shown in ‘Encrypt Message’ step 52 in FIG. 5 .
- Such encryption may involve only the message, or in addition the appended information such as the IP address of the ultimate destination computer.
- the encryption allows the message slices to be unintelligible when carried over the Internet, still enabling the ultimate destination to decrypt the original message after combining the received message slices as described in ‘Decrypt Message’ step 67 shown in FIG. 6 , thus recovering the original message before its encryption.
- a message slice may be encrypted before encapsulation into a packet, as described in ‘Encrypt Slice’ step 57 .
- Such encryption allows the message slices to be unintelligible when carried over the Internet, still enabling the ultimate destination to decrypt the original message slice after receiving it as described in ‘Decrypt Slice’ step 63 shown in FIG. 6 , thus recovering the original message slice before its encryption.
- the encryption of either the whole message or of the message slices is not changed or tampered throughout the delivery process, allowing for end-to-end encryption. Any type of encryption may be used, preferably end-to-end encryption such as the RSA algorithm described above.
- the encryption method used is changed from message to message, or preferably from slice to slice. In the latter case, the same encryption method may be used.
- a parameter of the encryption method used may be changed from slice to slice.
- a different private key or a different public key may be used for each slice sent (or for each message sent).
- knowing the encryption method used or a parameter used for one slice (or message) still proved the other slices (or other messages) intact and less vulnerable.
- a packet carrying a slice further includes information about the encryption method (or parameter) of another slice.
- the first slice includes information about the encryption of the second slice
- the second slice includes information about the encryption of the third slice
- the third slice includes information about the encryption of the first slice.
- the encryption involves only the communication path between the message sender and the relay server.
- Such encryption may involve only the message slice, or in addition the appended information such as the IP address of the ultimate destination computer, the slicing scheme related information or the IP address of the source computer.
- the encryption involves only the communication path between the relay server and the ultimate destination.
- the encryption may involve only the communication path between the relay servers.
- a different encryption is used for each segment of the slice delivery path.
- the different encryption may include different algorithms, or different parameters (e.g., public key, private key or both) of the same encryption algorithm.
- a first encryption mechanism is used between the message originator and the first (or the only) relay server.
- the relay server decrypts the packet including the slice and other information, as described in ‘Decrypt Packet’ step 92 in FIGS. 9 a and 9 b .
- the decrypted slice is encrypted again using a different encryption scheme, and only then sent in ‘Send Packet’ step % in FIGS. 9 a and 9 b .
- Using a different encryption scheme for each segment of the communication improves the delivery security.
- part or all of the slice paths over the Internet are encrypted or otherwise secured, using standard or proprietary end-to-end encryption based protocols.
- the encryption involves only the communication path between the message sender and the relay server, where the source computer and the relay servers are the endpoints of the protocol.
- the encryption involves only the communication path between the ultimate destination computer and the relay server, where the ultimate destination computer and the relay servers are the endpoints of the protocol.
- the communication path involves the communication between two relay servers.
- the message to be encrypted related to the message slice carried which may be appended by the IP addresses or the source computer, the ultimate destination computer, and slicing scheme related information. Secured protocols used may be Layer 4 or upper layers such as SSL, TLS and SSH, or Later 3 and lower layers such as IPsec.
- a relay server may be a dedicated device mainly (or only) involved in relaying the message slices. Further, a relay server may be involved with another server or servers, such as a mail server, database server, web server, FTP server or proxy server. The relay server may be collocated with another server (of a different type), or can be integrated with it. In the latter case, the two servers may share hardware resources such as an enclosure, a processor, storage, and peripherals. Similarly, an Internet connection and an IP address may be shared. Preferably, the relay servers are used together with servers having disparate geographical locations.
- any desktop, laptop or workstation computer may serve as a relay server by executing the flow chart 90 in FIG. 9 a or the flow chart 98 in FIG. 9 b . Further, such computer may run client programs or applications.
- any computer serving as source computer or as an ultimate destination computer may also serve as a relay server, relaying communication between other source computers or other ultimate destination computers.
- laptop 12 a in FIGS. 3 a -3 c is a source computer, that can also serve as a relay server for a message sent from laptop 12 b as a sender to desktop computer 13 b acting as the recipient.
- laptop 12 a serves simultaneously as both a source computer and as a relay server, such that packets sent to and from this computer cannot be easily interpreted if intercepted, since two different messages are involved.
- Any device which is IP addressable in the Internet and can execute the flow chart 50 in FIG. 5 may serve as the source device of the message.
- a source computer (being desktop computer, laptop computer or a workstation computer) may be a dedicated device mainly (or only) involved in sending the message. Further, a source device or source computer may be involved with another program or application, and with any program being client or server software. The source computer may be collocated or integrated with another computer or any other processing device.
- the two programs may share hardware resources such as an enclosure, a processor, storage and peripherals. Similarly, an Internet connection and an IP address may be shared. Further, the flow chart 50 in FIG.
- the flow chart 50 in FIG. 5 may be an individual module operating as an independent process, program or application, which is separated from the application originating the message, and specifically used when called for by a user or by another application.
- the source computer functionality is a function provided by a kernel unit of an operating system (OS).
- Any device which is IP addressable in the Internet and can execute the flow chart 60 in FIG. 6 may serve as the ultimate destination device of the message.
- An ultimate destination computer (being desktop computer, laptop computer or a workstation computer) may be a dedicated device mainly (or only) involved in receiving the message. Further, an ultimate destination computer may be involved with another program or application, and with any program being client or server software. The two programs may share hardware resources such as an enclosure, storage, a processor and peripherals. Similarly, an Internet connection and an IP address may be shared. The ultimate destination computer may be collocated or integrated with another computer or any other processing device. Further, the flow chart 60 in FIG. 6 may be integrated into another application or program, for example the application creating the message to be sent, such as a Web browser and email applications.
- the flow chart 60 in FIG. 6 may be an individual module, program or application, which is separated from the application originating the message, and specifically used when called for by a user or by another application.
- the source computer functionality is a function provided by a kernel unit of an operating system (OS).
- OS operating system
- a relay server may further partition the slice into more (e.g., smaller) sub-slices. These sub-slices may be sent to the recipient similar to the way the slice is to be delivered, to be combined with the other slices at the ultimate destination computer.
- the flow chart 50 in FIG. 5 is executed by the relay server, wherein the message involved is the message slice to be further sliced (that may be appended with IP addresses of the source computer or the ultimate destination computer or both, and related slicing scheme).
- the sub-slices are sent through other relay servers to a relay server acting as an intermediate destination, which reconstructs the original slice from its sub-slices, and the reconstructed message slice is handled then as a regular message slice.
- the flow chart 60 in FIG. 6 is executed by the relay server, wherein the message involved to be reconstructed is the message slice that was further sliced (that may be appended with the IP addresses of the source computer or the ultimate destination computer or both, and related slicing scheme).
- the slicing scheme or the routing scheme (or both) used may be the same as the ones used by the source computer, or alternatively distinct schemes may be used. In general, all slicing schemes and routing schemes described may be used for delivering the sub-slices.
- randomness may be used in order to increase the security of the message or slice delivery, by affecting a facility, feature or otherwise, thus making it harder for interpreting by an interceptor. Randomness is commonly implemented by using random numbers, defined as a sequence of numbers or symbols that lack any pattern and thus appear random, are often generated by a random number generator. Randomness for security is also described in IETF RFC 1750 “Randomness Recommendations for Security” (December 1994), which is incorporated in its entirety for all purposes as if fully set forth herein.
- a random number generator (having either analog or digital output) can be hardware based, using a physical process such as thermal noise, shot noise, nuclear decaying radiation, photoelectric effect or other quantum phenomena. Alternatively, or in addition, the generation of the random numbers can be software based, using a processor executing an algorithm for generating pseudo-random numbers which approximates the properties of random numbers.
- any network such as a LAN (Local Area Network), a WAN (Wide Area Network), or a MAN (Metropolitan Area Network).
- the arrangement equally applies to any digital data network connecting multiple devices, wherein multiple distinct communication paths may be formed between a sender and a receiver of the message.
- non-packet based networks and networks which use protocols other than IP e.g., cell-based networks such as ATM
- IP addresses have been exampled herein for identification of the entities involved in the communication (such as the source and ultimate destination computers and the intermediate servers), any other type of addresses or identifiers (involving any of the OSI layers) may be equally used.
- MAC Medium Access Control
- the applications that can use the arrangement include Electronic Mail (E-Mail) and electronic commerce such as banking, shopping, products, or services purchase. Further, the arrangement may be used for carrying sensitive information such as passwords and public (or private) encryption keys.
- Messages carried according to the arrangement may include voice, text, images, video, facsimile, characters, numbers or any other digitally represented information.
- the messages are carrying multimedia information, such as audio or video.
- the multimedia is carried as part of a one-way or interactive audio or video service.
- the arrangement may be equally used for carrying any real-time or near-real-time information.
- the carried audio may be speech or music, and may serve telephony such as VoIP or an Internet radio service.
- the carried video may be part of video services over the Internet such as video conferencing and IPTV (IP Television).
- Video services over the Internet include video conferencing and IPTV (IP Television).
- IPTV IP Television
- the multimedia service is a real-time (or near real-time) application, and thus sensitive to delays over the Internet.
- two-way services such a VoIP or other telephony services and video-conferencing are delay sensitive.
- a firewall is known in the art implemented as a hardware or as a software (or a combination thereof) device that connects two networks, and is designed to block unauthorized access while permitting authorized communication.
- a typical configuration is shown as system 110 in FIG. 11 , wherein the firewall device 112 is connected between the public Internet 11 and a LAN 111 , the latter is commonly an Intranet, or any other administered, internal, trusted or private network. All messages entering or leaving the Intranet pass through the firewall, which inspects each message and blocks those that do not meet the specified security criteria and rules.
- Firewalls can operate at the network layer or at the application layer, and commonly use techniques such as packet filtering and application gateway functionalities.
- a source computer or all or part of its associated functionality may be similarly placed between two networks, as exampled in system 120 in FIG. 12 .
- the device 121 is connected between the external public Internet network 11 and the Intranet or LAN 111 , and can be co-located with the firewall 112 . Any packets outgoing from the LAN 111 are inspected by the device 121 , acting as a source computer. All of the outgoing packets are treated as messages to be split as part of the flow chart 50 in FIG. 5 , executed in the computer 121 . Alternatively, only part of the outgoing packets are selected for further handling and are selected by applying specific rules, while the non-selected packets are passed transparently. For example, only packet destined to specific IP addresses may be handled.
- the IP packets as a whole may be treated as a message, or preferably may be analyzed for the payload and the destination of the IP, and accordingly processed.
- the computer 121 may serve as an ultimate destination computer, executing the flow chart 60 in FIG. 6 , or as both source and ultimate destination computers. In such configuration, there is no need for any changes or any added software or hardware as part of the LAN, and all hosts connected in the LAN 111 can use the secured communication offered by the computer 121 .
- the source computer functionality or the ultimate destination computer functionality are integrated with a router, a gateway, or the firewall 112 , resulting in a single device (or function) combining both the protection for communication from the Internet and secured communication for sending data to (and receiving data from) the Internet.
- the integration with the router, gateway or the firewall 112 may involve using the same Internet connection, using the same LAN connection, and sharing the same resources such as sharing an enclosure, a power source, a location, a processor, a storage/memory or connected peripherals.
- a firewall may further include part or all of the functionalities of a relay server, or to function as both a relay server and a source computer, or to function as both a source computer, an ultimate destination computer and a relay server.
- FIG. 15 a showing system 150 , which correspond to the system 30 shown in FIG. 3 a .
- the laptop computer 12 a is shown connected to the Internet via LAN 111 a and device 151 a , for example located as part of an enterprise.
- device 151 a may correspond to device 121 described in FIG. 12 above, or may be a source computer executing part or all of flow-chart 50 in FIG. 5 .
- Computer 12 a may be only the source of the message to be sent over the Internet, or may execute parts of flow-chart 50 in FIG. 5 .
- desktop computer 14 b connects to the Internet via LAN 111 d and device 151 d
- desktop computer 14 d connects to the Internet via LAN 111 c and device 151 c
- the destination computer 13 c connects to the Internet via LAN 111 b and device 151 b
- the device 151 d serving as a relay server executing part or all of the flow charts 90 or 98
- the device 151 d is functioning both as a source computer and as a relay server, as well as other functionalities such as a firewall.
- system 155 is shown in FIG. 15 b correspond system 32 in FIG. 3 b , describing a slice routing wherein the device 151 c serves as a relay server.
- An Internet packet typically includes a value of Time-to-live (TTL) for avoiding the case of packet looping endlessly.
- TTL Time-to-live
- the initial TTL value is set in the header of the packet, and each router in the packet path subtracts one from the TTL field, and the packet is discarded upon the value exhaustion. Since the packets containing the message slices are routed via different and disparately located relay servers, the TTL of the packets reaching the ultimate destination computer are expected to vary. Hence, in case of message slices arriving at the ultimate destination computer having similar TTL values (small TTL differences); this can serve as an indication of a spoofing or other type of masquerading.
- NAT Network Address Translation
- a device such as a router, gateway, computer and firewall
- the public network such as the Internet
- a local, internal or private network such as the Internet
- NAT Network Address Translation
- a single IP address represents the entire group of hosts in the internal network to an external entity.
- the NAT is described in RFC 1631 and in Cisco Systems, Inc. Document ID: 6450 (January 2006): “How NAT Works”, which is incorporated in its entirety for all purposes as if fully set forth herein.
- any of the entities involved in the arrangement may be co- or integrated with a computer, a router, a gateway or the firewall having NAT capability, resulting in a single device (or function) combining both the protection for communication from the Internet and secured communication for sending data to (and receiving data from) the Internet.
- the integration with the computer, router, gateway or the firewall may involve using the same Internet connection, using the same LAN connection, and sharing the same resources such as sharing an enclosure, a power source, a location, a processor, a storage/memory or connected peripherals.
- the NAT process will slice the outgoing message according to the slicing scheme, and then assigns the IP to the outgoing packet. Similarly, when receiving the message slices, the message may be reconstructed before being sent to the destination computer.
- Transport Layer protocols such as TCP and UDP (User Datagram Protocol) specify a source and destination port number in the packet headers.
- a port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. Port numbers using and their allocation are described in RFC 814, RFC 1078, RFC 1700 and RFC 3232.
- the port number may be used for providing information regarding the slicing scheme (e.g., such as the number of slices, slice numbering), the routing scheme, the encryption used, the source computer identity (such as IP address) or the ultimate destination identity.
- the port number may further be used for any coordination between the source computer, the ultimate destination computer, the relay servers and the manager.
- the packets carrying the message slices are sent from the source computer (or the relay server involved in further message slices splitting) using multiple IP addresses as Source IP address in the field 71 d .
- the message slices intercepted or eavesdropped cannot be easily identified as originating from the source computer or as carrying part of the same message.
- the sender or an intermediate server method may further be preceded by the step of storing a list composed of a succession of available IP addresses that can be used by the source computer.
- an associating scheme may associate a message slice to each of the source IP addresses in the list, such that a distinct IP address is associated with each message slice.
- the associating scheme may associate part or all of the available IP addresses in the list with a packet including a message slice.
- the associating scheme may sequentially or randomly associate the IP addresses in the list with the succession of packets including the message slices.
- the IP addresses may be selected for association from the list based on a former selection for a message or message slice, or based on the current date or the current TOD (Time-of-Day).
- the packet port field can be used in order to associate packets with a specific source computer or to associate a group of packets having slices of the same sent message.
- the source computer may hide these packets by sending dummy or null packets (containing no useful information or any meaningful data).
- the source computer and the relay servers may send such null packets before or after the sending of the actual message slices, between the message-slices carrying packets or a combination of the above.
- An eavesdropper thus intercepts a large amount of packets, which makes it complex to identify and sort the meaningful packets out of the total intercepted ones.
- the null packets may be destined for servers and other entities not related to the message delivery. Alternatively (or in addition), the null packets may be sent to available relay servers which are not associated with relaying the message slices.
- the entities involved in the business aspects of the information device are exampled in system 30 in FIG. 3 a .
- the vendor provides the relay servers 14 a , 14 b , 14 c and 14 d , and may be the actual operator of these servers.
- the users are the operators of the source computer 12 a and the operator of the ultimate destination computer 13 c , which execute the method as a program, application or process, either as independent dedicated program or integrated with another application.
- Purchasing the software may be through any distribution channels, such as wholesale or retail stores.
- the terms ‘user’ and ‘owner’ are used interchangeably hereinafter.
- Any distribution channel dealing with software, electronic or electrical appliances, in particular those channels involving distribution of software relating to communication equipment may include the software as part of their product portfolio.
- the Information Service Provider ISP is involved in connecting the user to the Internet, and provides the security method described herein as an additional service.
- the costs associated with the operation of the information device are as follows: a. Communication service. The costs associated with the communication sessions. b. ISP, in the case of using the Internet. c. Information service. The costs associated with operating the relay servers. In general, billing the user for communication services by the provider may be: based on a. One-time fee; b. Flat fee for a period (e.g. monthly); c. per communication session; d. per lengths of communication sessions or messages; or any combination of the above.
- a Next Generation Network is a packet based network which can provide services including telecommunication services and able to make use of multiple broadband, Quality of Service (QoS)—enabled transport technologies and in which service-related functions are independent from underlying transport-related technologies.
- QoS Quality of Service
- the NGN offers unrestricted access by users to different service providers.
- the NGN operator or any service provider using the NGN may offer anonymity or security services based on the method described herein.
- source routing is used for transferring part or all of the slices encapsulated packets between the source computer and the relay servers, between the relay servers and the ultimate destination computer, between relay servers (in case of multi hop), and between the source computer and the ultimate destination computer.
- the latter is example in system 145 in FIG. 14 , describing the paths of two slices from the source computer 12 a and the ultimate destination computer 13 c .
- a packet including one of the slices is routed using source routing in the path including 141 a , 141 i , 141 j and 141 h over the respective communication links 17 g , 16 g , 16 h and 17 c , while another slice is routed over the paths 141 a , 141 b , 141 c , 141 d , 141 e , 141 f , 141 g and 141 h , using the respective communication links 17 g , 16 a , 16 d , 16 e , 16 m , 16 n , 16 j and 17 c . Further, some of the packets containing slices may be routed using source routing, while other packets may be routed via relay servers.
- a strict source routing may be used, planned to minimize (or remove) any overlapping in the paths used by the different slices.
- LSRR may be used, where one or more routers are specified such as to minimize the possibility of two slices using the same path or using overlapping parts of a path.
- an onion routing may be used. Such onion routing may use any of the onion routers available in the Internet.
- one or all of the relay servers may further include the onion router functionality, such as removing a layer of encryption to uncover the routing instructions, and sending the message to the next router or to the ultimate destination computer.
- the Tor technique may be used in such a system.
- the arrangement is used for security as part of cloud computing deployment.
- the cloud services may include Cloud Software as a Service (SaaS), Cloud Platform as a Service (PaaS) and Cloud Infrastructure as a Service (IaaS), and the method described herein may be used as part of the implementing security measures such as described in the publication “Security Guidance for Critical Areas of Focus in Cloud Computing V2.1”, Prepared by the Cloud Security Alliance, December 2009, which is incorporated in its entirety for all purposes as if fully set forth herein.
- a secured distributed storage may be provided by using one aspect.
- a file, a message or any other data to be stored is split as described herein, and transferred over the Internet (or any LAN or IP based network) to be stored in a plurality of servers.
- the servers 14 b , 14 d and 14 c are providing storage space, for storing the slices of the message (or data) sent from the source computer 12 a , preferably in addition to serving as relay servers.
- the ultimate destination computer 13 c or any other computer connected and allowed to have access to the stored data, can read the stored data from the storage/relay servers at any time.
- any breach of security in any of the storage/relay servers may not result in any damage.
- such secured distributed storage may be used for credit card or other e-commerce transactions, where the alphanumeric characters that represent the card or cardholder information (or part thereof, such as the last four digits) are split and stored in multiple relay servers.
- this sensitive information is replaced with the identification symbols (‘token’) containing the locations (IP addresses) of the relay servers storing the information, the location of the information (e.g., addresses) within the relay/storage servers, and the slicing scheme used to partition the information. Since the whole information required to bill the credit card is not located in a single location or a single database, it is more difficult for hackers to gain access to the sensitive data. Similarly, the described method and system may be applicable to any storage associated with any network, such as a SAN and a NAS.
- a cellular telephone set is serving as the source computer, the ultimate destination computer or both.
- the cellular set is serving as endpoint in a cellular network, such as Global System for Mobile communication (GSM), 2G, 2.5G, 3G and 3.5G, Enhanced Data rates for GSM Evolution (EDGE) or similar cellular networks.
- GSM Global System for Mobile communication
- EDGE Enhanced Data rates for GSM Evolution
- the voice, data e.g. SMS—Short Message Service
- SMS Short Message Service
- any other data to be sent is paritioned and is sent to different units in the network serving as relay server, relaying the voice or data sent to the destination unit.
- the sending device is associated with multiple identifications, such as multiple telephone numbers, multiple Mobile Equipment Identifier (MEID) numbers, International Mobile Equipment Identity (IMEI) numbers, Electronic Serial Numbers (ESNs) or any other multiple identifiers in the cellular network (for example by using multiple SIMs).
- the message is partitioned and sent from the sending device using different sender identifications, to a receiver unit having multiple different identifications in the network.
- the data (or voice) is sent through different base-stations, for example by registering each identification number with a distinct base-station.
- CAPTCHA Completely Automated Public Turing Test to Tell Computers and Humans Apart
- CAPTCHA Human Interactive Proofs.
- the idea behind CAPTCHAs is that there are tasks that humans are better at than computers. By providing a test easy for humans to solve but hard for computers, the likelihood that their users are humans is increased.
- Some commercially used CAPTCHAs often use a string of letters and digits randomly generated and morphed so they would be harder for Optical Character Recognition (OCR) or other pattern recognition algorithms to recognize. However, there are also limitations to how much the letters can be distorted and yet be recognizable to humans.
- CAPTCHAs should be almost trivial for a person to solve. Further description, generating, analysis and applications of CAPTCHA are disclosed in the document by Von-Ahn L., Blum M., and Langford J.: “Telling Humans and Computers Apart Automatically”, ‘Communication of the ACM’ Vol. 47, No. 2, February 2004, in the paper Von-Ahn L., Blum M., Hopper N. J.
- the CAPTCHA may be used in addition or as alternative to the methods, arrangements and systems described herein. For example, using a CAPTCHA may improve the communication security by requiring a human to be part of the message reception.
- the CAPTCHA may be added to, integrated with, embedded in or a part of a message or a message slice.
- the message or a portion thereof may be embedded in a CAPTCHA, such as using the characters of a message (or a message slice) as the basis for generating CAPTCHA image.
- the CAPTCHA includes part or all of the information required to decrypt the received message or slice.
- a CAPTCHA may include information about a key public or private) used for encryption.
- the CAPTCHA may include information about the slicing scheme or any other information involving the reconstruction of the sent message.
- FIG. 13 is a block diagram that illustrates a system 130 including a computer system 140 and the associated Internet 11 connection upon which an embodiment may be implemented.
- Such configuration is typically used for computers (hosts) connected to the Internet 11 and executing a server or a client (or a combination) software.
- a source computer such as laptop 12 a , an ultimate destination computer 13 c and relay servers 14 a - 14 d above, as well as any computer or processor described herein, may use the computer system configuration and the Internet connection shown in FIG. 13 .
- the system 140 may be used as a portable electronic device such as a notebook/laptop computer, a media player (e.g., MP3 based or video player), a cellular phone, a Personal Digital Assistant (PDA), an image processing device (e.g., a digital camera or video recorder), and/or any other handheld computing devices, or a combination of any of these devices.
- a portable electronic device such as a notebook/laptop computer, a media player (e.g., MP3 based or video player), a cellular phone, a Personal Digital Assistant (PDA), an image processing device (e.g., a digital camera or video recorder), and/or any other handheld computing devices, or a combination of any of these devices.
- PDA Personal Digital Assistant
- FIG. 13 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components; as such details are not germane to the present invention. It will also be appreciated that network computers, handheld computers, cell phones and other data processing systems which have
- Computer system 140 includes a bus 137 , an interconnect, or other communication mechanism for communicating information, and a processor 138 , commonly in the form of an integrated circuit, coupled with bus 137 for processing information and for executing the computer executable instructions.
- Computer system 140 also includes a main memory 134 , such as a Random Access Memory (RAM) or other dynamic storage device, coupled to bus 137 for storing information and instructions to be executed by processor 138 .
- RAM Random Access Memory
- Main memory 134 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 138 .
- Computer system 140 further includes a Read Only Memory (ROM) 136 (or other non-volatile memory) or other static storage device coupled to bus 137 for storing static information and instructions for processor 138 .
- ROM Read Only Memory
- a storage device 135 such as a magnetic disk or optical disk, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from and writing to a magnetic disk, and/or an optical disk drive (such as DVD) for reading from and writing to a removable optical disk, is coupled to bus 137 for storing information and instructions.
- the hard disk drive, magnetic disk drive, and optical disk drive may be connected to the system bus by a hard disk drive interface, a magnetic disk drive interface, and an optical disk drive interface, respectively.
- the drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the general purpose computing devices.
- OS Operating System
- An operating system commonly processes system data and user input, and responds by allocating and managing tasks and internal system resources, such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking and managing files.
- Non-limiting examples of operating systems are Microsoft Windows, Mac OS X, and Linux.
- processor is meant to include any integrated circuit or other electronic device (or collection of devices) capable of performing an operation on at least one instruction including, without limitation, Reduced Instruction Set Core (RISC) processors, CISC microprocessors, Microcontroller Units (MCUs), CISC-based Central Processing Units (CPUs), and Digital Signal Processors (DSPs).
- RISC Reduced Instruction Set Core
- MCU Microcontroller Unit
- CPU Central Processing Unit
- DSPs Digital Signal Processors
- the hardware of such devices may be integrated onto a single substrate (e.g., silicon “die”), or distributed among two or more substrates.
- various functional aspects of the processor may be implemented solely as software or firmware associated with the processor.
- Computer system 140 may be coupled via bus 137 to a display 131 , such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), a flat screen monitor, a touch screen monitor or similar means for displaying text and graphical data to a user.
- the display may be connected via a video adapter for supporting the display.
- the display allows a user to view, enter, and/or edit information that is relevant to the operation of the system.
- An input device 132 is coupled to bus 137 for communicating information and command selections to processor 138 .
- cursor control 133 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 138 and for controlling cursor movement on display 131 .
- This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
- the computer system 140 may be used for implementing the methods and techniques described herein. According to one embodiment, those methods and techniques are performed by computer system 140 in response to processor 138 executing one or more sequences of one or more instructions contained in main memory 134 . Such instructions may be read into main memory 134 from another computer-readable medium, such as storage device 135 . Execution of the sequences of instructions contained in main memory 134 causes processor 138 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the arrangement Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
- computer-readable medium (or “machine-readable medium”) as used herein is an extensible term that refers to any medium or any memory, that participates in providing instructions to a processor, (such as processor 138 ) for execution, or any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer).
- a machine e.g., a computer
- Such a medium may store computer-executable instructions to be executed by a processing element and/or control logic, and data which is manipulated by a processing element and/or control logic, and may take many forms, including but not limited to, non-volatile medium, volatile medium, and transmission medium.
- Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 137 .
- Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infrared data communications, or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.).
- Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch-cards, paper-tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
- Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to processor 138 for execution.
- the instructions may initially be carried on a magnetic disk of a remote computer.
- the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
- a modem local to computer system 140 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
- An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 137 .
- Bus 137 carries the data to main memory 134 , from which processor 138 retrieves and executes the instructions.
- the instructions received by main memory 134 may optionally be stored on storage device 135 either before or after execution by processor 138 .
- Computer system 140 also includes a communication interface 141 coupled to bus 137 .
- Communication interface 141 provides a two-way data communication coupling to a network link 139 that is connected to a local network 111 .
- communication interface 141 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
- ISDN Integrated Services Digital Network
- communication interface 141 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
- LAN local area network
- Ethernet based connection based on IEEE8023 standard may be used such as 10/100BaseT, 1000BaseT (gigabit Ethernet), 10 gigabit Ethernet (10GE or 10GbE or 10 GigE per IEEE Std 802.3ae-2002as standard), 40 Gigabit Ethernet (40 GbE), or 100 Gigabit Ethernet (100 GbE as per Ethernet standard IEEE P802.3ba), as described in Cisco Systems, Inc. Publication number 1-587005-001-3 (June 1999), “Internetworking Technologies Handbook”, Chapter 7: “Ethernet Technologies”, pages 7-1 to 7-38, which is incorporated in its entirety for all purposes as if fully set forth herein.
- the communication interface 141 typically include a LAN transceiver or a modem, such as Standard Microsystems Corporation (SMSC) LAN91C111 10/100 Ethernet transceiver described in the Standard Microsystems Corporation (SMSC) data-sheet “LAN91C111 10/100 Non-PCI Ethernet Single Chip MAC+PHY” Data-Sheet, Rev. 15 (Feb. 20, 2004), which is incorporated in its entirety for all purposes as if fully set forth herein.
- SMSC Standard Microsystems Corporation
- SMSC Standard Microsystems Corporation
- Wireless links may also be implemented.
- communication interface 141 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
- Network link 139 typically provides data communication through one or more networks to other data devices.
- network link 139 may provide a connection through local network 111 to a host computer or to data equipment operated by an Internet Service Provider (ISP) 142 .
- ISP 142 in turn provides data communication services through the world wide packet data communication network Internet 11 .
- Local network 111 and Internet 11 both use electrical, electromagnetic or optical signals that carry digital data streams.
- the signals through the various networks and the signals on the network link 139 and through the communication interface 141 which carry the digital data to and from computer system 140 , are exemplary forms of carrier waves transporting the information.
- a received code may be executed by processor 138 as it is received, and/or stored in storage device 135 , or other non-volatile storage for later execution. In this manner, computer system 140 may obtain application code in the form of a carrier wave.
- the concept of encryption and the scheme described above may also be used to improve the security relating to a digital data stored in a memory.
- the computer sub-system 170 shown in FIG. 17 above may employ encryption as shown in computer sub-system 180 shown in FIG. 18 .
- An address scrambler 181 is added, coupled between address bus 176 obtained from the address logic 174 and the memory 171 address input ports.
- Any address word received via the address bus 181 is converted to another address word, and the converted address word is connected to the memory 171 via the address lines 182 , comprising the converted address word carried as A 7 line 182 a , A 6 line 182 b , A 5 line 182 c , A 4 line 182 d , A 3 line 182 e , A 2 line 182 f , A 1 line 182 g and A 0 line 182 h (collectively referred to as address bus 182 ).
- the address word conversion is based on one-to-one mapping to preserve distinctness, wherein every non-converted address word is converted to a one converted word, and each of the converted words is associated with one non-converted address word.
- the memory 171 retains its ability to store 256 8-bit data words. Hence, a sequential wiring of data to the memory 171 (using sequential addresses), may not result in sequential storing of the data. While the data can be written and read in the sub-system 180 as before (e.g., as in sub-system 170 ), the memory 171 as a separate device holds the data in a random order, not related to the writing or reading addresses assigned by the processor. Further, reading the data from the memory 171 requires the use or the knowledge of the address scrambler 181 mapping function.
- the address scrambler functionality is implemented by swapping or mixing the routing of the address word.
- a non-limiting example of such address scrambler 191 is shown connected to memory 171 in computer sub-system 190 shown in FIG. 19 .
- the address scrambler is formed by connecting input address lines to other address lines, not corresponding to the input ones. Each of the address lines is connected to an output address line which may not be the same.
- the input (before conversion) address line A 7 176 a is connected to the memory input line A 5 182 c
- address line A 6 176 b is connected to the memory input line A 3 182 e
- address line A 5 176 c is connected to the memory input line A 7 182 a
- address line A 4 176 d is connected to the memory input line A 4 12 d
- address line A 3 176 e is connected to the memory input line A 0 182 h
- address line A 2 176 f is connected to the memory input line A 1 182 g
- address line A 1 176 d is connected to the memory input line A 6 182 b
- address line A 0 176 h is connected to the memory input line A 2 182 f .
- address scrambler 191 is exampled where a single address line (A 4 ) is not being routed, it is apparent that none of the lines, as well as any number out of the lines, may not be routed.
- the address scrambler 191 connected between the bus 166 address logic 174 and the memory 171 , convert any address word to another (one to one mapping), thus randomizing the location of the written data in the memory 171 .
- address scrambler 191 is required in order to use the information stored in memory 171 , either as a physical entity connected to the memory 171 while reading or by having the knowledge of the routing scheme implemented in the address scrambler 191 .
- the address scrambler 191 acts as both a scrambler and a de-scrambler.
- the address scrambler 191 acts as a scrambler, and support the encryption of the data written by converting to an address other than that carried over the bus 166 , by changing the order of the address bits.
- the address scrambler 191 effectively acts as a de-scrambler that provides access the correct data stored in the memory 171 in the pre-converted address.
- the term ‘scrambler’ herein refers to a scrambler, a de-scrambler or both.
- the address scrambler 191 is used with an 8-bit width address bus, and thus includes 8 inputs and 8 outputs, connected in a one-to-one topology.
- 40,320 different address scramblers such as the address scrambler 191 shown in FIG. 19 may be used, each offering a distinct mapping/routing scheme.
- An attacker trying to decrypt the content of an encrypt memory such as memory 171 shown in FIG. 19 will need to try 40,320 combinations in order to cover all possible mapping schemes.
- a scrambler such as the address scrambler 191 is based on connections between inputs and outputs, using conductors such as wires or PCB traces. Such scrambler is simple and cheap, and can be easily manufactured or made. Further, such scrambler does not include any power consuming electronic components, hence does not require any connection to an electric power source. Further, such scrambler does not induce any latency in accessing the memory, and thus does not impact the computer or memory performance.
- the scrambler uses logic gates for the address conversion.
- a non-limiting example for such address scrambler 193 is shown in sub-system 192 in FIG. 19 a . While in a passive scrambler such as the address scrambler 191 the addresses 00 H and FF H are retained and are not converted, regardless of the mapping scheme, logic based conversion is capable of mapping all addresses. In the non-limiting example of FIG.
- the input (before conversion) address line A 7 176 a is connected after converting via an inverter (NOT) gate 194 c to the memory input line A 5 182 c
- address line A 6 176 b is connected to the memory input line A 3 182 e
- address line A 5 176 c is connected to the memory input line A 7 182 a
- address line A 4 176 d is connected via inverter gate 194 b to the memory input line A 4 182 d
- address line A 3 176 e is connected to the memory input line A 0 182 h .
- address line A 2 176 f is connected to the memory input line A 1 182 g
- address line A 1 176 d is connected to the memory input line A 6 182 b
- address line A 0 176 h is connected via inverter gate 194 a to the memory input line A 2 182 f . While three inverter gates are shown, any number of inverter gates can be equally used. Further, while inverter gates are shown that has only one input, any type of gates, having any number of inputs may be equally used.
- any combinatorial logic implementing any Boolean logic or algebra for mapping input address to an output address, preferably using one-to-one mapping, may be used.
- the logic block 197 may use discrete gates, memory, ASICs, PLDs, processors or any combination thereof.
- Such logic may be based on sum of products or product of sums, and may include Arithmetic Logic Unit (ALU), half-adders, full-adders, half-substractors, full-substructors, multiplexers, demultiplexers, encoders, decoders, inverters (NOT gates), AND gates, OR gates, XOR (exclusive-OR) gates, NAND (NOT-AND) gates, NOR (NOT-OR) gates, and XNOR (exclusive-NOR) gates.
- a non-limiting example is generic logic block 197 , being part of the address scrambler 196 shown as part of sub-system 195 in FIG. 19 b .
- Such a logic block 197 may be comprised of discrete standard off-the-shelf logic gates, commonly in the form of ICs each implementing a fixed logic function, connected together to form the Boolean function.
- the logic block 197 may be implemented using ASIC (Application-Specific Integrated Circuit), which is an IC customized in manufacturing to provide the required logic function.
- ASIC Application-Specific Integrated Circuit
- the logic block 197 is based on a PLD (Programmable Logic Device), which is a generic term for IC that is manufactured with arrays of logic gates (commonly ‘AND’ and ‘OR’ gates, gate arrays, cells or macrocells), which can be programmed or reconfigured after manufacturing (e.g., by a user or in a laboratory), using a dedicated programmer, on-board programming or otherwise, to implement a desired logic function by creating the suitable connections within the device.
- PLDs are PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), FPGA (Field-Programmable Gate Array).
- the logic function of the logic block 197 is implemented using a dedicated processor (separated from the processor accessing the memory for using it), supported by a memory and logic gates.
- the PLD programmed interconnection arrangement may be volatile or preferably non-volatile.
- the pattern program onto a PLD is non-volatile, it can use any technology used for non-volatile memories, such as flash memory, EPROM or EEPROM cells, or attached battery.
- the memory is used in order to perform the address mapping.
- Such an arrangement is shown as sub-system 198 shown in FIG. 19 c , disclosing a memory 199 being part of the address scrambler 196 .
- the memory 199 is used to create the combinational logic function such as LUT (Look-Up Table), where the address over the bus 176 serves as the address of the memory 199 , and the resulting data read from the memory 199 serves as the address to memory 171 over bus 182 .
- LUT Look-Up Table
- any type of memory having the required address bus (e.g., 8-bit width in memory 199 ) and the required data bus (e.g., 8-bit width in memory 199 ) may be used, preferably non-volatile.
- the content may be programmed in manufacturing, such as a ROM, or can be programmed using a dedicated programmer.
- the memory 199 content is being written by the processor, for example as part of the computer initialization.
- the memory 199 in address scrambler 196 is fully accessible via the address bus 166 via connection 1981 (and the required support logic) and via the data bus 167 via connection 1980 (and the required support logic), and is further accessible via the control bus 165 via the control logic 1982 , and thus may use the R/W signaling over the line 1983 .
- the processor may access the memory 199 in a way similar to the way the memory 171 is accessed, and can thus write its content, as required.
- such an arrangement may support on-board programming of a PLD-implemented logic 197 .
- the memory 199 may be part of such PLD or attached thereto, storing its configuration.
- any address word from the processor is preferably one-to-one mapped to same or another address, as exampled in FIGS. 18 and 19 .
- FIGS. 18 and 19 illustrated an address scrambler for manipulating the memory 171 address words
- an encryption may involve the manipulation of the data word read from or written to the memory 171 , or both, typically using one-to-one mapping.
- a data scrambler 201 is shown in sub-system 200 in FIG. 20 , connected between the data bus 167 via the data logic 175 and bus 177 , and the memory 171 via bus 202 . Since typically the same data connections are used for both reading from, and writing to, a memory, the data scrambler 201 commonly supports the two-way signal transfer, directed from the bus 167 to the memory 171 in a ‘Write to memory 171 ’ cycle, and from the memory 171 to the data bus 167 in a memory 171 read cycles. While the data connections, such as bi-directional buses 175 and 202 , and the memory 171 are exampled in FIG. 20 as having 8-bit word width (D 7 -D 0 ), any other width size may be equally used.
- the data scrambler is implemented by routing the data lines and changing their respective locations in the data word, similar to the address scrambler 191 shown in FIG. 19 .
- Such a non-limiting example of a data scrambler 211 is shown as part of sub-system 210 in FIG. 21 .
- the data line D 7 of the data bus 177 (associated with the data bus 167 ) is connected to the data line D 5 of the memory 171 (via data bus 202 ).
- the data line D 6 of the data bus 177 is connected to the data line D 3 of the memory 171
- the data line D 5 of the data bus 177 is connected to the data line D 1 of the memory 171
- the data line D 4 of the data bus 177 is connected to the data line D 7 of the memory 171
- the data line D 3 of the data bus 177 is connected to the data line D 4 of the memory 171
- the data line D 2 of the data bus 177 is connected to the data line D 0 of the memory 171
- the data line D 1 of the data bus 177 is connected to the data line D 2 of the memory 171
- the data line Do of the data bus 177 is connected to the data line D 6 of the memory 171 .
- a scrambler such as the data scrambler 211 is based on connections between inputs and outputs, using conductors such as wires or PCB traces. Such scrambler is simple and cheap, and can be easily manufactured or made. Further, such data scrambler does not include any power consuming electronic components, hence does not require any connection to an electric power source. Further, such scrambler does not induce any latency in accessing the memory, and thus does not impact the computer or memory performance.
- a data scrambler may similarly be based on mapping one-to-one data based on logic circuitry.
- a non-limiting example of such data scrambler 213 is shown as part of sub-system 212 in FIG. 21 a .
- the data written to the memory 171 is passed via the logic block 197 a in the data scrambler 213 , where the data is converted, in a similar way described above regarding the logic block 197 in address scrambler 196 .
- Discrete logic gates, PLDs and other arrangements may be equally used, as described regarding the logic circuits of the address scrambler.
- the scrambled data is written to the memory 171 via the data lines 202 .
- the logic block 197 a is activated only in a writing cycle to the memory 171 , as indicated by the R/W line 173 connected to the data scrambler 213 , in parallel to the connection to the memory 171 .
- the data read is passed unchanged to the data bus 167 (via the data logic 175 ), via the pass-thru connections 218 . Since the data is stored as scrambled in the memory 171 , the data read is scrambled, and the software executed by the processor accessing the memory 171 for using this data needs to be aware of the scrambling in order to properly use the read data word.
- two logic blocks are used, each for a different data flow direction.
- a data scrambler 215 is part of sub-system 214 shown in FIG. 21 b .
- the logic block 197 a is used (as in sub-system 212 ) to convert the data being written to the memory 171
- the logic block 197 b is used when data is read from the memory 171 .
- the data scrambler 215 uses the appropriate logic block according to the R/W line 173 , which indicates whether ‘read from memory’ or ‘write to memory’ operation are currently executed.
- the logic block 197 a serving the writing to memory 171 and the logic block 197 b serving the reading from memory 171 , are both one-to-one mapping and are exactly inverse function, such that if the logic block 197 a maps the data word ‘X’ to the word ‘Y’ written to the memory 171 , the logic block 197 b maps back the data word ‘Y’ read from the memory 171 to the original data word ‘X’.
- the data is stored as encrypted in the memory 171 , this is transparent to any software being executed by the processor.
- a single logic block may be equally used, wherein a support logic circuitry route the input data to the data scrambler 215 (either from the memory 171 or from the data bus 167 ) to the logic block input, and similarly the output is routed to the data scrambler output (respectively either to the data bus 167 or to the memory 171 ).
- the logic blocks 197 a , the block 197 b , or both, may be implemented using a memory.
- Such data scrambler 217 based on a memory 199 is shown as part of sub-system 216 in FIG. 21 c .
- the memory 199 types and programming options described above regarding memory 199 as part of the address scrambler 196 may be equally applied to the memory 199 being part of the data scrambler 217 .
- Either two memories may be used, one for each direction, similar to the two logic blocks described in data scrambler 215 , or preferably a single memory may be used, supported by logic circuitry for properly routing the input/output of the memory based on the R/W line 173 status.
- FIGS. 18-19 above describe manipulating of the address words by the use of address scrambler
- FIGS. 20-21 above describe manipulating of the data words by the use of data scrambler
- both scramblers are used.
- Such a non-limiting example of sub-system 220 is shown in FIG. 22 , describing the memory 171 being accessed via address scrambler 181 and data scrambler 201 .
- the scrambling of the data and the scrambling of the address may be the same, similar or different, and may be fully independent from each other or may be dependent in some way.
- the width of the data and address words may be the same (e.g. 16 bits), or may use different width (e.g. 8-bit data word width and 32-bit address word width).
- the address scrambling may be passive and connection-only based, such as address scrambler 191 shown in FIG. 19
- the data scrambling may be memory-based or PLD-based, such as data scrambler 217 shown in FIG. 21 c or data scrambler 215 shown in FIG. 21 b
- the implementation arrangement may be the same, similar or different.
- a data scrambler may use a memory based mapping while the address scrambler may use discrete logic gates.
- One advantage of such an arrangement is the increase in the total number of scrambling schemes, where in the case that the address scrambling may be implemented using Y possible schemes and the data scrambling may be implemented using Z possible schemes, the total number of obtained schemes using both scramblers is their multiplication Y x Z.
- the address scrambler uses memory-based 8-bit width
- Further encryption may be achieved by filling part of the memory 171 with random or meaningless information, as exampled in sub-system 218 shown in FIG. 21 d , illustrating data scrambler 215 including a randomness capability.
- the data bus is 5-bit wide while the memory 171 can store 8-bit wide data words.
- the 5-bit data words are bi-directionally carried over data bus 177 a between the data bus 167 and the data scrambler 215 .
- Part of the memory 171 data lines, namely the 5 bits D 7 , D 5 , D 4 , D 1 and D 0 of the memory 171 are scrambled by the logic 197 a as described before, using PLD, discrete gates, memory, processor or simple connections, providing a one-to-one mapping of the 5-bit data words.
- the other data bits, namely D 6 , D 3 and D 2 are the output of the random number generator 219 .
- the 8-bit word written to the memory 171 is composed of 5 bits which are actual data, converted by the logic 197 a , and 3 bits are random. An attacker without prior knowledge cannot easily separate the random bits from the real data bits.
- the logic 197 b convert back only the 5 data bits into the original data word, and passes it along to the data bus 167 . While the number of bits used for randomizing in the non-limiting example of FIG. 21 d is 3, it is clear that any number of bits may be equally used, using a random number generator having a suitable output width. Using large number of bits increases the memory content security, but reduces the effective capacity of the memory used.
- the random signal generator 219 can be hardware based, using a physical process such as thermal noise, shot noise, nuclear decaying radiation, photoelectric effect or other quantum phenomena, or can be software based, using a processor executing an algorithm for generating pseudo-random numbers which approximates the properties of random numbers.
- a non-limiting example of random number generators is disclosed in U.S. Pat. No. 7,124,157 to Ikake entitled: “Random Number Generator”, in U.S. Pat. No. 4,905,176 to Schulz entitled: “Random Number Generator Circuit”, in U.S. Pat. No. 4,853,884 to Brown et al. entitled: “Random Number Generator with Digital Feedback” and in U.S. Pat. No.
- the digital random signal generator 219 can be based on ‘True Random Number Generation IC RPG100/RPG100B’ available from FDK Corporation and described in the data sheet ‘Physical Random number generator RPG100.RPG100B’ REV. 08 publication number HM-RAE106-0812, which is incorporated in its entirety for all purposes as if fully set forth herein.
- the data scrambling and the address scrambling related implementations may be separated and independent, as shown in FIG. 22 a disclosing a sub-system 222 including a data scrambler related functionality 223 , which is based on the data scrambler 201 , together with the supporting hardware such as bus interfaces.
- sub-system 222 includes a data scrambler related functionality 224 , which is based on the address scrambler 181 , together with the suitable supporting hardware such as bus interfaces.
- the data and address scramblers are not entirely separated, but may share various resources, such as power supply or power connection, mechanical support, various components or other shared circuits.
- the general case is schematically shown as sub-system 225 in FIG. 22 b .
- All the functionalities added in order to support scrambling or any other type of encryption is included in the adapter 226 , which connects (directly or indirectly) to the processor 163 via the data bus 167 , control bus 165 and the address bus 166 (which may be multiplexed as described above).
- the adapter 226 connects (directly or indirectly) to the memory 171 via the data bus 167 a , the control bus 165 a and the address bus 166 a .
- Each of the buses may be pass-through or regenerated. Further, each of the buses may be parallel or serial type.
- a single bus carrying data, address and control e.g.
- the adapter may include only address scrambling functionality (such as address scrambler 181 ), only data scrambling functionality (such as data scrambler 201 ), or both functionalities.
- address scrambling functionality such as address scrambler 181
- data scrambling functionality such as data scrambler 201
- the address bus 166 may not be connected to the adapter 226 , or passed-through without any manipulation via the adapter 226 to the memory 171 .
- the adapter 226 may only manipulate the information (e.g., data and/or address words) carried over the buses without changing or modifying their protocol or format, or may also convert between different formats or protocols.
- the drive 228 may be a DVD recorder and the media 229 may be a DVD-R type disk.
- a data written onto the media 229 by the drive 228 is encrypted based on the address scrambling scheme implemented in the address scrambler 181 and in the data scrambling scheme implemented in the data scrambler 201 .
- An attacker, having no prior information, is probably not able to easily decipher the encrypted information written on the media 229 , due to the large number of possible scrambling schemes.
- reading the media 229 can easily be performed by the sub-system 227 , or by having the knowledge regarding the scrambling schemes implemented in both the address scrambler 181 and the data scrambler 201 .
- the processor 163 connects to the memory 171 by a serial bus.
- the serial bus commonly carries time multiplexed serial address and data words.
- FIG. 23 shows an adapter 230 (corresponding to adapter 226 in FIG. 22 b ) for address scrambling in a serial bus environment.
- the serial bus 238 a connects to the processor 163 , allowing the access the memory 171 by an address word carried serially over the serial bus 238 a .
- the address related bits are identified and de-multiplexed/extracted from the incoming serial stream by the address extraction block 234 .
- the address bits in their serial form are connected to a serial/parallel block 231 via the connection 235 .
- the address word is then converted to parallel by the serial/parallel block 231 , and is presented over the bus 176 .
- the address scrambler 181 which can be any type of scrambler as described herein, maps the address word received from the bus 176 to another address word (according to any address scrambling scheme), that is carried by the bus 182 to the parallel/serial block 232 , which converts the parallel address word to a serial stream.
- the converted address word is then multiplexed/inserted into the outgoing stream by the address insertion block 233 , replacing the original address that was carried over the serial bus 238 a .
- the address word conversion to parallel and then to serial, and the mapping function may introduce a latency to the incoming address word in the bus 238 a , and thus the non-address part of the incoming stream is routed to a delay block 237 a via the connection 239 a , which introduces a similar or equal delay to the rest of the information carried over the serial bus 238 a .
- the address insertion block 233 combine/multiplex the converted address word with the rest of the stream being delayed, and the combined stream is output as part of the serial bus 238 b , which is identical or similar to the incoming serial bus 238 a , except for being delayed and including the converted address.
- the serial parallel block 231 and the parallel/serial block 232 , are commonly implemented using a digital shift register, commonly employing a cascade of flip-flops sharing the same clock, allowing the stored bits to be shifted to one direction.
- the delay block 237 a may be analog delay line including electrical components creating a time difference between input and output signals, or preferably may be based on a shift register or on a memory.
- FIG. 24 shows an adapter 240 (corresponding to adapter 226 in FIG. 22 b ) for data scrambling in a serial bus environment. Similar to the address scrambling shown in FIG. 23 , the serial data is extracted from the stream, converted to parallel, mapped into another data word, and inserted into the outgoing serial stream. However, since the data is bi-directional, directed from the processor 163 to the memory 171 is writing cycle, and from the memory 171 to the processor 163 is a read cycle, the corresponding data scrambling device 240 supports bi-directional data mapping.
- the serial bus 238 a connects to the processor 163 , allowing the writing to the memory 171 of a data word carried serially over the serial bus 238 a .
- the data related bits are identified and de-multiplexed/extracted from the incoming serial stream by the data insertion/extraction block 244 .
- the data bits in their serial form are connected to a serial/parallel block 246 via the connection 245 .
- the data word is then converted to parallel by the serial/parallel block 246 , and is presented over the bus 177 .
- the data scrambler 201 which can be any type of scrambler as described herein, maps the data word received from the bus 177 to another data word (according to any data scrambling scheme), that is carried by the bus 202 to the parallel/serial block 247 , which converts the parallel data word to a serial stream.
- the converted data word is then multiplexed/inserted into the outgoing stream by the data insertion/extraction block 243 , replacing the original data that was carried over the serial bus 238 a .
- the data word conversion to parallel and then to serial, and the mapping function may introduce a latency to the incoming data word in the bus 238 a , and thus the non-data part of the incoming stream is routed to a delay block 237 b via the connection 239 a , which introduces a similar or equal delay to the rest of the information carried over the serial bus 238 a .
- the data insertion/extraction block 243 combine/multiplex the converted data word with the rest of the stream being delayed, and the combined stream is output as part of the serial bus 238 b , which is identical or similar to the incoming serial bus 238 a , except for being delayed and including the converted data.
- This process is reversed in a read from memory 171 cycle, where the data read from the memory 171 that is carried over the incoming stream of serial bus 238 b is extracted by the data insertion/extraction block 243 , and then converted to parallel by the parallel/serial 247 (being a bi-directional component), thus being mapped back to the original data word by the bi-directional data scrambler 201 .
- the data word is serialized by the bi-directional serial/parallel block 246 , and then inserted into the data insertion/extraction block 244 to be multiplexed with the delay stream by the bi-directional delay 237 b , where the multiplexed outgoing stream is sent over the serial bus 238 a to the processor 163 .
- An adapter 226 may include only the serial-bus address scrambler 230 , only the serial-bus data scrambler 240 , or both.
- the data and address scrambling functionalities may be integrated, and thus may share any resources.
- both circuits may share a power source, a power supply or a power connected.
- other electronic circuits mat be shared and used for both functionalities.
- the same connector or connectors, as well as interfaces and other support circuits may be used by both functionalities.
- the associated components implementing these functionalities may be housed in the same enclosure, or may be mounted to the same surface.
- the hardware relating to both functionalities may be integrated onto a single substrate (e.g., silicon “die”), or as components mounted on the same PCB.
- Using data or address scrambling according to one or more of the schemes described herein provides the advantage of encrypting the content stored in the memory 171 .
- the encryption mechanism is independent and invisible from the processor 163 , and is transparent to the software (or firmware) executed by the processor 163 (such as operating system), thus minimizing the risk of malware or virus attacking the encryption method.
- the encryption is further notably transparent to a user, and in most cases the scrambling scheme operation cannot be detected by the user.
- Using scrambling as described in some non-limiting examples herein requires only the connection of an adapter 226 (including the data, address or both scramblers hardware and related components). In some aspects, there may be is no need for any modifications or any changes in the processor 163 related hardware or any software being executed by the computer system.
- An adapter 226 may be provided implementing a particular scrambling scheme, distinct from any other adapters, and this scheme is solely used for encrypting the content written into the memory 171 .
- each adapter 226 may be manufactured embedding a distinct scrambling scheme, different from all other manufactured devices.
- the memory 171 content may be read (or otherwise decrypted) only by using the same adapter 226 .
- a security measure is provided by physically separating the particular adapter 226 and the encrypted content memory 171 . Even in the case an attacker gets hold on the memory 171 or its content, he may not decrypt the original content written into it without the suitable adapter 226 (or at least the scrambling scheme implemented in it).
- the adapter 226 may be integrated with a computer system, while the memory 171 may be removable or use removable media (for example, a non-volatile memory). In such a case, data written onto the memory 171 medium by a specific computer system, may be read only by that specific computer system.
- the adapters 226 are provided in pairs, where the two devices in the pair are similar or identical duplicates, or otherwise embed the same scrambling scheme.
- the two devices of the pair may be integrated in, or connected to, two different computer systems.
- these two computer systems share the same scrambling scheme, and thus may exchange memories (or storage mediums) between them.
- the memories (or the mediums) written by one of the computer systems can only be read and decrypted by these computer systems, and cannot be read or decrypt by other computer systems.
- the two devices are associated with distant computer systems, where the memories (or the mediums) may be securely exchanged.
- multiple duplicates of the scrambling scheme may exist, such as in an enterprise employing multiple computer systems, all associated with the same scrambling scheme.
- memories or mediums may be easily exchanged between the computer systems, but the original memory content cannot be accessed outside the enterprise.
- the memory 171 physical storage means may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical medium.
- the memory may semiconductor (a.k.a. solid-state) based, and in the form of a chip, IC, module, ICs mounted on a PCB, memory card, or a rigidly enclosed box.
- the memory may be volatile or non-volatile, and may be of static or dynamic types.
- the memory may be written more than once at any time, or may be written once, as part of the manufacturing process or afterwards (e.g., by the user using a dedicated equipment, or as part of an electronic circuit as part of normal operation).
- the memory may use random or sequential access.
- the memory may be location-addressable or file-addressable or content-addressable.
- the memory may employ a non-removable medium, or a removable medium associated with a suitable writer/reader (or read-only) drive.
- a memory may be accessed using a parallel or serial connection or bus, and may be characterized by its capacity and access time.
- the memory may be designed as portable or as in-computer enclosure.
- the memory may include multiple memory devices, and may be a DAS, or part of NAS or SAN.
- the NAS may be a clustered NAS, where distributed file system is used, running simultaneously on multiple servers, allowing for distributing of data and metadata across the cluster nodes or storage devices.
- a SAN may be based on IP storage as described in White Paper “IP storage Inside White Paper”, Storage Networking Industry Association (SNIA) IP Storage Forum, October 2007, which is incorporated in its entirety for all purposes as if fully set forth herein.
- the SAN may use storage virtualization, where logical storage is abstracted from physical storage.
- the physical storage resources memory such as disk arrays
- the physical storage resources are aggregated into storage pools, from which the logical storage is created.
- Multiple disk arrays may be from different vendors and scattered over the network) may be virtualized into a single monolithic device, which can be managed uniformly.
- the methods described herein may be used as part of translating the logical space into the physical space.
- a clustered file system where the files are shared by being simultaneously mounted on multiple servers.
- Such a system may be a shared disk file system, which uses a storage area network (SAN) or RAID to provide direct disk access from multiple computers at the block level. Translation from file-level operations that applications use to block-level operations used by the SAN must take place on the client node.
- a shared disk file system adds a mechanism for concurrency control which gives a consistent and serializable view of the file system, avoiding corruption and unintended data loss even when multiple clients try to access the same files at the same time.
- Shared disk file systems also usually employ some sort of a fencing mechanism to prevent data corruption in case of node failures.
- the underlying storage area network might use any of a number of block-level protocols, including SCSI, iSCSI, HyperSCSI, ATA over Ethernet (AoE), Fibre Channel, and InfiniBand.
- block-level protocols including SCSI, iSCSI, HyperSCSI, ATA over Ethernet (AoE), Fibre Channel, and InfiniBand.
- distributed file systems may be used that use a network protocol, but may not share block level access to the same storage.
- the adapter 226 including the address or data scrambling functionalities (or both) may be implemented by electrical power consuming components, such as PLDs, memories or processors.
- the adapter 226 may be powered by a dedicated power supply fed from a dedicated power source.
- the power source or the power supply (or both) may be separated from the power sources or the power supplies used for powering the processor 163 or the memory 171 .
- the powering scheme used for powering the processor 163 or for powering the memory 171 (or both) may also be used by the adapter 226 , and thus obviating the need for additional power related hardware.
- a power source for powering the adapter 226 may be a domestic AC power, or a battery (either primary or rechargeable).
- the power supply 253 is power fed from the common AC power supply via AC plug connector 251 and a power cord 252 , using the mains AC power (commonly 115 VAC/60 Hz in North America or 220 VAC/50 Hz in Europe) as the power source.
- the power supply commonly includes an AC/DC converter, for converting the AC voltage into the required low-level stabilized DC voltage or voltages, commonly suitable for power the digital circuits, such as 33 VDC, 5 VDC or 12 VDC.
- Power supplies commonly include voltage stabilizers for ensuring that the output remains within certain limits under various load conditions, and typically employs a transformer, silicon diode bridge rectifier, reservoir capacitor and voltage regulator IC. Switched mode regulator supplies also include an inductor.
- power supply 253 is integrated into a single device or circuit, in order to share common circuits. Further, the power supply 253 may include a boost converter, such as a buck boost converter, charge pump, inverter and regulators as known in the art, as required for conversion of one form of electrical power to another desired form and voltage.
- power supply 253 can be an integral part and housed within the computer system enclosure (together with the processor 163 ), it may be enclosed as a separate housing connected via cable to the computer system enclosure.
- a small outlet plug-in step-down transformer shape can be used (also known as wall-wart, “power brick”, “plug pack”, “plug-in adapter”, “adapter block”, “domestic mains adapter”, “power adapter”, or AC adapter).
- power supply 253 may be a linear or switching type.
- the low level DC voltage (or several voltages) output from the power supply 253 is connected to power the processor 163 (and commonly its environment and some of its peripheral components) by the power wiring 254 (wires, cable or PCB traces).
- the power supply 253 is connected to DC power the adapter 226 via the power wiring 254 b , and the memory 171 via the power wiring 254 c .
- Dedicated wirings may be used, as well as power bus to which all the power consuming components are connected to be power fed from.
- the arrangement 260 describes the case where each of the elements is power fed from a dedicated power supply powered from a dedicated power source.
- the processor 163 is DC-power fed via the power wiring 254 a from the power supply 253 a , which is fed from the power source 261 a
- the adapter 226 is DC power fed via the power wiring 254 b from the power supply 253 b , which is fed from the power source 261 b
- the memory 171 is DC power fed via the power wiring 254 c from the power supply 253 c , which is fed from the power source 261 c .
- Each of the power sources 261 a , 261 b and 261 c may be the domestic AC power, or a battery.
- batteries are commonly used in laptops and other portable devices, as well as in some UPS (Uninterruptible Power Supply) systems.
- the power supplies 253 a , 253 b and 254 c may be respectively adapted to work with the respective power source, such as having an AC/DC converter for AC power based power source and a DC/DC converter for DC power source.
- Each of the power supplies 253 a - c and each of the power sources 261 a - c may be separate from, or integrated with, the respective power fed device.
- Such integration may take the form of sharing a common enclosure, sharing a mechanical support, sharing a PCB, sharing components or circuits, or sharing common connections.
- the buses 262 a and 262 b may be of the same type, or alternately different type, where the adapter 226 further serves as a converter between the bus types.
- the power signal (typically DC—Direct Current) is associated with the data signals connecting the processor 163 to the adapter 226 .
- DC—Direct Current DC—Direct Current
- FIG. 27 Such an arrangement 272 is shown in FIG. 27 , where the bus 262 a (serial or parallel), carrying data words, address words, or both, is connecting the adapter 226 to the processor 163 .
- the adapter 226 is power fed via the power wiring 271 .
- the power wiring 271 may be routed substantially along the cable carrying the bus 262 a , typically between the motherboard on which the processor 163 is mounted and the adapter 226 .
- a SATA-compliant bus is used, defined to use two separate and distinct cables, one cable 262 a for carrying data/address words only, and one cable 271 for carrying power only.
- Each of the data and power point-to-point cables uses separate connectors (data and power) for connecting to mating connectors at the cable ends.
- a single cable is used for carrying both data/address words and the power signal (commonly DC), thus requiring a single connector at each cable end (for connecting to mating connectors).
- the single cable includes separate wires (or other conductors) dedicated and for carrying the power signal, while the other wires/conductors are used for carrying the information, typically digital data signal.
- the devices at each of the cable ends connect the power related circuits to the power related pins in the connector, while the communication related circuits are connected to the communication related pins in the same connector.
- Such scheme is used for example in USB (Universal Serial Bus) where 5 VDC power is carried on the same cable and using the same connector together with the bi-directional digital data signal.
- the power and communication signals are carried over the wires in the cable using Frequency Division Multiplexing (FDM, a.k.a. Frequency Domain Multiplexing).
- FDM Frequency Division Multiplexing
- the power and the communications signals are carried each in its frequency band (or a single frequency) distinct from each other.
- the power signal can be a DC (Direct Current) power (effectively 0 Hz), while the communication signal is carried over the 100 Hz-10 MHz (or 4-30 MHz) frequency band, which is distinct and above the DC power frequency.
- the component on each side may further include a low pass filter coupled between the connector and the transceiver (transmitter/receiver) for substantially passing only the power frequency, for powering the device from the power signal, or for injecting the power signal.
- a low pass filter coupled between the connector and the transceiver (transmitter/receiver) for substantially passing only the power frequency, for powering the device from the power signal, or for injecting the power signal.
- Such device may also further include a high pass filter coupled between the connector and the transceiver for substantially passing only the communication frequency band, for passing the communication signal between the connector and the transceiver.
- PoE Power-over-Ethernet
- IEEE 802.3af and IEEE 802.3at also explained in U.S. Pat. No. 6,473,609 to Lehr et al.
- the memory 171 may be power fed from dedicated power supply and power source, as shown in FIG. 27 . Alternatively or additionally, the memory 171 may be power fed from the same power supply 253 feeding the processor 163 , as shown in arrangement 272 in FIG. 27 a .
- the memory 171 is connected to the adapter 226 via bus 262 b , allowing the processor 163 to access the memory 171 , preferably in a way as if adapter 226 is not present.
- the memory 171 is power fed by the power connection 271 a . In this non-limiting example, the power required for the memory 171 operation is passed through the adapter 226 , shown as line 271 b in the adapter 226 .
- the power connection 271 is used to power feed both the adapter 226 and the memory 171 from the same power supply 253 a .
- the carrying of the power signal over connection 271 a and the digital data over bus 262 b may be separated or combined, and may use different or the same scheme used for carrying the power signal over connection 271 and digital data over bus 262 a as described above.
- FIG. 27 b showing an arrangement 275 where the processor 163 is power fed via connection 254 a from the power supply 253 a (sourcing power from the power source 261 a ), and where the memory 171 is separately power-fed via connection 254 c from the power supply 253 c (sourcing power from the power source 261 c ).
- the adapter 226 may be power fed via the memory 171 over the power connection 276 .
- the carrying of the power signal over connection 276 and the digital data over bus 262 b may be separated or combined, and may use different or the same scheme used for carrying the power signal over connection 271 and digital data over bus 262 a as described above. Further, the adapter may pass through the power signal as shown in arrangement 277 shown in FIG.
- connection 276 b where the power signal is passed through connection 276 b from the memory 171 , and may power feed the processor 163 (and related support components) via the power connection 276 a .
- Any combination of powering scheme may be used for powering the adapter 226 .
- part of the required power may be provided locally by a battery, part of the power may be supplied from an external dedicated power source, and part may be powered from a power-carrying bus.
- FIG. 28 showing the powering scheme 280 of an adapter (such as adapter 226 ), that is locally powered from a power source 261 b , and further power feeds the memory 171 via the bus 262 b .
- the adapter 280 connects to the processor 163 via connector 283 c , for connecting to the bus 262 a carried over a cable and accessed via the mating connector 282 c .
- the adapter 280 is power fed via the power connector 283 a , connectable to the mating connector 282 b of the cable 281 , used for connecting to the power source 261 b .
- the power feeds the power supply 253 b which provides various DC voltages for powering the internal adapter electronic circuits, such as 5 VDC via connection 285 e, 12 VDC via connection 285 d , and 3.3 VDC via connection 285 c .
- the number of connections and the voltages specified herein are for example only, and other voltages may be equally used.
- the power supply 253 b supplies 5 VDC via connection 285 a , and 12 VDC via connection 285 b , to the bus connector 283 b .
- the non-power related signals (such as the serial digital data) 284 b are combined with the power signals at the connector 283 b , forming the bus 262 b carrying both power and data, connected via the mating connector 282 b.
- FIG. 28 a showing an alternative powering scheme 286 of an adapter (such as adapter 226 ), that is connected to a power carrying bus 262 a , where both the adapter circuits and the memory 171 are power fed from the power carried over the bus 262 a .
- the buses 262 a and 262 b are both carrying 3.3 VDC and 12 VDC power signals.
- the power carrying wires in the cable of the bus 262 a are accessed in connector 283 , and are connected to the mating wires in the cable of bus 262 b , via the pass-through connection 287 a carrying the 3.3 VDC power signal, and connection 287 b for the 12 VDC power signals.
- the non-power related wires and signals of the bus 262 a are designated as the bus 284 a to the suitable circuits of the adapter.
- the power supply 253 b is power fed from the 3.3 VDC line via connection 288 b and from the 12 VDC line via connection 288 a , and feeds the voltages required for part or all adapter circuits operation.
- Such configuration further requires the use of connectors (such as connectors 282 c and 282 b , and the mating connectors) having at least four contacts, two for the power and at least two for the digital data signal (or any other signal carried in the system).
- the power signal and the data signal e.g., serial digital data signal
- This scheme makes use of a power/data splitter (PDS) 294 and a power/data combiner (PDC) circuit 293 , where the latter combines the power and data signals to a combined signal, and the first splits a combined signal into its power and data signals components.
- PDS or PDC circuits e.g., PDC 294 and PDS 293 in FIG. 29
- PDS or PDC circuits commonly employ three ports designated as ‘PD’ 301 (stands for Power+Data), ‘D’ 302 (stands for Data only) and ‘P’ 303 (stands for Power only).
- the bus 262 a (carrying both power and data) is connected to port ‘PD’ 301 a , which passes the a data signal received from, or transmitted to, the port ‘D’ 302 a via the bus 284 a (which carry all non-power signals of the bus 262 a ), while the power signal carried over the bus 262 a is split and supplied to port P 303 a and connected to via the connection 291 .
- the power signal fed from connection 292 to the power port P 303 b , and the digital data signal carried over the bus 284 b (which carry all non-power signals of the bus 262 b ) are combined in PDC 293 and connected via port ‘PD’ 301 b to form the bus 262 b .
- power signal transparently passes between ports ‘PD’ 301 and P 303
- data signal e.g. serial digital data signal
- the power signal may be AC or DC
- the PDC 293 or the PDS 294 may each contain only passive components or alternatively may contain both active and passive electronic circuits.
- the data and power signals are carried over the same wires using Frequency Division Multiplexing (FDM), where each signal is using a different frequency band, and wherein the frequency bands are spaced in frequency.
- FDM Frequency Division Multiplexing
- the power signal can be a DC signal (0 Hz), while the data signal will be carried over a band excluding the DC frequency.
- the power signal can be an AC power signal, using a frequency above the frequency band used by the data signal. Separation or combining the power and data signals makes use of filters, passing or stopping the respective bands.
- a non-limiting example of a circuit 300 that may serve as a PDS 294 or as PDC 293 is shown in FIG.
- a capacitor 305 a which may be supplemented with another capacitor 305 b is connected between the PD port 301 and the D port 302 , implementing a High Pass Filter (HPF) 304 .
- HPF High Pass Filter
- the HPF 304 substantially stops the DC power signal and substantially passes the data signal (or any AC signal) between the connected corresponding ports.
- An inductor 307 a which may be supplemented with another inductor 307 b is connected between the PD port 301 and the P port 303 , implementing a Low Pass Filter (LPF) 306 .
- LPF Low Pass Filter
- the LPF 306 substantially stops the data signal and substantially passes the DC power signal between the connected corresponding ports.
- Other passive or active implementations of the HPF 304 and LPF 306 can be equally used.
- the power signal may be low-frequency power voltage, such as 50 Hz or 60 Hz.
- the data and power signals are carried over the same wires using a split-tap transformer, as commonly known for powering an analog telephone set known as POTS (Plain Old Telephone Service and ISDN).
- a non-limiting example of a circuit 310 that may serve as a PDS 294 or as PDC 293 is shown in FIG. 31 , corresponding for example to the case wherein the power signal is a DC signal (0 Hz), while the data signal is an AC signal carried over a band excluding the DC frequency.
- a transformer 311 is connected between the PD port 301 and the D port 302 , where the primary side windings 312 a and 312 b connected to the PD port 301 , and the secondary winding 312 c is connected to the D port 302 .
- the primary side is split to be formed of two windings 312 a and 312 b , connected together with capacitor 313 .
- the transformer substantially passes the data signal between PD port 301 and the D port 302 , while the DC power signal (or a low frequency AC signal) is blocked by the capacitor 303 . Any DC signal such as the DC power signal is substantially passed between the PD port 301 and the P port 303 .
- the power signal is carried over a phantom channel between two pairs carrying the data signal or other signals.
- a non-limiting example of a of a circuit 320 that may serve as a PDS 294 or as PDC 293 is shown in FIG. 32 , corresponding for example to the case wherein the power signal is a DC signal (0 Hz), while the data signal is an AC signal carried over a band excluding the DC frequency.
- the transformers 321 a and 321 b are connected between the PD port 301 and the D port 302 , substantially passing data signals there between.
- the split tap 322 b (of the winding 322 a of transformer 321 a ) and the split tap 322 e (of the winding 322 d of transformer 321 b ) are connected to the P port 303 , allowing for DC power flow between the PD port 301 and the P port 303 .
- Such a phantom arrangement is used in communication based on IEEE802.3af or IEEE8023at standards.
- Using the phantom channel for carrying power may be used in the case wherein at least four conductors are used as a connecting medium between modules.
- the bus connecting to the memory or to the processor is based on a LAN communication, such as Ethernet, and may be partly or in full in accordance with the IEEE802.3 standard.
- Gigabit Ethernet GbE or 1 GigE
- Gigabit Ethernet may be used, describing various technologies for transmitting Ethernet frames at a rate of a gigabit per second (1,000,000,000 bits per second), as defined by the IEEE 802.3-2008 standard.
- the IEEE 802.3z standard includes 1000BASE-SX for transmission over multi-mode fiber, 1000BASE-LX for transmission over single-mode fiber, and the nearly obsolete 1000BASE-CX for transmission over balanced copper cabling. These standards use 8b/10b encoding, which inflates the line rate by 25%, from 1000 Mbit/s to 1250 Mbit/s, to ensure a DC balanced signal. The symbols are then sent using NRZ.
- the IEEE 8023ab which defines the widely used 1000BASE-T interface type, uses a different encoding scheme in order to keep the symbol rate as low as possible, allowing transmission over twisted pair.
- the 10 gigabit Ethernet (10GE or 10 GbE or 10 GigE may be used, which is a version of Ethernet with a nominal data rate of 10 Gbit/s (billion bits per second), ten times faster than gigabit Ethernet.
- the 10 gigabit Ethernet standard defines only full duplex point to point links which are generally connected by network switches.
- the 10 gigabit Ethernet standard encompasses a number of different physical layers (PHY) standards.
- a networking device may support different PHY types through pluggable PHY modules, such as those based on SFP+.
- the powering scheme may be based on Power over Ethernet or PoE, which describes a system to pass electrical power safely, along with data, on Ethernet cabling, and may use phantom configuration for carrying the power.
- PoE Power over Ethernet
- the PoE technology and applications are described in the White Paper “All You Need To Know About Power over Ethernet (PoE) and the IEEE 802.3af Standard”, by PowerDsine Ltd., 06-0002-082 20 May 2004, and in U.S. Pat. No. 6,473,609 to Lehr et al. titled: “Structure Cabling System”, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- the IEEE standard for PoE requires category 5 cable or higher for high power levels, but can operate with category 3 cable for low power levels.
- the power is supplied in common mode over two or more of the differential pairs of wires found in the Ethernet cables, and comes from a power supply within a PoE-enabled networking device such as an Ethernet switch or can be injected into a cable run with a midspan power supply.
- a PoE-enabled networking device such as an Ethernet switch or can be injected into a cable run with a midspan power supply.
- the IEEE 8023af-2003 PoE standard which is incorporated in its entirety for all purposes as if fully set forth herein, provides up to 15.4 Watts of DC power (minimum 44 V DC and 350 mA) to each device. Only 12.95 Watts is assured to be available at the powered device as some power is dissipated in the cable.
- the updated IEEE 8023at-2009 PoE standard also known as PoE+ or PoE plus, and which is incorporated in its entirety for all purposes as if fully set forth herein, provides up to 25.5 Watts of power.
- an adapter 226 may serve as a Power Sourcing Equipment (PSE) that provides (“sources”) power on the Ethernet cable.
- PSE Power Sourcing Equipment
- An adapter 226 consuming power from the LAN is referred to as a Powered Device (PD).
- PSE Power Sourcing Equipment
- PD Powered Device
- the adapter 226 is a removable device, mechanically attached to the memory 171 .
- the adapter 226 may then be destructed or just disassociated from the memory 171 .
- the content of the memory 171 thus rendered indecipherable to any attacker without the adapter 226 .
- another adapter 226 may now be used with this memory 171 , making it fully operational for storing other information, yet without any actual risk of data breaching.
- the adapter in such configuration serves as the ‘key’ for accessing the memory 171 content.
- Such sanitization is advantageous over the destruction of the whole memory, and much quicker than most data erasure techniques.
- an organization using multiple memories may attach a separate adapter to each memory, and when a specific memory content is required to be erased, another adapter (carrying a different scrambling scheme) may be attached to this memory, allowing the continuing of this memory for storing other information.
- the removed adapter may now be used with another memory, this allowing repurpose of the memories and the adapters by easily swapping the adapters, where the old data become irretrievable, and thus obviating the need for any physical destruction.
- the scrambling may thus be used for Full Disk Encryption (FDE), as a substitute or in addition to other FDE schemes.
- FDE Full Disk Encryption
- An encryption (other than an address or data scrambling) may be used as a substitute or in addition to address or data scrambling.
- a non-limiting example of an adapter 330 which is based on adapter 226 described above, is shown in FIG. 33 , supporting both scrambling and encryption functionalities.
- the adapter 330 is used between the buses 338 a and 338 b , both assumed to be serial buses.
- the buses may be of the same type or of similar types, or alternatively may be different buses.
- the buses 338 a and 338 b and respectively connected via connectors 283 a and 283 b , mating with the respective buses cable connectors.
- the serial data input from the bus 338 a is received by the receiver 333 a , being part of the transceiver 331 a .
- the received data stream is converted into parallel by a deserializer (part of the serializer/de-serializer block 333 a ), and then encrypted by the encryption block (part of the encryption/decryption block 334 ).
- a scrambling (either data or address or both) is performed by a scrambler (part of the scrambler/descrambler block 335 ), and then the data is serialized by a serializer (part of the serializer/de-serializer block 333 b ).
- the serial data stream is then transmitted to the bus 338 b by the transmitter 332 b , being part of the transceiver 331 b .
- the other direction is similar, where the serial data input from the bus 338 b is received by the receiver 333 b , being part of the transceiver 331 b .
- the received data stream is converted into parallel by a deserializer (part of the serializer/de-serializer block 333 b ).
- a descrambling (either data or address or both) is performed by a descrambler (part of the scrambler/descrambler block 335 ), and then decrypted by the encryption block (part of the encryption/decryption block 334 ).
- serializer part of the serializer/de-serializer block 333 a .
- the serial data stream is then transmitted to the bus 338 a by the transmitter 332 a , being part of the transceiver 331 a.
- Each or both of the transmitters 332 a and 332 b are preferably capable of operating at serial bit rates above 1 Gigabit/second, and commonly use differential signaling and low voltages for faster switching, such as MOS Current Mode Logic (MCML) based technology.
- the transmitters may use pre-emphasis or de-emphasis to shape the transmitted signal to compensate for expected losses and distortion.
- PLLs Phase Locked Loops
- the line-code commonly employs self-clocking and other encoding schemes, and control information is transmitted along with the data for error detection, alignment, clock correction, and channel bonding.
- the receivers 333 a and 333 b are commonly designed to mate with the corresponding transmitters and to recover the data and clock from the received signals, and commonly use equalization, and may further include impedance matching termination. The receivers commonly decode the received signal, and detect encoding-based errors. The byte boundaries and other alignment schemes may also be performed by the receivers.
- the serializer/de-serializer blocks 333 a and 333 b may be identical or similar, and may further be similar or identical to the serial/parallel blocks 246 and 247 described above.
- Serializer/Deserializer such as blocks 333 a and 333 b
- transceiver such as transceivers 331 a and 331 b
- SerDes or Multi-Gigabit Transceiver
- the transceiver may be based on RocketIOTM Transceiver available from Xilinx Inc., and described in the presentation “Multi-Gigabit Transceivers—Getting Started with Xilinx's Rocket I/Os”, by Sandia National Laboratories, Jul. 26, 2007, in Athavale A.
- SerDes may be based on Suckow E.H., “Basics of High-Performance SerDes Design: Part I”, Design Guide—“18-bit SerDes Design Guide” by National Semiconductor Corporation, June 2005, Fairchild Semiconductor International, downloaded October 2011 and Lewis D., DesignCon 2004—“SerDes architectures and Applications”, National semiconductor Corporation, 2004, which are incorporated in their entirety for all purposes as if fully set forth herein.
- the encryption/decryption block 334 may use any type of encryption, and may be hardware based or software based (or both). In the latter case, the block 334 includes a computer such as computer 140 described herein. Preferably, a small processor having an on-board memory is used. Any type of Full Disk Encryption (FDE) may be used. Common schemes use 128 or 256 bit Advanced Encryption Standard (AES) keys. Preferably, such encryption and decryption is On-the-fly encryption (OTFE), also known as Real-time Encryption. “On-the-fly” refers to the fact that the data or files are accessible immediately after the key is provided, and is transparent to the end user and done without any user intervention.
- OTFE On-the-fly encryption
- any of the adapters or scramblers herein may be in the form a die (or chip) or an Integrated Circuit (IC).
- the circuits and components described herein may be integrated with, or be part of, a memory IC (such as memory 171 ), a processor IC (such as processor 163 ), a computer that includes the processor, or other circuits.
- the adapters or scramblers herein may be in the form of few ICs and other electrical components physically mounted on, and connected by, a PCB (a.k.a. Printed Wiring Board—PWB), which is used to mechanically support and electrically connect the electronic components using conductive pathways, tracks or signal traces etched from copper sheets laminated onto a non-conductive substrate.
- PCB a.k.a. Printed Wiring Board
- the PCB carrying the circuits may be dedicated unit designed or used substantially or only for implementing the functionality of an adapter or scrambler (or any part thereof). Alternately, the components or circuits are integrated as part of another circuit.
- the motherboard on which the processor 163 is mounted may be used also for carrying the components (e.g., ICs) described herein.
- the memory 171 may be an HDD including an internal PCB for its control, where this PCB also used for the circuits described herein.
- the electrical connection may use an edge connector, relating to the portion of a printed circuit board (PCB) consisting of traces leading to the edge of the board that are intended to plug into a matching socket.
- PCB printed circuit board
- Such connectors are used in computers for expansion slots for peripheral cards, such as PCI, PCI Express, and AGP cards.
- Edge connector sockets consist of a plastic “box” open on one side, with pins on one or both side(s) of the longer edges, sprung to push into the middle of the open center. Connectors are often keyed to ensure the correct polarity, and may contain bumps or notches both for polarity and to ensure that the wrong type of device is not inserted.
- the socket width is chosen to fit to the thickness of the connecting PCB.
- the dedicated PCB is enclosed in a protective enclosure, and connects via a PCB-mounted connector such as in PCMCIA or ExpressCard standard expansion cards.
- a PCB-mounted connector such as in PCMCIA or ExpressCard standard expansion cards.
- a connection supports hot-plugging.
- the ExpressCard standard specifies two form factors, ExpressCard/34 (34 mm wide) and ExpressCard/54 (54 mm wide, in an L-shape), where the connector is the same on both (34 mm wide).
- Standard cards are 75 mm long (10.6 mm shorter than CardBus) and 5 mm thick, but may be thicker on sections that extend outside the standard form.
- the 34 mm slot accepts only 34 mm cards, while the 54 mm slot accepts both 34 mm and 54 mm cards.
- a diagonal guide in the rear of the 54 mm slot guides 34 mm cards to the connector.
- the form factor may be box-shaped having a protecting enclosure, further having one or more connectors for connecting to the buses for connecting between a processor and a memory, using the suitable standard bus connectors.
- Some buses allow for intermediate separate devices to be connected between a processor and peripherals, or between other end-units.
- Ethernet environment allows for hubs, switches and router to be connected.
- SAS bus standard defines SAS fanout and edge expanders.
- the adapter or scramblers circuits and components may be integrated into these intermediaries, sharing the enclosure, power, PCB and connections.
- the PCB or enclosure may be designed to be easily removable, for example by an end user.
- plug-in module is commonly designed to be installed and removed typically by respectively connecting or disconnecting the module connectors (pins, plugs, jacks, sockets, receptacles or any other types) to or from the mating connectors, commonly using human hand force and without any tool.
- the connection mechanical support may be based only on the connectors, or supplemented by guides, rails, or any other mechanical support.
- Such a plug-in module may be pluggable into a computer system, motherboard, an intermediary device, or a memory.
- FIG. 34 showing a view 340 of a laptop 341 , which may correspond to the computer 140 shown in FIG. 13 .
- the laptop 341 is shown to include a display screen 348 (may be corresponding to display 131 in FIG. 13 ), a keyboard 349 (may be corresponding to input device 132 in FIG. 13 ) and a touch pad surface 346 (may be corresponding to cursor control 133 in FIG. 13 ).
- the laptop 341 may connect to peripherals via two USB ports, shown as standard Type-A receptacles 343 a and 343 b .
- FIG. 34 further shows a USB flash drive 342 , having a standard Type-A plug 344 .
- Such a flash drive typically consists of a small printed circuit board carrying the circuit elements and a USB connector, insulated electrically and protected inside a plastic, metal, or rubberized case which can be carried in a pocket or on a key chain, for example.
- the USB connector may be protected by a removable cap or by retracting into the body of the drive, although it is not likely to be damaged if unprotected.
- Most flash drives use a standard type-A USB connection allowing plugging into a port on a personal computer, but drives may be using other interfaces.
- Such flash drive 342 commonly includes a flash-based memory. View 340 a is a close view of the flash drive 342 and the USB connections. Referring now to FIG.
- connection allows for the bi-directional serial communication between the flash drive 342 and the laptop 341 , and further provides mechanical support and power feeding to the USB drive 342 .
- An adapter (or a scrambler) described herein may be used for encrypting digital data stored on the flash drive 342 .
- Such an adapter (or a scrambler) may be in full or in part integrated into the enclosure of the laptop 341 , or to the flash drive 342 . Further, part or all of an adapter (or a scrambler) may be a separate enclosure, such as adapter 352 shown in view 350 in FIG. 35 .
- the adapter 352 includes a Type-A receptacle 343 c , which may mate with the A-Type plug 344 of the flash drive 342 , and an A-Type plug 344 a which mates with the Type-A receptacle 343 b of the laptop 341 .
- View 350 a is a close view of the adapter 352 and its connections.
- an adapter 352 may allow the use of unchanged laptop 341 and flash drive 342 , yet providing encryption or scrambling as described herein.
- the data stored in the flash drive 342 (via the adapter 352 ) is easily secured by separating by separating the drive 342 and the adapter 352 , and can easily be retrieved by connecting them together.
- Such connection is shown in view 351 in FIG. 35 a , where the flash drive is inserted to the adapter 352 , which is inserted to the laptop 341 .
- the adapter 352 may be mechanically attached or secured, and electrically connected to, laptop 341 , as shown in view 354 in FIG. 35 b .
- View 354 a is a close view of the adapter 352 and its connections.
- the adapter 352 may be mechanically attached (and electrically connected) to the flash drive 342 , and the combined set (adapter 352 and the flash drive 342 ) may be plugged into any USB port (of any computer), while encrypting data stored on the drive 342 .
- View 355 a is a close view of the adapter 352 and its connections.
- FIG. 36 showing a view 360 of an HDD 361 connected via bus power cable 366 and bus data cable 367 to the motherboard 362 , which may correspond to the computer 140 shown in FIG. 13 .
- the bus power cable 366 includes two wires, and terminates with power connectors 368 a and 368 b , respectively capable of mating with the motherboard mounted power connector 363 a and the HDD power connector 363 b .
- the data power cable 367 includes 5 wires, and terminates with data connectors 369 a and 369 b , respectively capable of mating with the motherboard mounted data connector 364 a and the HDD power connector 364 b .
- the HDD 361 connected via the power cable 366 and the data cable 367 to the motherboard 362 is shown in view 365 in FIG. 36 a .
- the bus may be SATA bus.
- the data cable 367 is a SATA data cable having 7 conductors (instead of the 5 shown), 3 grounds and 4 active data lines arranged in two pairs (each carrying differential signaling).
- Connectors 369 a and 369 b are SATA data cable wafer-based connectors, mating with SATA data connectors 364 a and 364 b .
- the power cable 366 is a SATA power cable having 5 conductors (instead of the 2 shown), and carrying 3.3 VDC, 5 VDC and 12 VDC.
- Connectors 368 a and 368 b are SATA power cable wafer-based connectors having 15 pins, mating with SATA power connectors 363 a and 363 b.
- An adapter (or a scrambler) described herein may be used for encrypting digital data stored in the HDD 361 .
- Such an adapter (or a scrambler) may be in full or in part integrated onto the motherboard 362 , or to the HDD 361 . Further, part or all of an adapter (or a scrambler) may be a separate enclosure, such as the box-shaped adapter 371 shown in view 370 in FIG. 37 , connected between the motherboard 362 and the HDD 361 .
- a power cable 366 a is terminated with the cable power connectors 368 a and 368 c , which may be respectively connected to the mating power connector 363 a in the motherboard 362 and the mating power connector 363 c in the adapter 371 .
- a power cable 366 b is terminated with the cable power connectors 368 d and 368 b , which may be respectively connected to the mating power connector in the adapter 371 and the mating power connector 363 b in the HDD 361 .
- a data cable 367 a is terminated with the cable data connectors 369 a and 369 c , which may be respectively connected to the mating data connector 364 a in the motherboard 362 and the mating data connector in the adapter 371 .
- a data cable 367 b is terminated with the cable data connectors 369 d and 369 b , which may be respectively connected to the mating data connector of the adapter 371 and the mating data connector 364 b in the HDD 361 .
- the adapter 371 connected between the motherboard 362 and the HDD 361 is shown in view 375 in FIG. 37 a.
- FIG. 38 shows a view 380 of a cellular telephone handset 381 having a slot 383 , mating to receive a memory card 382
- view 380 a shows the card 382 installed with the handset 381
- the memory card 382 may include sensitive, private, confidential, or information that needs to be stored in as encrypted.
- the card 382 may be a subscriber identity module or Subscriber Identification Module (SIM) that stores in a non-volatile memory the International Mobile Subscriber Identity (IMSI) and the related key used to identify and authenticate the subscriber on mobile telephony devices (such as mobile phones and computers).
- SIM Subscriber Identity
- a SIM card may be in accordance with ISO/IEC 7810—Identification cards standard.
- the memory card 382 may further store a Personal Identification Number (PIN), which is a secret alpha-numeric password shared between a user and a system that can be used to authenticate the user to the system.
- PIN Personal Identification Number
- the user is required to provide a non-confidential user identifier or token (the user ID) and a confidential PIN to gain access to the system.
- the system looks up the PIN based upon the user ID and compares the looked-up PIN with the received PIN. The user is granted access only when the number entered matches with the number stored in the system.
- FIG. 39 a showing in view 390 an adapter 391 , which correspond to an adapter or a scrambler described herein.
- the adapter 391 is shaped to fit into the slot 383 similar to the memory card 382 , as shown in view 390 a . Further, the adapter 391 provides a slot capable of receiving the memory card 382 , as shown in view 395 in FIG. 39 a .
- View 395 a in FIG. 39 a shows the adapter 391 (with the inserted memory card 382 ) inserted in slot 383 of the cellular handset 381 .
- View 400 in FIG. 40 shows an HDD 401 and an adapter 402 shaped as plug-in PC card, mating to be inserted into the slot 403 of HDD 401 .
- the adapter 402 installed in HDD 401 is shown in view 400 a .
- information is stored encrypted in the HDD 401 .
- the adapter 402 is removed from the HDD 401 , the stored information cannot be read, and thus is secured.
- the adapter 410 is shaped as a plug-in unit based on a PCB and components mounted thereon, and using an edge card connector 411 .
- the adapter 410 may correspond to the address scrambler 191 shown in FIG. 19 or to the data scrambler 211 shown in FIG. 21 , where the scrambling is based on swapping, re-arranging or otherwise changing the bus connections.
- the scrambling may be implemented using the miniature rotary switches 412 a - h shown as part of the adapter 410 .
- the rotary switches 412 a - h shown are each operated by mechanical rotation of the shaft by a human user, and has a single pole and 8 positions or states, selected upon the shaft position.
- rotary switch 412 a center may be connected to A 7 address line 176 a shown in FIG. 19 , and may be connected to any of the A 7 182 a to A 0 182 h lines connected to the memory 171 .
- the rotary switch 412 b center may be connected to A 6 address line 176 b
- the rotary switch 412 c center may be connected to A 5 address line 176 c
- the rotary switch 412 d center may be connected to A 4 address line 176 d
- the rotary switch 412 e center may be connected to A 3 address line 176 d
- the rotary switch 412 f center may be connected to A 2 address line 176 f
- the rotary switch 412 g center may be connected to A 1 address line 176 g
- the rotary switch 412 h center may be connected to A 0 address line 176 h .
- Each of the switches 412 a - h may connect to one of the lines 182 a - h connecting to the memory 171 , thus implementing a unique, user selected, scrambling scheme.
- View 415 in FIG. 41 a shows the adapter 410 connected (and mechanically attached) to a motherboard 413 .
- FIG. 42 shows a non-limiting example where the miniature rotary switches 412 a - h implementing a scrambler (data or address) are mounted as part of a motherboard 420 .
- Adapters may be implemented, manufactured or otherwise provided as a set containing multiple units. Preferably, all the units in such a set share the same scrambling scheme (or any other encryption method), such that any encryption (such as scrambling) via one of the units in the set, may be decrypted (such as descrambled) via any other one of the other units in the set.
- FIG. 43 shows a view 430 of a pair of USB adapters 431 a and 431 b . Each of these adapters may correspond to the USB adapter 352 shown in FIG. 35 above.
- the USB adapters 431 a and 431 b in the set are mechanically attached, via a surface having a perforation line 432 , making the mechanical attachment easily breakable along the perforation line 432 by applying reasonable human force.
- View 430 a shows the USB adapters 431 a and 431 b physically separated, such that each unit may be used with a different and distant computer.
- view 440 in FIG. 44 shows a set of 4 SIM adapters 441 a , 441 b , 441 c and 441 d , mechanically attached to each other, detachable by using the breakable perforation lines 442 a , 442 b and 442 c .
- Each of the SIM adapters 441 a , 441 b , 441 c and 441 d may correspond to the adapter 391 shown in FIG. 39 above.
- View 440 a shows the adapters 441 a , 441 b , 441 c and 441 d detached from each other, after breaking along the respective perforated lines.
- DRM Digital Rights Management
- DRM refers to access control technologies used to limit the use of digital content and devices.
- DRM is typically used by hardware manufacturers, publishers, copyright holders and others for protecting the copyrights (or other rights) of data circulated via the Internet or other via other digital media, by enabling secure distribution or usage and/or disabling illegal distribution or usage of the data.
- a DRM mechanism protects intellectual property by either encrypting the data so that it can only be accessed by authorized users or marking the content with a digital watermark or similar method, so that the content may not be freely distributed.
- the arrangements, methods and systems described herein may be used as an alternative or in addition to other DRM mechanisms.
- the adapter described above is used for the purpose of copy protection or authentication.
- a software file (which may be a program, data or both) in the form of scrambled (or otherwise encrypted) data may be distributed in various forms, such as downloaded via the Internet or from a server, as an optical disk (e.g., DVD-ROM), residing in a storage USB adapter, or stored in any type of memory.
- the software cannot be deciphered without the use of the appropriate adapter, suitable to the specific scrambling scheme used for the specific copy of the software.
- a suitable adapter 352 need to be used in order to properly access or use the data in the adapter 342 .
- scrambling may be equally applied to any digital data communication.
- a message to be sent (such as packet payload) is converted using scrambling.
- the message may be segmented into groups of equal length of bits such as 8 bits (bytes), 10 bits, 11 bits or any other length.
- Each group is then converted to another group of bits, according to a one-to-one mapping scheme known to the sender and to the receiver.
- the receiver applies the inverse mapping scheme to reconstruct the original message.
- each direction may use the same, similar, or different scrambling scheme.
- FIG. 45 shows in arrangement 450 3 memories 171 a , 171 b and 171 b , respectively connected via buses 262 b , 262 c and 262 d , similar to FIGS. 25-27 above.
- the memories may be included in the same physical device or in the same enclosure, such as different sectors in an HDD, or may preferably be distinct physical entities, such as 3 HDDs. Further, the memories may be the same type or using the same type of medium, or each memory may be of different type, such that memory 171 a may be an HDD, while memory 171 b may be a Flash-based memory, and memory 171 c may be an optical drive.
- the buses may be of the same type, of similar types, or of different types.
- the memories 171 a , 171 b and 171 c are respectively connected via adapters 226 a , 226 b and 226 c .
- Each such adapter 226 corresponds to the adapters described above.
- the adapters may be of the same type and may use the same scheme. Alternatively, the adapters may be of different types (such as address and data scramblers), or use the same, similar, or different scrambling schemes.
- the memories 171 a , 171 b and 171 c are connected (via the respective buses and adapters) to a splitter/combiner block 451 , via the respective buses 262 e , 262 f , and 262 g , which be of the same type, of similar types, or of different types.
- Each of the adapters and memories may use any one of the powering schemes described above, or any combination thereof.
- the splitter/combiner 451 may be powered by any one of the power schemes described above, or any combination thereof.
- part or all of the adapters and the splitter/combiner 451 may be housed together or separately, and may further be integrated with each other, integrated with any of the memories or with the processor 163 .
- no adapters 226 are used, and the memories 171 are connected via their respective buses directly to the splitter/combiner 451 . While exampled in FIG. 45 with 3 memories, any number of memories may be equally used.
- the information to be stored is received in the splitter/combiner 451 , for example from processor 163 via bus 262 a .
- the splitter/combiner 451 splits the information into information portions, and then the portions are written in one or more of the memories 171 according to a splitting scheme.
- the splitter/combiner 451 combine the information from the memories 171 , using a combining scheme which is the inverse of the splitting scheme.
- the splitting and combining are transparent to the processor 163 , and are performed autonomously (without the intervention of processor 163 ) by the splitter/combiner 451 .
- the information is stored in memories 171 as partitioned, encrypted, scrambled, or any combination thereof.
- all memories need to be accessed, as well as the splitter/combiner 451 (or the splitting or combining schemes).
- An attacker having access to the content of one or more of the memories may not be able to eligible access part or all of the information stored.
- An attacker having access to all memories may need the splitter/combiner 451 or information about the splitting scheme in order to eligibly reconstruct the stored information.
- the splitting of the information to be stored between the memories may be overlapping or non-overlapping.
- each portion of the information to be stored is stored in only one of the memories.
- the information to be stored e.g., a file
- the splitter/combiner 451 may split the information such that part ‘A’ is stored in memory 171 a , part ‘B’ is stored in memory 171 b , and part ‘C’ is stored in memory 171 c .
- each portion of the information to be stored is stored in one or more of the memories.
- the splitter/combiner 451 may split the information such that the parts ‘A’ and ‘B’ are stored in memory 171 a , parts ‘B’ and ‘C’ are stored in memory 171 b , and parts ‘C’ and ‘A’ are stored in memory 171 c .
- the full information may be restored from the remaining memories.
- splitting schemes may be used, and information stored using a specific splitter/combiner 451 implementing a specific splitting scheme, need to be read using a mating combining scheme, or by using the same splitter/combiner 451 used for the splitting.
- the techniques described above regarding the scrambling schemes or slicing schemes equally apply to splitting schemes.
- the splitting of the splitter/combiner 451 may use address space splitting, where the address space ‘seen’ by the processor 163 is translated to various addresses (locations) in the memories 171 , based on an address mapping.
- the mapping is sequentially based, where sequential addresses of the processor 163 are translated to sequential addresses in the memories 171 .
- processor related address ‘0’ will be translated to address ‘0’ of memory 171 a
- processor related address ‘1’ will be translated to address ‘0’ of memory 171 b
- processor related address ‘2’ will be translated to address ‘0’ of memory 171 c
- processor related address ‘3’ will be translated to address ‘1’ of memory 171 a
- processor related address ‘4’ will be translated to address ‘1’ of memory 171 b
- so forth processor related address ‘0’ will be translated to address ‘0’ of memory 171 a
- processor related address ‘1’ will be translated to address ‘0’ of memory 171 b
- processor related address ‘2’ will be translated to address ‘0’ of memory 171 c
- processor related address ‘3’ will be translated to address ‘1’ of memory 171 a
- processor related address ‘4’ will be translated to address ‘1’ of memory 171 b
- so forth so forth.
- sequential group mapping may be used, where processor related address group ‘0’ to ‘9’ will be translated to address group ‘0’ to ‘9’ of memory 171 a , processor related address group ‘0’ to ‘19’ will be translated to address group ‘0’ to ‘9’ of memory 171 b , processor related address group ‘20’ to ‘29’ will be translated to address group ‘0’ to ‘9’ of memory 171 c , processor related address group ‘30’ to ‘39’ will be translated to address group ‘10’ to ‘19’ of memory 171 a , processor related address group ‘40’ to ‘49’ will be translated to address group ‘10’ to ‘19’ of memory 171 b , and so forth.
- a non-sequential address mapping is used, which may be based on a table or logic implemented by the splitter/combiner 451 .
- the processor related address group ‘0’ to ‘8’ may be mapped according to arbitrarily one specific non-overlapping splitting scheme to the first 3 addresses of each of the memories 171 addresses ‘0’ to ‘2’ as follows: Processor related address ‘0’ will be translated to address ‘2’ of memory 171 c , processor related address ‘1’ will be translated to address ‘0’ of memory 171 b , processor related address ‘2’ will be translated to address ‘1’ of memory 171 a , processor related address ‘3’ will be translated to address ‘2’ of memory 171 b , processor related address ‘4’ will be translated to address ‘1’ of memory 171 c , processor related address ‘5’ will be translated to address ‘2’ of memory 171 a , processor related address ‘6’ will be translated to address ‘0’ of memory 171 c , processor related address ‘7’
- next 9 processor related addresses (‘9’ to ‘17’) will be similarly allocated to the address ‘3’ to ‘5’ of the memories 171 .
- groups having 9 addresses any size of groups may be equally used.
- a group of 300 addresses may be used as split into three groups of 100 addresses, each allocated to 100 addresses in the 3 memories 171 . Larger group size makes it harder for an attacker to reconstruct the information without knowledge of the splitting scheme or having the splitter/combiner itself.
- the splitting of the splitter/combiner 451 may use data word splitting, where the data word to be written into a memory is split into parts, where each part is stored in one or more of the memories, according to a splitting scheme.
- the splitting may be non-overlapping, where each part is stored in a single memory, or may be overlapping, where a part is stored in two (or more) memories.
- the data word splitting may be used in addition to the address space splitting.
- FIG. 46 An example of a data word splitting is shown in arrangement 465 shown in FIG. 46 , which may be based on FIG. 22 above.
- Three memories 171 a , 171 b , and 171 c are used, respectively connecting via the data buses 202 a , 202 b and 202 c .
- the memories 171 are connected to the data bus 202 of the data scrambler 201 via the splitter/combiner 461 , implementing a specific data word splitting scheme.
- the splitter/combiner 461 connects D 7 of bus 202 to line D 1 of memory 171 a , line D 6 of bus 202 to line D 7 of memory 171 c , line D 5 of bus 202 to line D 1 of memory 171 b , line D 4 of bus 202 to line D 6 of memory 171 a , line D 3 of bus 202 to line D 4 of memory 171 b , line D 2 of bus 202 to line D 0 of memory 171 c , line D 1 of bus 202 to line D 7 of memory 171 b , and line D 0 of bus 202 to line D 5 of memory 171 c .
- Random data may be used in storage locations not actually used for storing the actual data, in order to further the security of the data stored in the memories 171 .
- Such an example of arrangement 465 is shown in FIG. 46 a , where the random number generator 219 (which may be part of, or integrated with, the splitter/combiner 461 ) outputs are connected to data lines D7 and D2 of memory 171 a , and to D5 and D2 of memory 171 b . Similarly, all or part of the lines not connected to carry real data may be connected to the random number generator 219 .
- Discussions herein utilizing terms such as, for example, “processing,” “computing,” “calculating,” “determining,” “establishing”, “analyzing”, “checking”, or the like, may refer to operation(s) and/or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulate and/or transform data represented as physical (e.g., electronic) quantities within the computer's registers and/or memories into other data similarly represented as physical quantities within the computer's registers and/or memories or other information storage medium that may store instructions to perform operations and/or processes.
- the word “comprise” and variations of that word such as “comprises” and “comprising”, means “including, but not limited to . . . ”, and is not intended to exclude other additives, components, integers or steps.
- the word “couple’ and variations of that word such as “coupling”, “coupled” and “couplable” refers to an electrical connection (such as a copper wire or soldered connection), a logical connection (such as through logical devices of a semiconductor device), a virtual connection (such as through randomly assigned memory locations of a memory device) or any other suitable direct or indirect connections, for example for allowing for the transfer of power, signal or data.
- the terms “plurality” and “a plurality” as used herein includes, for example, “multiple” or “two or more”. For example, “a plurality of items” includes two or more items.
- the arrangements and methods described herein may be implemented using hardware, software or a combination of both.
- software integration or any other reference to the integration of two programs or processes herein refers to software components (e.g. programs, modules, functions, processes etc.) that are (directly or via another component) combined, working or functioning together or form a whole, commonly for sharing a common purpose or set of objectives.
- Such software integration can take the form of sharing the same program code, exchanging data, being managed by the same manager program, executed by the same processor, stored on the same medium, sharing the same GUI or other user interface, sharing peripheral hardware (such as a monitor, printer, keyboard and memory), sharing data or a database, or being part of a single package.
- hardware integration refers to hardware components that are (directly or via another component) combined, working or functioning together or form a whole, commonly for sharing a common purpose or set of objectives.
- Such hardware integration can take the form of sharing the same power source (or power supply) or sharing other resources, exchanging data or control (e.g. by communicating), being managed by the same manager, physically connected or attached, sharing peripheral hardware connection (such as a monitor, printer, keyboard and memory), being part of a single package or mounted in a single enclosure (or any other physical collocating), sharing a communication port, or used or controlled with the same software or hardware.
- integration herein refers (as applicable) to a software integration, a hardware integration or a combination.
- the term “message” is used generically herein to describe at least an ordered series of characters or bits intended to convey a package of information (or a portion thereof), which may be transferred from one point to another, such as by using communication via one or more communication mechanisms or by transferring among processes.
- the term “port” refers to a place of access to a device, electrical circuit or network, where energy or signal may be supplied or withdrawn.
- interface of a networked device refers to a physical interface, a logical interface (e.g., a portion of a physical interface or sometimes referred to in industry as a sub-interface—for example, such as, but not limited to a particular VLAN associated with a network interface), and/or a virtual interface (e.g., traffic grouped together based on some characteristic—for example, such as, but not limited to, a tunnel interface).
- a logical interface e.g., a portion of a physical interface or sometimes referred to in industry as a sub-interface—for example, such as, but not limited to a particular VLAN associated with a network interface
- a virtual interface e.g., traffic grouped together based on some characteristic—for example, such as, but not limited to, a tunnel interface.
- Integrated Circuit shall include any type of integrated device of any function where the electronic circuit is manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material (e.g., silicon), whether single or multiple die, or small or large scale of integration, and irrespective of process or base materials (including, without limitation Si, SiGe, CMOS and GAs) including without limitation applications specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital processors (e.g., DSPs, CISC microprocessors, or RISC processors), so-called “system-on-a-chip” (SoC) devices, memory (e.g., DRAM, SRAM, flash memory, ROM), mixed-signal devices, and analog ICs.
- semiconductor material e.g., silicon
- ASICs application specific integrated circuits
- FPGAs field programmable gate arrays
- DSPs digital signal processors
- CISC microprocessors CISC microprocessors
- RISC so-called
- the circuits in an IC are typically contained in a silicon piece or in a semiconductor wafer, and commonly packaged as a unit.
- the solid-state circuits commonly include interconnected active and passive devices, diffused into a single silicon chip.
- Integrated circuits can be classified into analog, digital and mixed signal (both analog and digital on the same chip).
- Digital integrated circuits commonly contain many of logic gates, flip-flops, multiplexers, and other circuits in a few square millimeters. The small size of these circuits allows high speed, low power dissipation, and reduced manufacturing cost compared with board-level integration.
- MCM multi-chip module
- MCM multi-chip module
- ⁇ is used generically herein to describe any number of computers, including, but not limited to personal computers, embedded processing elements and systems, control logic, ASICs, chips, workstations, mainframes, etc.
- Any computer herein may consist of, or be part of, a handheld computer, including any portable computer which is small enough to be held and operated while holding in one hand or fit into a pocket.
- a device also referred to as a mobile device, typically has a display screen with touch input and/or miniature keyboard.
- Non-limiting examples of such devices include Digital Still Camera (DSC), Digital video Camera (DVC or digital camcorder), Personal Digital Assistant (PDA), and mobile phones and smartphones.
- the mobile devices may combine video, audio and advanced communication capabilities, such as PAN and WLAN.
- a mobile phone also known as a cellular phone, cell phone and a hand phone
- the smartphones may combine the functions of a personal digital assistant (PDA), and may serve as portable media players and camera phones with high-resolution touch-screens, web browsers that can access, and properly display, standard web pages rather than just mobile-optimized sites, GPS navigation, Wi-Fi and mobile broadband access.
- PDA personal digital assistant
- the smartphones may support a wide variety of other services such as text messaging, MMS, email, Internet access, short-range wireless communications (infrared, Bluetooth), business applications, gaming and photography.
- Some embodiments may be used in conjunction with various devices and systems, for example, a Personal Computer (PC), a desktop computer, a mobile computer, a laptop computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, a Personal Digital Assistant (PDA) device, a cellular handset, a handheld PDA device, an on-board device, an off-board device, a hybrid device, a vehicular device, a non-vehicular device, a mobile or portable device, a non-mobile or non-portable device, a wireless communication station, a wireless communication device, a wireless Access Point (AP), a wired or wireless router, a wired or wireless modem, a wired or wireless network, a Local Area Network (LAN), a Wireless LAN (WLAN), a Metropolitan Area Network (MAN), a Wireless MAN (WMAN), a Wide Area Network (WAN), a Wireless WAN (WWAN), a Personal Area Network (PAN), a Wireless PAN (WPAN
- program As used herein, the terms “program”, “programmable”, and “computer program” are meant to include any sequence or human or machine cognizable steps which perform a function. Such programs are not inherently related to any particular computer or other apparatus, and may be rendered in virtually any programming language or environment including, for example, C/C++, Fortran, COBOL, PASCAL, assembly language, markup languages (e.g., HTML, SGML, XML, VoXML), and the likes, as well as object-oriented environments such as the Common Object Request Broker Architecture (CORBA), JavaTM (including J2ME, Java Beans, etc.) and the like, as well as in firmware or other implementations.
- program modules include routines, programs, objects, components, data structures, etc., that performs particular tasks or implement particular abstract data types.
- task and “process” are used generically herein to describe any type of running programs, including, but not limited to a computer process, task, thread, executing application, operating system, user process, device driver, native code, machine or other language, etc., and can be interactive and/or non-interactive, executing locally and/or remotely, executing in foreground and/or background, executing in the user and/or operating system address spaces, a routine of a library and/or standalone application, and is not limited to any particular memory partitioning technique.
- Network As used herein, the terms “network”, “communication link” and “communications mechanism” are used generically herein to describe one or more networks, communications media or communications systems, including, but not limited to, the Internet, private or public telephone, cellular, wireless, satellite, cable, data networks.
- Data networks include, but not limited to, Metropolitan Area Networks (MANs), Wide Area Networks (WANs), Local Area Networks (LANs), Personal Area networks (PANs), WLANs (Wireless LANs), Internet, internets, NGN, intranets, Hybrid Fiber Coax (HFC) networks, satellite networks, and telco networks.
- Communication media include, but not limited to, a cable, an electrical connection, a bus, and internal communications mechanisms such as message passing, interprocess communications, and shared memory.
- Such networks or portions thereof may utilize any one or more different topologies (e.g., ring, bus, star, loop, etc.), transmission media (e.g., wired/RF cable, RF wireless, millimeter wave, optical, etc.) and/or communications or networking protocols (e.g., SONET, DOCSIS, IEEE Std. 8023, ATM, X25, Frame Relay, 3GPP, 3GPP2, WAP, SIP, UDP, FTP, RTP/RTCP, H.323, etc.).
- topologies e.g., ring, bus, star, loop, etc.
- transmission media e.g., wired/RF cable, RF wireless, millimeter wave, optical, etc.
- communications or networking protocols e.g., SONET, DOCSIS, IEEE Std. 8023, ATM, X25, Frame Relay, 3GPP, 3GPP2, WAP, SIP, UDP, FTP, RTP/RTCP, H.323, etc.
- the described method can equally be used to protect the data flow between a pair of gateways or any other networking-associated devices (network-to-network), or between a network device (e.g., security gateway) and a host (network-to-host).
- Some embodiments may be used in conjunction with one or more types of wireless communication signals and/or systems, for example, Radio Frequency (RF), Infra Red (IR), Frequency-Division Multiplexing (FDM), Orthogonal FDM (OFDM), Time-Division Multiplexing (TDM), Time-Division Multiple Access (TDMA), Extended TDMA (E-TDMA), General Packet Radio Service (GPRS), extended GPRS, Code-Division Multiple Access (CDMA), Wideband CDMA (WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA, Multi-Carrier Modulation (MDM), Discrete Multi-Tone (DMT), Bluetooth (RTM), Global Positioning System (GPS), Wi-Fi, Wi-Max, ZigBeeTM, Ultra-Wideband (UWB), Global System for Mobile communication (GSM), 2G, 2.5G, 3G, 3.5G, Enhanced Data rates for GSM Evolution (EDGE), or the like.
- RF Radio Frequency
- a wireless communication may be based on wireless technologies that are described in Chapter 20: “Wireless Technologies” of the publication number 1-587005-001-3 by Cisco Systems, Inc. (July 1999) titled: “Internetworking Technologies Handbook”, which is incorporated in its entirety for all purposes as if fully set forth herein.
- a computing or networking device preferably includes a network interface or an adapter, such as communication interface 141 . While the preferred embodiment contemplates that communications will be exchanged primarily via Ethernet, Internet or a broadband network, other means of exchanging communications are also contemplated.
- a wireless access interface that receives and processes information exchanged via a wireless communications medium, such as, cellular communication technology, satellite communication technology, Bluetooth technology, WAP (Wireless Access Point) technology, or similar means of wireless communication can be utilized by the general purpose computing devices.
- a wireless communications medium such as, cellular communication technology, satellite communication technology, Bluetooth technology, WAP (Wireless Access Point) technology, or similar means of wireless communication can be utilized by the general purpose computing devices.
- a wireless communications medium such as, cellular communication technology, satellite communication technology, Bluetooth technology, WAP (Wireless Access Point) technology, or similar means of wireless communication can be utilized by the general purpose computing devices.
- Such an interface commonly includes a connector for wired or conductive medium, an antenna for over-the-air radio-frequency
- a transceiver (transmitter/receiver set) is coupled to the connector or antenna, for transmitting to, and receiving from, the communication medium.
- a transmitter may be capable of operating at serial bit rates above 1 Gigabit/second, and a wired transmitter commonly use differential signaling and low voltages for faster switching, such as MOS Current Mode Logic (MCML) based technology.
- the transmitter may use pre-emphasis or de-emphasis to shape the transmitted signal to compensate for expected losses and distortion.
- the line-code may employ self-clocking and other encoding schemes, and control information is transmitted along with the data for error detection, alignment, clock correction, and channel bonding. Some popular encoding schemes are 8B/10B, 64B/66B, and 64B/67B.
- a receiver is commonly designed to mate with the corresponding transmitter and to recover the data and clock from the received signals, and commonly use equalization, and may further include impedance matching termination.
- PLLs Phase Locked Loops
- the receiver commonly decodes the received signal, and detects encoding-based errors. The byte boundaries and other alignment schemes may also be performed by the receivers.
- a transceiver may include a modem (MOdulator—DEModulator).
- Any networking protocol may be utilized for exchanging information between the partners (e.g., the source computer, the ultimate destination computer and the relay servers) within the network (such as the Internet).
- the partners e.g., the source computer, the ultimate destination computer and the relay servers
- communications can be performed using TCP/IP.
- HTTP and HTTPS are utilized on top of TCP/IP as the message transport envelope. These two protocols are able to deal with firewall technology better than other message management techniques.
- partners may choose to use a message-queuing system instead of HTTP and HTTPS if greater communications reliability is needed.
- a non-limiting example of a message queuing system is IBM's MQ-Series or the Microsoft Message Queue (MSMQ).
- MSMQ Microsoft Message Queue
- the system described hereinafter is suited for both HTTP/HTTPS, message-queuing systems, and other communications transport protocol technologies.
- the physical network may embrace and utilize multiple communication protocol technologies.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This disclosure relates generally to an apparatus and method for improved networking or storage security using an address or data scrambling, partitioning and routing in digital data networks, and more particularly, to a secured digital data when it is IP-based communicated over the Internet or when it is stored in a memory.
- The Internet is a global system of interconnected computer networks that use the standard Internet Protocol Suite (TCP/IP), including Transmission Control Protocol (TCP) and the Internet Protocol (IP), to serve billions of users worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic and optical networking technologies. The Internet carries a vast range of information resources and services, such as the interlinked hypertext documents on the World Wide Web (WWW) and the infrastructure to support electronic mail. The Internet backbone refers to the principal data routes between large, strategically interconnected networks and core routers in the Internet. These data routes are hosted by commercial, government, academic and other high-capacity network centers, the Internet exchange points and network access points that interchange Internet traffic between the countries, continents and across the oceans of the world. Traffic interchange between Internet service providers (often
Tier 1 networks) participating in the Internet backbone exchange traffic by privately negotiated interconnection agreements, primarily governed by the principle of settlement-free peering. - The Internet, and consequently its backbone networks, does not rely on central control or coordinating facilities, nor do they implement any global network policies. The resilience of the Internet results from its principal architectural features, most notably the idea of placing as few network states and control functions as possible in the network elements, but instead relying on the endpoints of communication to handle most of the processing to ensure data integrity, reliability and authentication. In addition, the high degree of redundancy of today's network links and sophisticated real-time routing protocols provides alternative paths of communications for load balancing and congestion avoidance.
- The Internet Protocol (IP) is the principal communications protocol used for relaying datagrams (packets) across an internetwork using the Internet Protocol Suite. Responsible for routing packets across network boundaries, it is the primary protocol that establishes the Internet. IP is the primary protocol in the Internet Layer of the Internet Protocol Suite and has the task of delivering datagrams from the source host to the destination host based on their addresses. For this purpose, IP defines addressing methods and structures for datagram encapsulation. Internet Protocol Version 4 (IPv4) is the dominant protocol of the Internet. IPv4 is described in Internet Engineering Task Force (IETF) Request for Comments (RFC) 791 and RFC 1349, and the successor, Internet Protocol Version 6 (IPv6), is in active and growing deployment worldwide. IPv4 uses 32-bit addresses (providing 4 billion, or 4.3×109 addresses), while IPv6 uses 128-bit addresses (providing 340 undecillion or 34×1038 addresses), as described in RFC 2460.
- The Internet Protocol is responsible for addressing hosts and routing datagrams (packets) from a source host to the destination host across one or more IP networks. For this purpose the Internet Protocol defines an addressing system that has two functions. Addresses identify hosts and provide a logical location service. Each packet is tagged with a header that contains the meta-data for the purpose of delivery. This process of tagging is also called encapsulation. IP is a connectionless protocol for use in a packet-switched Link Layer network, and does not need circuit setup prior to transmission. The aspects of delivery guaranteeing, proper sequencing, avoidance of duplicate delivery, and data integrity are addressed by an upper transport layer protocol (e.g., TCP—Transmission Control Protocol and UDP—User Datagram Protocol).
- The design principles of the Internet protocols assume that the network infrastructure is inherently unreliable at any single network element or transmission medium and that it is dynamic in terms of availability of links and nodes. No central monitoring or performance measurement facility exists that tracks or maintains the state of the entire network. For the benefit of reducing network complexity, end-to-end principle is used, where the intelligence in the network is purposely mostly located at the end nodes of each data transmission. Routers in the transmission path simply forward packets to the next known local gateway, matching the routing prefix for the destination address.
- The main aspects of the IP technology are IP addressing and routing. Addressing refers to how end hosts become assigned IP addresses and how sub-networks of IP host addresses are divided and grouped together. IP routing is performed by all hosts, but most importantly by internetwork routers, which typically use either Interior Gateway Protocols (IGPs) or External Gateway Protocols (EGPs) to help make IP datagram forwarding decisions across IP connected networks. Core routers serving in the Internet backbone commonly use the Border Gateway Protocol (BGP) as per RFC 4098 or Multi-Protocol Label Switching (MPLS). Other prior art publications relating to Internet related protocols and routing include the following chapters of the publication number 1-587005-001-3 by Cisco Systems, Inc. (July 1999) titled: “Internetworking Technologies Handbook”, which are all incorporated in their entirety for all purposes as if fully set forth herein: Chapter 5: “Routing Basics” (pages 5-1 to 5-10), Chapter 30: “Internet Protocols” (pages 30-1 to 30-16), Chapter 32: “IPv6” (pages 32-1 to 32-6), Chapter 45: “OSI Routing” (pages 45-1 to 45-8) and Chapter 51: “Security” (pages 51-1 to 51-12), as well as IBM Corporation, International Technical Support Organization Redbook Documents No. GG24-4756-00 titled: “Local area Network Concepts and Products: LAN Operation Systems and management”, 1st Edition May 1996, Redbook Document No. GG24-4338-00 titled: “Introduction to Networking Technologies”, 1 Edition April 1994, Redbook Document No. GG24-2580-01 “IP Network Design Guide”, 2nd Edition June 1999, and Redbook Document No. GG24-3376-07 “TCP/IP Tutorial and Technical Overview”, ISBN 0738494682 8th Edition December 2006, which are incorporated in their entirety for all purposes as if fully set forth herein.
- A Wireless Mesh Network (WMN) and Wireless Distribution Systems (WDS) are known in the art to be a communication network made up of clients, mesh routers and gateways organized in a mesh topology and connected using radio. Such wireless networks may be based on DSR as the routing protocol. WMNs are standardized in IEEE 802.11s and described in a slide-show by W. Steven Conner, Intel Corp. et al. titled: “IEEE 802.11s Tutorial” presented at the IEEE 802 Plenary, Dallas on Nov. 13, 2006, in a slide-show by Eugen Borcoci of University Politehnica Bucharest, titled: “Wireless Mesh Networks Technologies: Architectures, Protocols, Resource Management and Applications”, presented in INFOWARE Conference on Aug. 22-29th 2009 in Cannes, France, and in an IEEE Communication magazine paper by Joseph D. Camp and Edward W. Knightly of Electrical and Computer Engineering, Rice University, Houston, Tex., USA, titled: “The IEEE 802.11s Extended Service Set Mesh Networking Standard”, which are incorporated in their entirety for all purposes as if fully set forth herein. The arrangement described herein can be equally applied to such wireless networks, wherein two clients exchange information using different paths by using mesh routers as intermediate and relay servers. Commonly in wireless networks, the routing is based on MAC addresses. Hence, the above discussion relating to IP addresses applies in such networks to using the MAC addresses for identifying the client originating the message, the mesh routers (or gateways) serving as the relay servers, and the client serving as the ultimate destination computer.
- A schematic view of a prior art internet-based
network 10 is shown inFIG. 1a . The Internet or the Internet backbone is shown as the dashed line defining thecloud 11. Various endpoint devices (‘hosts’) such asservers laptops desktop computers Internet backbone 11 contains routers 15 a-j interconnected by various bi-directional packet-based communication links 16 a-n. Thecommunication link 16 a connectsrouters communication link 16 b connectsrouters communication link 16 c connectsrouters communication link 16 d connectsrouters communication link 16 e connectsrouters communication link 16 f connectsrouters communication link 16 g connectsrouters communication link 16 h connectsrouters communication link 16 i connectsrouters communication link 16 k connectsrouters routers communication link 16 m connectsrouters communication link 16 n connectsrouters communication link 17 a connectslaptop 12 b to the Internet 11 viarouter 15 a,communication link 17 b connectsserver 14 a torouter 15 a,communication link 17 c connectsdesktop computer 13 c torouter 15 d,communication link 17 d connectsserver 14 d torouter 15 i,communication link 17 e connectscomputer 13 b torouter 15 i,communication link 17 f connectsserver 14 b torouter 15 j,communication link 17 g connectslaptop 12 a torouter 15 j,communication link 17 h connectsserver 14 c torouter 15 g, andcommunication link 17 i connectscomputer 13 a torouter 15 c. - An overview of an IP-based
packet 18 is shown inFIG. 1b . The packet may be generally segmented into theIP data 19 b to be carried as payload, and theIP header 19 f. TheIP header 19 f contains the IP address of the source as SourceIP Address field 19 d and the DestinationIP Address field 19 c. In most cases, theIP header 19 f and thepayload 19 b are further encapsulated by adding aFrame Header 19 e andFrame Footer 19 a used by higher layer protocols. - The Internet is a packet switching network, wherein packets are forwarded from their source to their ultimate destination via the routers. In one non-limiting example shown as
system 20 inFIG. 2 , whenlaptop 12 a (‘source’) wishes to send information todesktop computer 13 c (‘destination’), a packet is formed at the source, which includes the destination IP address and the source IP address. The packets are routed in the Internet based on various policies and routing algorithms. For example, the packet is first sent to therouter 15 j overlink 17 g, as schematically shown by thedashed line path 21 a. Fromrouter 15 j the packet is forwarded torouter 15 h overlink 16 a (designated aspath 21 b), which in turn sends the packet torouter 15 g overlink 16 d (path 21 c). Fromrouter 15 g the packet is forwarded torouter 15 c overlink 16 e (designated aspath 21 d), which in turn sends the packet torouter 15 f overlink 16 f (path 21 e). Fromrouter 15 f the packet is forwarded torouter 15 e overlink 16 k (designated aspath 21 f), which in turn sends the packet torouter 15 d overlink 16 i (path 21 g). The packet is then terminated at thedestination 13 c vialink 17 c (path 21 h). - The Internet structure is using a client-server model, among other models. The terms ‘server’ or ‘server computer’ relates herein to a device or computer (or a series of computers) connected to the Internet and is used for providing specific facilities or services to other computers or other devices (referred to in this context as ‘clients’) connected to the Internet. A server is commonly a host that has an IP address and executes a ‘server program’, and typically operating as a socket listener. Many servers have dedicated functionality such as web server, Domain Name System (DNS) server (described in RFC 1034 and RFC 1035), Dynamic Host Configuration Protocol (DHCP) server (described in RFC 2131 and RFC 3315), mail server, File Transfer Protocol (FTP) server and database server. Similarly, the term ‘client’ herein refers to a program or to a device or a computer (or a series of computers) executing this program, which accesses a server over the Internet for a service or a resource. Clients commonly initiate connections that a server may accept. For example, web browsers are clients that connect to web servers for retrieving web pages, and email clients connect to mail storage servers for retrieving mails.
- A network routing is commonly used in the Internet, where the knowledge of the network layout is in the network routing devices, which accordingly determine where to forward the packet. In such a case, the source needs only to specify the destination IP address. Source routing is a method described in RFC 1940 that can be used to specify the route that a packet should take through the network. In source routing the path through the Internet is set by the source. When the sender determines the exact network route the packets must take, ‘strict’ source routing is used. An alternate common form of source routing is called Loose Source Record Route (LSRR). When using the LSRR the sender provides one or more hops (such as an intermediate router) that the packet must go through. The Dynamic Source Routing (DSR) is a simple and efficient on-demand routing protocol designed for use in multi-hop wireless ad hoc network of mobile devices, such as wireless mesh networks. The DSR is described in RFC 4728 and is designed to restrict the bandwidth consumed by control packets in ad hoc wireless networks by eliminating the periodic table-update messages that are required in the table-driven approach.
- The Internet is a public network, based on known network protocols such as TCP/IP, which specifications are widely and published. Hence, a third party (‘attacker’) may hijack, intercept, alter, tamper with and interpret any clear text packets transferred over the Internet rendering the transport of messages across the Internet non-secured. Methods of attacking data carried over the Internet include using network packet sniffers, IP spoofing, man-in-the-middle attacks and more. As such, there is a need to secure sensitive or confidential information transported over the Internet, such as bank account details and credit card numbers exchanged during a commercial transaction, medical records, criminal records, vehicle driver information, loan applications, stock trading, voter registration and other sensitive information carried over the Internet. Commonly, such data is not carried as clear text but is rather encrypted, so that the data is transferred over the Internet as transformed (or scrambled) data forming unreadable formats (typically by using a mathematical algorithm).
- Encryption based mechanisms are commonly end-to-end processes involving only the sender and the receiver, where the sender encrypts the plain text message by transforming it using an algorithm, making it unreadable to anyone, except the receiver which possesses special knowledge. The data is then sent to the receiver over a network, and when received the special knowledge enables the receiver to reverse the process (decrypt) to make the information readable as in the original message. The encryption process commonly involves computing resources such as processing power, storage space and requires time for executing the encryption/decryption algorithm, which may delay the delivery of the message.
- Transport Layer Security (TLS) and its predecessor Secure Sockets Layer (SSL) are non-limiting examples of end-to-end cryptographic protocols, providing secured communication above the OSI Transport Layer, using keyed message authentication code and symmetric cryptography. In client/server applications, the TLS client and server negotiate a stateful connection by using a handshake procedure, during which various parameters are agreed upon, allowing a communication in a way designed to prevent eavesdropping and tampering. The TLS 1.2 is defined in RFC 5246, and several versions of the protocol are in widespread use in applications such as web browsing, electronic mail, Internet faxing, instant messaging and Voice-over-IP (VoIP). In application design, TLS is usually implemented on top of any of the Transport Layer protocols, encapsulating the application-specific protocols such as HTTP, FTP, SMTP, NNTP, and XMPP. Historically, it has been used primarily with reliable transport protocols such as the Transmission Control Protocol (TCP). However, it has also been implemented with datagram-oriented transport protocols, such as the User Datagram Protocol (UDP) and the Datagram Congestion Control Protocol (DCCP), a usage which has been standardized independently using the term Datagram Transport Layer Security (DTLS). A prominent use of TLS is for securing World Wide Web traffic carried by HTTP to form HTTPS. Notable applications are electronic commerce and asset management. Increasingly, the Simple Mail Transfer Protocol (SMTP) is also protected by TLS (RFC 3207). These applications use public key certificates to verify the identity of endpoints. Another Layer 4 (Transport Layer) and upper layers encryption-based communication protocols include SSH (Secure Shell) and SSL (Secure Socket Layer).
- Layer 3 (Network Layer) and lower layer encryption based protocols include IPsec, L2TP (Layer 2 Tunneling Protocol) over IPsec, and Ethernet over IPsec. The IPsec is a protocol suite for securing IP communication by encrypting and authenticating each IP packet of a communication session. The IPsec standard is currently based on RFC 4301 and RFC 4309, and was originally described in RFCs 1825-1829, which are now obsolete, and uses the Security Parameter Index (SPI, as per RFC 2401) as an identification tag added to the header while using IPsec for tunneling the IP traffic. An IPsec overview is provided in Cisco Systems, Inc. document entitled: “An Introduction to IP Security (IPSec) Encryption”, which is incorporated in its entirety for all purposes as if fully set forth herein.
- Two common approaches to cryptography are found in U.S. Pat. No. 3,962,539 to Ehrsam et al., entitled “Product Block Cipher System for Data Security”, and in U.S. Pat. No. 4,405,829 to Rivest et al., entitled “Cryptographic Communications System and Method”, which are incorporated in their entirety for all purposes as if fully set forth herein. The Ehrsam patent discloses what is commonly known as the Data Encryption Standard (DES), while the Rivest patent discloses what is commonly known as the RSA algorithm (which stands for Rivest, Shamir and Adleman who first publicly described it), which is widely used in electronic commerce protocols. The RSA involves using a public key and a private key. DES is based upon secret-key cryptography, also referred to as symmetric cryptography, and relies upon a 56-bit key for encryption. In this form of cryptography, the sender and receiver of cipher text both possess identical secret keys, which are, in an ideal world, completely unique and unknown to the world outside of the sender and receiver. By encoding plain text into cipher text using the secret key, the sender may send the cipher text to the receiver using any available public or otherwise insecure communication system. The receiver, having received the cipher text, decrypts it using the secret key to arrive at the plain text.
- An example of a method for Internet security is disclosed in U.S. Pat. No. 6,070,154 to Tavor et al. entitled: “Internet Credit Card Security” which is incorporated in its entirety for all purposes as if fully set forth herein. The patent discloses a method for transmitting credit card numbers in a secured manner via the Internet, wherein the security is provided by transmitting the credit card number in a plurality of different transmissions, each transmission containing part of the credit card number. Another method is disclosed in U.S. Pat. No. 6,012,144 to Pickett entitled: “Transaction Security Method and Apparatus” which is incorporated in its entirety for all purposes as if fully set forth herein, suggesting to use two or more non-secured networks to ensure transaction security. U.S. Pat. No. 7,774,592 to Ishikawa et al. entitled: “Encryption Communication Method”, which is incorporated in its entirety for all purposes as if fully set forth herein, discloses a secure communication system, which executes, on an open network to which many and unspecified nodes are connected, encryption-based communication between nodes belonging to a specific group.
- There is a growing widespread use of the Internet for carrying multimedia, such as video and audio. Various audio services include Internet-radio stations and VoIP (Voice-over-IP). Video services over the Internet include video conferencing and IPTV (IP Television). In most cases, the multimedia service is a real-time (or near real-time) application, and thus sensitive to delays over the Internet. In particular, two-way services such a VoIP or other telephony services and video-conferencing are delay sensitive. In some cases, the delays induced by the encryption process, as well as the hardware/software costs associated with the encryption, render encryption as non-practical. Therefore, it is not easy to secure enough capacity of the Internet accessible by users to endure real-time communication applications such as Internet games, chatting, VoIP, MoIP (Multimedia-over-IP), etc. In this case, there may be a data loss, delay or severe jitter in the course of communication due to the property of an Internet protocol, thereby causing inappropriate real-time video communication. The following chapters of the publication number 1-587005-001-3 by Cisco Systems, Inc. (July 1999) titled: “Internetworking Technologies Handbook”, relate to multimedia carried over the Internet, and are all incorporated in their entirety for all purposes as if fully set forth herein: Chapter 18: “Multiservice Access Technologies” (pages 18-1 to 18-10), and Chapter 19: “Voice/Data Integration Technologies” (pages 19-1 to 19-30).
- VoIP systems in widespread use today fall into three groups: systems using the ITU-T H.323 protocol, systems using the SIP protocol, and systems that use proprietary protocols. H.323 is a standard for teleconferencing that was developed by the International Telecommunications Union (ITU). It supports full multimedia audio, video and data transmission between groups of two or more participants, and it is designed to support large networks. H.323 is network-independent: it can be used over networks using transport protocols other than TCP/IP. H.323 is still a very important protocol, but it has fallen out of use for consumer VoIP products due to the fact that it is difficult to make it work through firewalls that are designed to protect computers running many different applications. It is a system best suited to large organizations that possess the technical skills to overcome these problems.
- SIP (for Session Initiation Protocol) is an Internet Engineering Task Force (IETF) standard signaling protocol for teleconferencing, telephony, presence and event notification and instant messaging. It provides a mechanism for setting up and managing connections, but not for transporting the audio or video data. It is probably now the most widely used protocol for managing Internet telephony. Like the IETF protocols, SIP is defined in a number of RFCs, principally RFC 3261. A SIP-based VoIP implementation may send the encoded voice data over the network in a number of ways. Most implementations use Real-time Transport Protocol (RTP), which is defined in RFC 3550. Both SIP and RTP are implemented on UDP, which, as a connectionless protocol, can cause difficulties with certain types of routers and firewalls. Usable SIP phones therefore also need to use STUN (for Simple Traversal of UDP over NAT), a protocol defined in RFC 3489 that allows a client behind a NAT router to find out its external IP address and the type of NAT device.
- Onion routing (OR) is a technique for anonymous communication over the Internet or any other computer network. Messages are repeatedly encrypted and then sent through several network nodes called onion routers. Each onion router removes a layer of encryption to uncover routing instructions, and sends the message to the next router where this is repeated. This prevents these intermediary nodes from knowing the origin, destination, and contents of the message. To prevent an adversary from eavesdropping on message content, messages are encrypted between routers. The advantage of onion routing (and mix cascades in general) is that it is not necessary to trust each cooperating router; if one or more routers are compromised, anonymous communication can still be achieved. This is because each router in an OR network accepts messages, re-encrypts them, and transmits to another onion router. The idea of onion routing (OR) is to protect the privacy of the sender and the recipient of a message, while also providing protection for message content as it traverses a network. Onion routing accomplishes this according to the principle of Chaum mix cascades: messages travel from source to destination via a sequence of proxies (“onion routers”), which re-route messages in an unpredictable path.
- Routing onions are data structures used to create paths through which many messages can be transmitted. To create an onion, the router at the head of a transmission selects a number of onion routers at random and generates a message for each one, providing it with symmetric keys for decrypting messages, and instructing it which router will be next in the path. Each of these messages, and the messages intended for subsequent routers, is encrypted with the corresponding router's public key. This provides a layered structure, in which it is necessary to decrypt all outer layers of the onion in order to reach an inner layer. Onion routing is described in U.S. Pat. No. 6,266,704 to Reed et al. entitled: “Onion Routing Network for Securely Moving data through Communication Networks”, which is incorporated in its entirety for all purposes as if fully set forth herein. Other prior art publications relating to onion routing are the publications “Probabilistic Analysis of Onion Routing in a Black-box Model [Extended Abstract]” presented in WPES'07: Proceedings of the 2007 ACM Workshop on Privacy in Electronic Society, “A Model of Onion Routing with Provable Anonymity” presented in Proceedings of Financial Cryptography and Data Security '07, and “A Model of Onion Routing with Provable Anonymity”, presented in the Financial Cryptography and Data Security, 11th International Conference, all by Feigenbaum J., Johnson J. and Syverson P., publications “Improving Efficiency and Simplicity of Tor circuit establishment and hidden services”, Proceedings of the 2007 Privacy Enhancing Technologies Symposium, Springer-Verlag, LNCS 4776, publication “Untraceable electronic mail, return addresses, and digital pseudonyms” by Chaum D., in Communications of the ACM 24(2), February 1981, and “Valet Services: Improving Hidden Servers with a Personal Touch”, Proceedings of the 2006 Privacy Enhancing Technologies Workshop, Springer-Verlag, LNCS 4285, both by Overlier L., Syverson P., publications “Making Anonymous Communication”, Generation 2 Onion Routing briefing slides, Center for High Assurance Computer Systems, naval Research Laboratory, Presented at the National Science Foundation, Jun. 8, 2004 by Syverson P., publications “Onion Routing Access Configurations, “DISCEX 2000: Proceedings of the DARPA Information Survivability Conference and Exposition”, Volume I Hilton Head, S.C., IEEE CS Press, January 2000, “Onion Routing for Anonymous and Private Internet Connections,” Communications of the ACM, vol. 42, num. 2, February 1999, and “Anonymous Connections and Onion Routing,” IEEE Journal on Selected Areas in Communication Special Issue on Copyright and Privacy Protection, 1998, all by Syverson P., Reed M. G., Goldschlag M., publication “Towards an Analysis of Onion Routing Security, and “Workshop on Design Issues in Anonymity and Unobservability Berkeley, Calif., July 2000 by Syverson P., Tsudik G., Reed M. G., and Landwehr C, which are incorporated in their entirety for all purposes as if fully set forth herein.
- ‘Tor’ is an anonymizing network based on the principles of ‘onion routing’, and involves a system which selects a randomly chosen route for each connection, via the routers present in the Tor network. The last server appears herein as an ‘exit node’ and sends the data to the final recipient after leaving the Tor cloud. At this point, it is no longer possible for an observer constantly watching the ‘exit node’ to determine who the sender of the message was. This concept and its components are known from the ‘Tor’ project in http://www.torproject.org. The Tor network concept is described in U.S. Patent Application Publication 2010/0002882 to Rieger et al., in the publication “Tor The Second-Generation Onion Router”, in Proceedings of the 13th USENIX Security Symposium August 2004, by Dingledine R., Mathewson N., Syverson P., in publication “Tor Protocol specification” by Dingledine R. and Mathewson N., in publication “Tor Directory Protocol, Version 3”, and publication “TC: A Tor Control Protocol” downloaded from the Tor web-site, which are incorporated in their entirety for all purposes as if fully set forth herein.
- In computer architecture, such as the in the hosts or the servers above, a bus is a subsystem commonly consisting of a conductor, or group of conductors, that are used for carrying signals, data or power, and typically serves as a common connection between the circuits, devices or other components. A bus can be used for transferring data between components within a computer system, between computers or between a computer and peripheral devices. Many physical or logical arrangements may be used to implement a bus, such as parallel (wherein each data word is carried in parallel on multiple electrical conductors or wires), serial (such as bit-serial connections), or a combination of both, and the bus may be wired in various topologies such as multi-drop (electrical parallel) or daisy-chain. Further, a bus may be implemented as a communication network employing hubs or switches. A bus may be internal, commonly implemented as a passive back-plane or motherboard conductors, or external, the latter is commonly a cable, and may use passive or active circuitry. A bus may further carry a power signal (commonly low-voltage DC power signal, e.g., 3.3 Volts DC (VDC), 5 VDC, 12 VDC and 48 VDC). In a parallel bus, the number of lines or wires, or the number of bits carried in parallel, is referred to as the bus width.
- A non-limiting schematic example of a
computer system 160 employing memory-mapped I/O (Input/Output) scheme is shown inFIG. 16 . A processor 163 (which may serve as a CPU—Central Processing Unit) is connected to amemory 162 and I/O circuitry 161 viabus 164. Thebus 164 comprises three buses, anaddress bus 166, adata 167 andcontrol bus 165. Theaddress bus 166 carries the address specified by theprocessor 163, relating to the physical or virtual location in thememory 162, or physical or virtual specific I/O component, while the value to be read or written is sent on thedata bus 167. Thecontrol bus 165 carries control information between theprocessor 163 and other devices, such as commands from theprocessor 163 or signals that report to theprocessor 163 the status of various devices such asmemory 162 and I/O 161, and also for controlling and supporting theaddress bus 166 and thedata bus 167. As a non-limiting example, one line of the control bus may be used to indicate whether theCPU 163 is currently reading from, or writing to, the memory 162 (R/W line). Theaddress bus 166 and thedata bus 167 may be carried separately over dedicated conductors (non-multiplexed bus), or alternatively may be carried over the same conductors using time-multiplexing. - A schematic non-limiting example of detailed coupling of a
memory component 171 to addressbus 166,data bus 167 andcontrol bus 165 is shown insub-system 170 shown inFIG. 17 . Thememory 171 is capable of storing 256 bytes (256*8), and thus addressable by 8 address lines A7 (MSB—Most Significant Bit), A6, A5, A4, A3, A2, A1 and A0(LSB—Least Significant Bit), connected via A7line 176 a, A6line 176 b, A5line 176 c, A4line 176 d, A3line 176 e, A2line 176 f, A1line 176 g and A0line 176 h, collectively referred to asaddress bus 176 carrying the address word. The processor specifies an address over theaddress bus 166, and theaddress bus 176 may be coupled to receive the address from theaddress bus 166 via anaddress logic circuit 174. Theaddress logic circuit 174 may be a simple buffer or line-driver, or may be a latch or register that are commonly used in a multiplexed bus environment. Similarly, data values to be written to, or read from, thememory 171 are coupled to or from thedata 167 viadata logic 175, may be a simple bi-directional buffer or line-driver, or may be a bi-directional latch or register which are commonly used in a multiplexed bus environment. The 8 bits data word is designated as D7 (MSB), D6, D5, D4, D3, D2, D1 and D0 (LSB), connected via D7 line 177 a, D6 line 177 b, D5 line 177 c, D4 line 177 d, D3 line 177 e, D2 line 177 f, D1 line 177 g and D0 line 177 h, collectively referred to asdata bus 177 carrying the address word. Thecontrol block 172 connects to thecontrol bus 165 and may also be coupled to theaddress bus 166 and thedata bus 167, and produce the signal R/W 173 which connects to thememory 171 to indicate a Write cycle (R/W=Logic ‘0’) or a Read cycle (R/W=Logic ‘1’). A non-limiting example of a processor may be 80186 or 80188 available from Intel Corporation located at Santa-Clara, Calif., USA. The 80186 and its detailed memory connections are described in the manual “80186/80188 High-Integration 16-Bit Microprocessors” by Intel Corporation, which is incorporated in its entirety for all purposes as if fully set forth herein. Another non-limiting example of a processor may be MC68360 available from Motorola Inc. located at. - Schaumburg, Ill., USA. The MC68360 and its detailed memory connections are described in the manual “MC68360 Quad Integrated Communications Controller—User's Manual” by Motorola, Inc., which is incorporated in its entirety for all purposes as if fully set forth herein. While exampled above regarding an address bus having 8-bit width, other widths of address buses are commonly used, such as the 16-bit, 32-bit and 64-bit. Similarly, while exampled above regarding a data bus having 8-bit width, other widths of data buses are commonly used, such as 16-bit, 32-bit and 64-bit width.
- There is a requirement for protecting data stored in a memory from authorized use. The terms “memory” and “storage” are used interchangeably herein and refer to any physical component that can retain or store information (that can be later retrieved) such as digital data on a temporary or permanent basis, typically for use in a computer or other digital electronic device. A memory can store computer programs or any other sequence of instructions, or data such as files, text, numbers, audio and video, as well as any other form of information represented as a string of bits or bytes. The physical means of storing information may be electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical. A memory may be in a form of Integrated Circuit (IC, a.k.a. chip or microchip). Alternatively or in addition, the memory may be in the form of a packaged functional assembly of electronic components (module). Such module may be based on a PCB (Printed Circuit Board) such as PC Card according to Personal Computer Memory Card International Association (PCMCIA) PCMCIA 2.0 standard, or a Single In-line Memory Module (SIMM) (or DIMM) which is standardized under the JEDEC JESD-21C standard. Further, a memory may be in the form of a separately rigidly enclosed box such as hard-disk drive.
- Semiconductor memory may be based on Silicon-On-Insulator (SOI) technology, where a layered silicon-insulator-silicon substrate is used in place of conventional silicon substrates in semiconductor manufacturing, especially microelectronics, to reduce parasitic device capacitance and thereby improving performance. SOI-based devices differ from conventional silicon-built devices in that the silicon junction is above an electrical insulator, typically silicon dioxide or sapphire (these types of devices are called silicon on sapphire, or SOS, and are less common). SOI-Based memories include Twin Transistor RAM (ITRAM) and Zero-capacitor RAM (Z-RAM).
- A memory may be a volatile memory, where a continuous power is required to maintain the stored information such as RAM (Random Access Memory), including DRAM (Dynamic RAM) or SRAM (Static RAM), or alternatively be a non-volatile memory which does not require a maintained power supply, such as Flash memory, EPROM, EEPROM and ROM (Read-Only Memory). Volatile memories are commonly used where long-term storage is required, while non-volatile memories are more suitable where fast memory access is required. Volatile memory may be dynamic, where the stored information is required to be periodically refreshed (such as re-read and then re-written) such as DRAM, or alternatively may be static, where there is no need to refresh as long as power is applied, such as RAM. In some cases, a small battery is connected to a low-power consuming volatile memory, allowing its use as a non-volatile memory.
- A memory may be read/write (or mutable storage) memory where data may be overwritten more than once and typically at any time, such as RAM and Hard Disk Drive (HDD). Alternatively, a memory may be an immutable storage where the information is retained after being written once.
- Once written, the information can only be read and typically cannot be modified, sometimes referred to as Write Once Read Many (WORM). The data may be written at the time of manufacture of the memory, such as mask-programmable ROM (Read Only Memory) where he data is written into the memory a part of the IC fabrication, CD-ROM (CD—Compact Disc) and DVD-ROM (DVD—Digital Versatile Disk, or Digital Video Disk). Alternately, the data may be once written to the “write once storage” at some point after manufacture, such as Programmable Read-Only Memory (PROM) or CD-R (Compact Disc-Recordable).
- A memory may be accessed using “random access” scheme where any location in the storage can be accessed at any moment in typically the same time, such as RAM, ROM or most semiconductor-based memories. Alternatively, a memory may be of “sequential access” type, where the pieces of information are gathered or stored in a serial order, and therefore the time to access a particular piece of information or a particular address depends upon which piece of information was last accessed, such as magnetic tape based storage. Common memory devices are location-addressable, where each individually accessible unit of data in storage is selected using its numerical memory address. Alternatively, a memory may be file-addressable, where the information is divided into files of variable length, and a file is selected by using a directory or file name (typically a human readable name), or may be content-addressable, where each accessible unit of information is selected based on the basis of (or part of) the stored content. File addressability and content addressability commonly involves additional software (firmware) or hardware or both.
- Various storage technologies are used for the medium (or media) that actually holds the data in the memory. Commonly in use are semiconductor, magnetic, and optical mediums.
- Semiconductor based medium is based on transistors, capacitors or other electronic components in an IC, such as RAM, ROM and Solid-State Drives (SSDs). A currently popular non-volatile semiconductor technology is based on a flash memory, and can be electrically erased and reprogrammed. The flash memory is based on NOR or NAND based single-level cells (SLC) or multi-level cells (MLC), made from floating-gate transistors. Non-limiting examples of applications of flash memory include personal and laptop computers, PDAs, digital audio players (MP3 players), digital cameras, mobile phones, synthesizers, video games consoles, scientific instrumentation, industrial robotics and medical electronics. The magnetic storage uses different types of magnetization on a magnetically or ferromagnetic coated surface as a medium for storing the information. The information is accessed by read/write heads or other transducers. Non-limiting examples of magnetic-based memory are Floppy-disk, magnetic tape data storage and HDD. In optical storage typically an optical disc is used, that stores information in deformities on the surface of a circular disc, and the information is read by illuminating the surface with a laser diode and observing the reflection. The deformities may be permanent (read only media), formed once (write once media) or reversible (recordable or read/write media). Non-limiting examples of read-only storage, commonly used for mass distribution of digital information such as music, audio, video or computer programs, include CD-ROM, BD-ROM (BD—Blu-ray Disc) and DVD-ROM. Non-limiting examples of write once storage are CD-R, DVD-R, DVD+R and BD-R, and non-limiting examples of recordable storage are CD-RW (Compact Disc-ReWritable), DVD-RW, DVD+RW, DVD-RAM and BD-RE (Blu-ray Disc Recordable Erasable). Another non-limiting example is magneto-optical disc storage, where the magnetic state of a ferromagnetic surface stores the information, which can be read optically. 3D optical data storage is an optical data storage, in which information can be recorded and/or read, with three-dimensional resolution.
- A storage medium may be removable, designed to be easily removed from, and easily installed or inserted into, the computer by a person, typically without the need for any tool and without the need to power off the computer or the associated drive. Such capability allows for archiving, for transporting data between computers, and for buying and selling software. The medium may be read using a reader or player that reads the data from the medium, or may be written by a burner or writer, or may be used for writing and reading by a writer/reader commonly referred to as a drive. Commonly in the case of magnetic or optical based mediums, the medium has the form factor of a disk, which is typically a round plate on which the data is encoded, respectively known as magnetic disc and optical disk. The machine that is associated with reading data from and writing data onto a disk is known as a disk drive. Disk drives may be internal (integrated within the computer enclosure) or may be external (housed in a separate box that connects to the computer). Floppy disks, that can be read from or written on by a floppy drive, are a non-limiting example of removable magnetic storage medium, and CD-RW (Compact Disc-ReWritable) is a non-limiting example of a removable optical disk. A non-volatile removable semiconductor based storage medium is commonly in use and is referred to as a memory card. A memory card is a small storage device, commonly based on flash memory, and can be read by a suitable card reader.
- A memory may be accessed via a parallel connection or bus (wherein each data word is carried in parallel on multiple electrical conductors or wires), such as PATA, PCMCIA or EISA, or via serial bus (such as bit-serial connections) such as USB or Ethernet based on IEEE802.3 standard, or a combination of both. The connection may further be wired in various topologies such as multi-drop (electrical parallel), point-to-point, or daisy-chain. A memory may be powered via a dedicated port or connector, or may be powered via a power signal carried over the bus, such as SATA or USB.
- A memory may be provided according to a standard, defining its form factor (such as its physical size and shape) and electrical connections (such as power and data interface). A standard-based memory may be easily inserted to, or removed from, a suitable corresponding slot (a.k.a. expansion slots) of a computer or other digital device. In one non-limiting example, a memory card using a PC Card form factor according to PCMCIA 2.0 (or JEIDA 4.1) is used, suitable for mounting into a corresponding PCMCIA-compatible slot, supporting 16 or 32-bit width interface, and connected via 68 pins connectors. Similarly, CardBus according to PCMCIA 5.0 may be used.
- In one non-limiting example, the memory is in the form of SD (Secure Digital) Card, based on standard by SD Card Association (SDA), which is commonly used in many small portable devices such as digital video camcorders, digital cameras, audio players and mobile phones. Other types of memory cards may be equally used, such as CompactFlash (CF), MiniSD card, MicroSD Card, and xD-Picture Card.
- In another non-limiting example, a memory may be provided as a USB drive (such as USB Flash drive), which is a portable enclosed card that plugs into a computer USB port and communicates with a USB host. Such flash-based memory drives are commonly referred to as “thumb drives”, “jump drives” and “memory sticks”. Such USB mass storage devices and others are described in “Chapter 1: Mass Storage basics”, downloaded October 2011 from: http://www.lvr.com/files/usb_mass_storage_chapter_1.pdf, which is incorporated in its entirety for all purposes as if fully set forth herein. In another non-limiting example, the memory is designed to fit into a drive bay in a computer enclosure. Commonly such drive bays are standard-sized, and used to store disk drives. The drives may be usually secured with screws or using a tool-less fasteners. A current popular standard is the 3.5 inches (3.5″) bays, which dimensions are specified in SFF standard specifications SFF-8300 and SFF-8301, which were incorporated into the EIA (Electronic Industries Association) standard EIA-470.
- Traditionally, computer related storage was categorized to main memory, secondary and tertiary storages, having different latency (access time), capacity, and size. The main memory (or primary memory or internal memory) referred to the memory that was directly accessible by the CPU, and typically stored the program to be executed by the processor. The secondary storage (or external memory or auxiliary storage) referred to a memory which was not directly accessible to the CPU and thus required input/output channels, commonly offering larger storage capacity than the main memory. The tertiary storage involved mass storage media, commonly associated with a dismount removable media, used for archiving rarely accessed information. The latency of accessing a particular location is typically nanoseconds for primary storage, milliseconds for secondary storage, and seconds for tertiary storage. The capacity of a memory is commonly featured in bytes (B), where the prefix ‘K’ is used to denote kilo=210=10241=1024, the prefix ‘M’ is used to denote mega=220=10242=1,048,576, the prefix ‘G’ is used to denote giga=230=10243=1,073,741,824, and the prefix T is used to denote tera=240=10244=1,099,511,627,776.
- A memory may be Direct-attached Storage (DAS), where the memory is directly connected to a host, computer, server, or workstation, commonly without a network in between. Common examples involve a number of hard disk drives (HDD) connected to a processor or a computer through a Host Bus Adapter (HBA). Commonly serial and point-to-point connections are used, such as SATA, eSATA, SCSI, SAS and Fibre Channel. Alternatively, a memory can be part of a Network-attached Storage (NAS), wherein a self-contained file level storage (typically arranged as a server) is connected to a network, providing data sharing to other devices (such as heterogeneous clients), commonly via a network device such as a hub, switch or router. NAS is specialized for its task by its hardware, software, or both, and thus provides faster data access, easier administration, and simple configuration. NAS is typically associated with a LAN, and commonly provides an Ethernet interface based on IEEE802.3 standard may be used such as 10/100BaseT, 1000BaseTfrX (gigabit Ethernet), 10 gigabit Ethernet (10GE or 10GbE or 10 GigE per IEEE Std 8023ae-2002as standard), 40 Gigabit Ethernet (40GbE), or 100 Gigabit Ethernet (100 GbE as per Ethernet standard IEEE P802.3ba). In another alternative, a memory may be part of a Storage Area Network (SAN), which is a high-speed (commonly dedicated) network (or sub-network) for sharing storage devices, such as disk arrays, tape libraries and optical jukeboxes. The SAN typically allows multiple computers or servers to access multiple storage devices using a network such as WAN or LAN.
- SAN often utilizes a Fibre Channel fabric topology, commonly made up of a number of Fibre Channel switches.
- Molecular memory uses molecular species as the data storage element. The molecular component can be described as a molecular switch, and may perform this function by any of several mechanisms, including charge storage, photochromism, or changes in capacitance. In a molecular memory device, each individual molecule contains a bit of data, leading to massive data capacity.
- Blu-ray Disc (official abbreviation BD) is an optical disc storage medium designed to supersede the DVD format, where blue laser is used to read the disc, allowing information to be stored at a greater density than is possible with the longer-wavelength red laser used for DVDs. The disc diameter is 120 mm and the disc thickness is 1.2 mm of plastic optical disc, the same size as DVDs and CDs. Blu-ray Discs contain 25 GB (23.31 GiB) per layer, with dual layer discs (50 GB) being the norm for feature-length video discs. Triple layer discs (100 GB) and quadruple layers (128 GB) are available for BD-XL Blu-ray re-writer drives. The Blu-ray technology and its uses are described in the White Paper “Blu-ray Disc Format, 4. Key Technologies”, by Blu-ray Disc Founders, August 2004, in the brochure “Blu-ray Technology—DISCover the infinite storage media”, by DISC Archiving Systems B.V., 2010, and in Whitepaper “Sustainable Archival Storage—“The Benefits of Optical Archiving””, by DISC Archiving Systems B.V., downloaded from www.disc-group.com, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- Today, Hard Disk Drives (HDD) are used as secondary storage in general purpose computers, such as desktop personal computers and laptops. An HDD is a non-volatile, random access digital data storage device, featuring rotating rigid platters on a motor-driven spindle within a protective enclosure. The enclosure may be internal to the computer system enclosure or external. Data is magnetically read from, and written to, the platter by read/write heads that floats on a film or air above the platters. The HDDs are typically interfaced using high-speed interfaces, commonly of serial type. Common HDDs structure, characteristics, operation, form factors and interfacing is described in “Hard-Disk Basics” compiled from PCGUIDE.COM by Mehedi Hasan, which is incorporated in its entirety for all purposes as if fully set forth herein. Most SSDs include a controller that incorporates the electronics that bridge the NAND memory components to the host computer. The controller is an embedded processor that executes firmware-level code and is one of the most important factors of SSD performance. Functions performed by the controller include Error correction (ECC), Wear leveling, Bad block mapping, Read scrubbing and read disturb management, Read and write caching, and Garbage collection. Information about SSD technology, marketing and applications are provided in Martin B., Dell “DELL Solid State Disk (SSD) Drive—Storage Solutions for Select Poweredge Server”, May 2009, in Janukowicz J., Reisel D., White-Paper “MLC Solid State Drives: Accelerating the Adoption of SSDs”, IDC #213730, September 2008, and in Dufrasne B., Blum K, Dubberke U., IBM Corp. Redbooks Redpaper “DS8000: Introducing Solid State Drives”, 2009, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- The connection of peripherals and memories to a processor may be via a bus. A communication link (such as Ethernet, or any other LAN, PAN or WAN communication link) may also be regarded as bus herein. A bus may be an internal bus (a.k.a. local bus), primarily designed to connect a processor or CPU to peripherals inside a computer system enclosure, such as connecting components over the motherboard or backplane. Alternatively, a bus may be an external bus, primarily intended for connecting the processor or the motherboard to devices and peripherals external to the computer system enclosure. Some buses may be doubly used as internal or as external buses. A bus may be of parallel type, where each word (address or data) is carried in parallel over multiple electrical conductors or wires; or alternatively, may be bit-serial, where bits are carried sequentially, such as one bit at a time. A bus may support multiple serial links or lanes, aggregated or bonded for higher bit-rate transport. Non-limiting examples of internal parallel buses include ISA (Industry Standard architecture); EISA (Extended ISA); NuBus (IEEE 1196); PATA—Parallel ATA (Advanced Technology Attachment) variants such as IDE, EIDE, ATAPI, SBus (IEEE 1496), VESA Local Bus (VLB), PCI and PC/104 variants (PC/104, PC/104 Plus, PC/104 Express). Non-limiting examples of internal serial buses include PCIe (PCI Express), Serial ATA (SATA), SMBus, and Serial Peripheral Bus (SPI) bus. Non-limiting examples of external parallel buses include HIPPI (HIgh Performance Parallel Interface), IEEE-1284 (‘Centronix’), IEEE-488 (a.k.a. GPIB—General Purpose Interface Bus) and PC Card/PCMCIA. Non-limiting examples of external serial buses include USB (Universal Serial Bus), eSATA and IEEE 1394 (a.k.a. FireWire). Non-limiting examples of buses that can be internal or external are Futurebus, InfiniBand, SCSI (Small Computer System Interface), and SAS (Serial Attached SCSI). The bus medium may be based on electrical conductors, commonly copper wires based cable (may be arranged as twisted-pairs) or a fiber-optic cable. The bus topology may use point-to-point, multi-drop (electrical parallel) and daisy-chain, and may further be based on hubs or switches. A point-to-point bus may be full-duplex, providing simultaneous, two-way transmission (and sometimes independent) in both directions, or alternatively a bus may be half-duplex, where the transmission can be in either direction, but only in one direction at a time. Buses are further commonly characterized by their throughput (data bit-rate), signaling rate, medium length, connectors and medium types, latency, scalability, quality-of-service, devices per connection or channel, and supported bus-width. A configuration of a bus for a specific environment may be automatic (hardware or software based, or both), or may involve user or installer activities such as software settings or jumpers. Recent buses are self-repairable, where spare connection (net) is provided which is used in the event of malfunction in a connection. Some buses support hot-plugging (sometimes known as hot swapping), where a connection or a replacement can be made, without significant interruption to the system or without the need to shut-off any power. A well-known example of this functionality is the Universal Serial Bus (USB) that allows users to add or remove peripheral components such as a mouse, keyboard, or printer. A bus may be defined to carry a power signal, either in separate dedicated cable (using separate and dedicated connectors), or commonly over the same cable carrying the digital data (using the same connector). Typically dedicated wires in the cable are used for carrying a low-level DC power levels, such as 33 VDC, 5 VDC, 12 VDC and any combination thereof. A bus may support master/slave configuration, where one connected node is typically a bus master (e.g., the processor or the processor-side), and other nodes (or node) are bus slaves. A slave may not connect or transmit to the bus until given permission by the bus master. A bus timing, strobing, synchronization, or clocking information may be carried as a separate signal (e.g. clock signal) over a dedicated channel, such as separate and dedicated wired in a cable, or alternatively may use embedded clocking (a.k.a. self-clocking), where the timing information is encoded with the data signal, commonly used in line codes such as Manchester code, where the clock information occurs at the transition points. Any bus or connection herein may use proprietary specifications, or preferably be similar to, based on, substantially or fully compliant with an industry standard (or any variant thereof) such as those referred to as PCI Express, SAS, SATA, SCSI, PATA, InfiniBand, USB, PCI, PCI-X, AGP, Thunderbolt, IEEE 1394, FireWire and Fibre Channel.
- Fibre Channel, or FC, is a gigabit-speed network technology primarily used for storage networking, and has recently become the standard connection type for storage area networks (SAN) in enterprise storage. Fibre Channel is standardized in the T11 Technical Committee of the InterNational Committee for Information Technology Standards (INCITS), an American National Standards Institute (ANSI) accredited standards committee. Fibre Channel signaling can run on both twisted pair copper wire and fiber-optic cables. Fibre Channel Protocol (FCP) is a transport protocol (similar to TCP used in IP networks) that predominantly transports SCSI commands over Fibre Channel networks. There are three major Fibre Channel topologies, describing how a number of ports are connected together: Point-to-Point (FC-P2P), where two devices are connected directly to each other; Arbitrated loop (FC-AL) where all devices are in a loop or ring (similar to token ring networking); and Switched fabric (FC-SW), where devices or loops of devices are connected to Fibre Channel switches (similar conceptually to modern Ethernet implementations). Some Fibre Channel devices support SFP transceiver, mainly with LC fiber connector, while some 1GFC devices used GBIC transceiver, mainly with SC fiber connector. Fibre Channel is further described in “Fibre Channel Solutions Guide” by FCIA—Fibre Channel Industry Association (www.fibrechannel.org, September 2010), “Technology Brief—Fibre Channel Basics”, by Apple Computer, Inc. (May 2006), and Weimer T. of Unylogix, “Fibre Channel Fundamentals” (available for download from the Internet October 2011), which are all incorporated in their entirety for all purposes as if fully set forth herein.
- InfiniBand is a switched fabric communications link used in high-performance computing and enterprise data centers. Its features include high throughput, low latency, quality of service and failover, and it is designed to be scalable. InfiniBand offers point-to-point bidirectional serial links intended for the connection of processors with high-speed peripherals such as disks. On top of the point-to-point capabilities, InfiniBand also offers multicast operations as well. It supports several signaling rates and links can be bonded together for additional throughput. The SDR serial connection's signaling rate is 2.5 gigabit per second (Gbit/s) in each direction per connection. DDR is 5 Gbit/s and QDR is 10 Gbit/s. FDR is 14.0625 Gbit/s and EDR is 25.78125 Gbit/s per lane. Lanes can be aggregated in units of 4 or 12, called 4× or 12×. A 12×QDR link therefore carries 120 Gbit/s raw, or 96 Gbit/s of useful data. As of 2009, most systems use a 4× aggregate, implying a 10 Gbit/s (SDR), 20 Gbit/s (DDR) or 40 Gbit/s (QDR) connections. InfiniBand uses a switched fabric topology, as opposed to a hierarchical switched network like traditional Ethernet architectures. Most of the network topologies are Fat-Tree (Clos), mesh or 3D-Torus. The InfiniBand technology is further described in the White Paper “Introduction to InfiniBand™”, Mellanox technologies Inc., Document Number 2003WP Rev. 1.90, in the document by Grim P. of InfiniBandrm Trade Association: “Introduction to InfiniBand™ for End Users”, 2010, and in the White Paper “An Introduction to InfiniBand—Bringing I/O up to speed” Rev. Number v1.1, by JNI Corporation, Jan. 25, 2002, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- Serial ATA (SATA or Serial Advanced Technology Attachment) is a computer bus interface for connecting host bus adapters to mass storage devices such as hard disk drives and optical drives. Serial ATA industry compatibility specifications originate from The Serial ATA International Organization (a.k.a. SATA-IO, serialata.org), and the specification defines three distinct protocol layers: physical, link, and transport. Serial ATA was designed to replace the older parallel ATA (PATA) standard (often called by the old name IDE), offering several advantages over the older interface: reduced cable size and cost (7 conductors instead of 40), native hot swapping, faster data transfer through higher signaling rates, and more efficient transfer through an (optional) I/O queuing protocol. SATA host-adapters and devices communicate via a high-speed serial cable over two pairs of conductors. In contrast, parallel ATA (PATA) used a 16-bit wide data bus with many additional support and control signals, all operating at much lower frequency. To ensure backward compatibility with legacy ATA software and applications, SATA uses the same basic ATA and ATAPI command-set as legacy ATA devices. Advanced Host Controller Interface (AHCI) is an open host controller interface published and used by Intel, which has become a de facto standard. It allows the use of the advanced features of SATA such as hotplugging and native command queuing (NCQ). If AHCI is not enabled by the motherboard and chipset, SATA controllers typically operate in “IDE emulation” mode, which does not allow features of devices to be accessed if the ATA/IDE standard does not support them. The SATA standard defines a data cable with seven conductors (3 grounds and 4 active data lines in two pairs) and 8 mm wide wafer connectors on each end. SATA cables can have lengths up to 1 meter (33 ft), and connect one motherboard socket to one hard drive. The SATA standard specifies a power connector that differs from the decades-old four-pin Molex connector found on pre-SATA devices. Like the data cable, it is wafer-based, but its wider 15-pin shape prevents accidental mis-identification and forced insertion of the wrong connector type. Standardized in 2004, eSATA (the ‘e’ standing for external) provides a variant of SATA meant for external connectivity. While it has revised electrical requirements and the connectors and cables are not identical with SATA, the protocol and logical signaling are compatible on the (internal) SATA level. SATA uses a point-to-point architecture. The physical connection between a controller and a storage device is not shared among other controllers and storage devices. SATA defines multipliers, which allows a single SATA controller to drive multiple storage devices. The multiplier performs the function of a hub; the controller and each storage device are connected to the hub. The SATA bus, protocol and applications are further described in “Serial ATA technology, Technology Brief, 4th edition”, by Hewlett-Packard Development Company, L.P., TC1108815, October 2011, in white paper “External Serial ATA”, by Silicon Image, Inc., September 2004, in Krotov I. Redpaper: “IBM System x Server Disk Drive Interface Technology”, IBM Corp. Document REDP-4791-00, Oct. 10, 2011, “Serial ATA Advanced Host Controller Interface (AHCI)”, Revision 1.0, downloaded from Intel website, October 2011, and white-paper “Serial ATA—A comparison with Ultra ATA Technology”, downloaded from www.seagate.com on October 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein. PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe, is a computer expansion card standard designed to replace the older PCI, PCI-X, and AGP bus standards. PCIe has numerous improvements over the aforementioned bus standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance-scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot plug functionality. More recent revisions of the PCIe standard support hardware I/O virtualization. The PCIe electrical interface is also used in a variety of other standards, most notably ExpressCard, a laptop expansion card interface. Format specifications are maintained and developed by the PCI-SIG (PCI Special Interest Group), a group of more than 900 companies that also maintain the Conventional PCI specifications. PCIe 3.0 is the latest standard for expansion cards that is available on mainstream personal computers. Conceptually, the PCIe bus is like a high-speed serial replacement of the older PCI/PCI-X bus an interconnect bus using shared address/data lines. A key difference between a PCIe bus and the older PCI is the bus topology. PCI uses a shared parallel bus architecture, where the PCI host and all devices share a common set of address/data/control lines. In contrast, PCIe is based on point-to-point topology, with separate serial links connecting every device to the root complex (host). Due to its shared bus topology, access to the older PCI bus is arbitrated (in the case of multiple masters), and limited to 1 master at a time, in a single direction. A PCIe bus link supports full-duplex communication between any two endpoints, with no inherent limitation on concurrent access across multiple endpoints. In terms of bus protocol, PCIe communication is encapsulated in packets. The work of packetizing and de-packetizing data and status-message traffic is handled by the transaction layer of the PCIe port (described later). Radical differences in electrical signaling and bus protocol require the use of a different mechanical form factor and expansion connectors (and thus, new motherboards and new adapter boards); PCI slots and PCIe slots are not interchangeable. The PCIe link between 2 devices can consist of anywhere from 1 to 32 lanes. In a multi-lane link, the packet data is striped across lanes, and peak data-throughput scales with the overall link width. The lane count is automatically negotiated during device initialization, and can be restricted by either endpoint. For example, a single-lane PCIe (xl) card can be inserted into a multi-lane slot (×4, ×8, etc.), and the initialization cycle auto-negotiates the highest mutually supported lane count. The link can dynamically down-configure the link to use fewer lanes, thus providing some measure of failure tolerance in the presence of bad or unreliable lanes. The PCIe standard defines slots and connectors for multiple widths: ×1, ×4, ×8, ×16, and ×32. As a point of reference, a PCI-X (133
MHz 64 bit) device and PCIe device at 4-lanes (×4), Gen1 speed have roughly the same peak transfer rate in a single-direction: 1064 MB/sec. The PCIe bus has the potential to perform better than the PCI-X bus in cases where multiple devices are transferring data communicating simultaneously, or if communication with the PCIe peripheral is bidirectional. A lane is commonly composed of a transmit pair and a receive pair, each of differential lines. Each lane is composed of 4 wires or signal paths, meaning conceptually, each lane is a full-duplex byte stream, transporting data packets in 8-bit ‘byte’ format, between the endpoints of a link, in both directions simultaneously. Physical PCIe slots may contain from one to thirty-two lanes, in powers of two (1, 2, 4, 8, 16 and 32). Lane counts are written with an x prefix (e.g., ×16 represents a sixteen-lane card or slot), with ×16 being the largest size in common use. A PCIe card fits into a slot of its physical size or larger (maximum ×16), but may not fit into a smaller PCIe slot (×16 in an ×8 slot). - Some slots use open-ended sockets to permit physically longer cards and negotiate the best available electrical connection. The number of lanes actually connected to a slot may also be less than the number supported by the physical slot size. A non-limiting example is a ×8 slot that actually only runs at ×1. These slots allow any ×1, ×2, ×4 or ×8 cards, though only running at ×1 speed. This type of socket is called a ×8 (×1 mode) slot, meaning that it physically accepts up to ×8 cards, but only runs at ×1 speed. The advantage is that it can accommodate a larger range of PCIe cards without requiring motherboard hardware to support the full transfer rate. This keeps the design and implementation costs down. The PCIe uses double-sided edge-connector, and power is provided over the same connection. PCI Express Mini Card (also known as Mini PCI Express, Mini PCIe, and Mini PCI-E) is a replacement for the Mini PCI form factor, based on PCI Express. PCI Express Mini Cards are 30×50.95 mm. There is a 52 pin edge connector, consisting of two staggered rows on a 0.8 mm pitch. Each row has 8 contacts, a gap equivalent to 4 contacts, then a further 18 contacts. A half-length card is also specified 30×26.8 mm. Cards have a thickness of 1.0 mm (excluding components). AdvancedTCA is a PCIe variant providing a complement to CompactPCI for larger applications; supports serial based backplane topologies. AMC: a complement to the AdvancedTCA specification; supports processor and I/O modules on ATCA boards (×1, ×2, ×4 or ×8 PCIe). It has the connector bracket reversed so it cannot fit in a normal PCI Express socket, but is pin compatible and may be inserted if the bracket is removed. FeaturePak is a tiny expansion card format (43×65 mm) for embedded and small form factor applications; it implements two ×1 PCIe links on a high-density connector along with USB, I2C, and up to 100 points of I/O. Thunderbolt is a variant from Intel that combines DisplayPort and PCIe protocols in a form factor compatible with Mini DisplayPort. The PCIe is further described in the tutorial “PCI Express—An Overview of the PCI Express Standard”, National Instruments, Published Aug. 13, 2009, in the White Paper “Creating a PCI Express™ Interconnect”, Intel Corporation, Downloaded October 2011, in “PHY Interface for the PCI Express™ Architecture”, Version 2.00, Intel Corporation 2007, and in Cooper S., One Stop Systems, Presentation “Utilizing PCI Express Technology”, Downloaded October 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- Serial Attached SCSI (SAS) is a computer bus based on a point-to-point serial protocol that replaces the parallel SCSI bus technology and uses the standard SCSI command set. SAS offers backwards-compatibility with second-generation SATA drives. SATA 3 Gbit/s drives may be connected to SAS backplanes, but SAS drives may not be connected to SATA backplanes. The T10 technical committee of the International Committee for Information Technology Standards (INCITS) develops and maintains the SAS protocol; the SCSI Trade Association (SCSITA) promotes the technology. SASA is based on full-duplex with link aggregation (4-ports wide at 24 Gbit/s) over 10 meters external cable, and may connect to 255 device port expanders. At the physical layer, the SAS standard defines the connectors and voltage levels. The physical characteristics of the SAS wiring and signaling are compatible with and have loosely tracked that of SATA up to the present 6 Gbit/s rate, although SAS defines more rigorous physical signaling specifications as well as a wider allowable differential voltage swing intended to support longer cabling. While SAS-1.0/SAS-1.1 adopted the physical signaling characteristics of SATA at the 1.5 Gbit/s and 3 Gbit/s rates, SAS-2.0 development of a 6 Gbit/s physical rate led the development of an equivalent SATA speed. According to the SCSI Trade Association, 12 Gbit/s is slated to follow 6 Gbit/s in a future SAS-3.0 specification.
- A typical Serial Attached SCSI system consists of an initiator, a target, a Service Delivery Subsystem and expanders: An Initiator is a device that originates device-service and task-management requests for processing by a target device and receives responses for the same requests from other target devices. Initiators may be provided as an on-board component on the motherboard (as is the case with many server-oriented motherboards) or as an add-on host bus adapter. A Target is a device containing logical units and target ports that receives device service and task management requests for processing and sends responses for the same requests to initiator devices. A target device could be a hard disk or a disk array system. A Service Delivery Subsystem is the part of an I/O system that transmits information between an initiator and a target. Typically, cables connecting an initiator and target with or without expanders and backplanes constitute a service delivery subsystem. Expanders are devices that form part of a service delivery subsystem and facilitate communication between SAS devices. Expanders facilitate the connection of multiple SAS End devices to a single initiator port. An initiator may connect directly to a target via one or more PHYs. Nearline SAS or NL-SAS drives are enterprise SATA drives with a SAS interface, head, media, and rotational speed of traditional enterprise-class SATA drives with the fully capable SAS interface typical for classic SAS drives.
- The components known as Serial Attached SCSI Expanders (SAS Expanders) facilitate communication between large numbers of SAS devices. Expanders contain two or more external expander-ports. Each expander device contains at least one SAS Management Protocol target port for management and may contain SAS devices itself. For example, an expander may include a Serial SCSI Protocol target port for access to a peripheral device. An expander is not necessary to interface a SAS initiator and target but allows a single initiator to communicate with more SAS/SATA targets. Edge expanders can do direct table routing and subtractive routing. A fanout expander can connect up to 255 sets of edge expanders, known as an edge expander device set, allowing for even more SAS devices to be addressed. The subtractive routing port of each edge expanders will be connected to the PHYs of a fanout expander. The SAS is further described in White Paper “serial Attached SCSI and Serial Compatibility”, Intel Corporation Doc. 0103/OC/EW/PP/1K—254402-001, 2002, in the Product Manual “Serial Attached SCSI (SAS) Interface Manual”, Publication Ser. No. 10/029,3071, Rev. B, Seagate Technology LLC, May 2006, and in Technology Brief, 40 edition, “Serial Attached SCSI technologies and architectures”, Hewlett-Packard Development Company, L.P., TC0000772, August 2011, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- USB (Universal Serial Bus) is an industry standard developed in the mid-1990s that defines the cables, connectors and protocols used for connection, communication and power supply between computers and electronic devices. USB was designed to standardize the connection of computer peripherals, such as keyboards, pointing devices, digital cameras, printers, portable media players, disk drives and network adapters to personal computers, both to communicate and to supply electric power. It has become commonplace on other devices, such as smartphones, PDAs and video game consoles. USB has effectively replaced a variety of earlier interfaces, such as serial and parallel ports, as well as separate power chargers for portable devices. A USB system has an asymmetric design, consisting of a host, a multitude of downstream USB ports, and multiple peripheral devices connected in a tiered-star topology. Additional USB hubs may be included in the tiers, allowing branching into a tree structure with up to five tier levels. A USB host may have multiple host controllers and each host controller may provide one or more USB ports. Up to 127 devices, including the hub devices (if present), may be connected to a single host controller. USB devices are linked in series through hubs. There always exists one hub known as the root hub, which is built into the host controller. A physical USB device may consist of several logical sub-devices that are referred to as device functions. A host assigns one and only one device address to a function.
- USB device communication is based on pipes (logical channels). A pipe is a connection from the host controller to a logical entity, found on a device, and named an endpoint. Because pipes correspond 1-to-1 to endpoints, the terms are sometimes used interchangeably. A USB device can have up to 32 endpoints: 16 into the host controller and 16 out of the host controller. The USB standard reserves one endpoint of each type, leaving a theoretical maximum of 30 for normal use.
- USB devices seldom have this many endpoints. There are two types of pipes: stream and message pipes, depending on the type of data transfer isochronous transfers, at some guaranteed data rate (often, but not necessarily, as fast as possible) but with possible data loss (e.g., real-time audio or video), interrupt transfers, relating devices that need guaranteed quick responses (bounded latency) (e.g., pointing devices and keyboards), bulk transfers, where large sporadic transfers using all remaining available bandwidth, but with no guarantees on bandwidth or latency (e.g., file transfers), and control transfers, typically used for short, simple commands to the device, and a status response, used, for example, by the bus
control pipe number 0. Endpoints are grouped into interfaces and each interface is associated with a single device function. An exception to this is endpoint zero, which is used for device configuration and which is not associated with any interface. A single device function composed of independently controlled interfaces is called a composite device. A composite device only has a single device address because the host only assigns a device address to a function. - The USB 1.x and 2.0 specifications provide a 5 V supply on a single wire from which connected USB devices may draw power. The specification provides for no more than 5.25 V and no less than 4.75 V (5 V±5%) between the positive and negative bus power lines. For USB 3.0, the voltage supplied by low-powered hub ports is 4.45-525 V. A unit load is defined as 100 mA in USB 2.0, and 150 mA in USB 3.0. A device may draw a maximum of 5 unit loads (500 mA) from a port in USB 2.0; 6 (900 mA) in USB 3.0. There are two types of devices: low-power and high-power. A low-power device draws at most 1 unit load, with minimum operating voltage of 4.4 V in USB 2.0, and 4 V in USB 3.0. A high-power device draws the maximum number of unit loads permitted by the standard. Every device function initially as low-power, but the device may request high-power and will get it if the power is available on the providing bus. Some devices, such as high-speed external disk drives, require more than 500 mA of current and therefore cannot be powered from one USB 2.0 port. Such devices usually come with a Y—shaped cable that has two USB connectors to be plugged into a computer. With such a cable a device can draw power from two USB ports simultaneously. A bus-powered hub initializes itself at 1 unit load and transitions to maximum unit loads after it completes hub configuration. Any device connected to the hub will draw 1 unit load regardless of the current draw of devices connected to other ports of the hub (i.e. one device connected on a four-port hub will draw only 1 unit load despite the fact that more unit loads are being supplied to the hub). A self-powered hub will supply maximum supported unit loads to any device connected to it. In addition, the VBUS will present 1 unit load upstream for communication if parts of the hub are powered down.
- USB supports the following signaling rates (the terms speed and bandwidth are used interchangeably, and “high-” is alternatively written as “hi-”). A low-speed rate of 1.5 Mbit/s (˜183 kB/s) is defined by USB 1.0. It is very similar to full-bandwidth operation except each bit takes 8 times as long to transmit. The full-speed rate of 12 Mbit/s (˜1.43 MB/s) is the basic USB data rate defined by USB 1.0. All USB hubs support full-bandwidth. A high-speed (USB 2.0) rate of 480 Mbit/s (˜57 MB/s) was introduced in 2001. All hi-speed devices are capable of falling back to full-bandwidth operation if necessary; i.e., they are backward compatible with USB 1.1. Connectors are identical for USB 2.0 and USB 1.x. A SuperSpeed (USB 3.0) provides a rate of 5.0 Gbit/s (˜596 MB/s). USB 3.0 connectors are generally backwards compatible, but include new wiring and full duplex operation. USB signals are transmitted on a twisted-pair data cable with 90Ω±15% characteristic impedance, labeled D+ and D−. Prior to USB 3.0, half-duplex differential signaling was used to reduce the effects of electromagnetic noise on longer lines. Transmitted signal levels are 0.0 to 03 volts for low and 2.8 to 3.6 volts for high in full-bandwidth and low-bandwidth modes, and −10 to 10 mV for low and 360 to 440 mV for high in hi-bandwidth mode. In FS mode, the cable wires are not terminated, but the HS mode has termination of 45Ω to ground, or 90Ω differential to match the data cable impedance, reducing interference due to signal reflections. USB 3.0 introduces two additional pairs of shielded twisted wire and new, mostly interoperable contacts in USB 3.0 cables, for them. They permit the higher data rate, and full duplex operation. The USB is further described in “Universal Serial Bus 3.0 Specification”, Revision 1.0, Jun. 6, 2011, downloaded from www.usb.org, and in Peacock C., “USB in a Nutshell”, 3rd Release, November 23, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- It is useful to protect users and data from unauthorized use or access. In one non-limiting example, user data or other confidential information may be left on disk drives removed from computers and storage systems, such as at systems end-of-life. For example, there is a legal requirement, according to the federal standard NIST 800-88: “Guidelines for Media Sanitization”, September 2006, for erasing (sanitizing) records, and as described in the Ponemon Institute document “Fourth Annual US Cost of Data Breach study”, January 2009, which are both incorporated in their entirety for all purposes as if fully set forth herein.
- Such sanitization techniques use non destructive actions, such as deleting files and block erase (such by formatting or overwriting by external dedicated software, for example as required by DOD 5220), while other techniques use destructive means such as physical drive destruction and disk drive degaussing. When using physical drive destruction, disks removed from disk drives are broken up or ground into microscopic pieces. Similarly, degaussers may be used to erase magnetic data on disk drives, while creating high intensity magnetic fields that erase all magnetic recordings in a hard disk drive (or magnetic tape). A non-destructive means include in-drive encryption using an encryption key. Various sanitization requirements and schemes of disk drives, as well as limitations of the various schemes, are described in Hughes G., Coughlin T., “Tutorial on Disk Drive Data Sanitization” (September 2006), in Edelstein R., Converge Net Inc., “The Limitation of Software Based Hard Drive sanitization—The Myth of a Legacy Technology” (September 2007), in Edelstein R., Converge Net Inc., “Data Loss Prevention: Managing the Final Stage of the Data Life Cycle Model—A Perspective on Decommissioning Storage Technology” (May 2007), in Hughes G. F. and Commins D. M. of University of California, Coughlin T. of Coughling Associates, “Disposal of Disk and Tape Data by secure sanitization”, Co-published by the IEEE Computer and Reliability Societies (IEEE Security & Privacy pg. 29-34, July/August 2009), which are all incorporated in their entirety for all purposes as if fully set forth herein.
- In consideration of the foregoing, it would be an advancement in the art to provide an improved networking or storage security method and system that is simple, secured, cost-effective, faithful, reliable, easy to use or sanitize, has a minimum part count, minimum hardware, and/or uses existing and available components, protocols, programs and applications for providing better security and additional functionalities, and provides a better user experience.
- A method for improving the security of transferring a message composed of a succession of message elements from a sender to a recipient over multiple paths in the Internet, and an apparatus for executing the method are described. The intermediate servers are serving as interposition relay servers that act as a link between the sender and recipient, and passes along the data therebetween. The sender, the recipient and the servers are each associated with an IP (Internet Protocol) address for being addressable in the Internet, the method executed by the sender comprising the steps of partitioning the message into a plurality of message slices according to a slicing scheme, each message slice containing one or more of the message elements, associating each message slice with an intermediate server according to an associating scheme, and sending each message slice together with the IP address of the recipient to the server associated with the message slice. Each message may use a different slicing scheme and a different associating scheme. One or all of the plurality of intermediate servers executes the steps of receiving and identifying a message slice and the IP address of the recipient, and sending the message slice with the IP address to the recipient or to another intermediate server. The recipient executes the steps of receiving and identifying a plurality of the message slices, and reconstructing at least part of the original message as it existed before the partitioning step by the sender.
- The sender method steps may be preceded by the step of determining the number of message slices to use for the message partitioning, followed by the step of partitioning the message into the determined number of message slices. The number of message slices to use for the message partitioning may be a random number. The sender method steps may be preceded by the step of determining the number of message elements in each of the message slices used for the message partitioning, followed by the step of partitioning the message into message slices each having the determined number of message elements. The message slices may have the same or distinct number of message elements. The number of message elements included in each of the message slices may be a random number. The slicing scheme may be based on a non-overlapping partitioning, wherein each of the message elements is included in a single message slice, or an overlapping partitioning, wherein each of the message elements is included in two or more message slices.
- The slicing scheme may be based on sequential partitioning, where the message elements in one or more of the message slices follow one another the same as in the message, or non-sequential partitioning, where the message elements in one or more of the message slices do not follow one another the same as in the message. The slicing scheme may be based on interval sequential partitioning, where the message elements in one or more of the message slices are separated by at least one intervening element in the message.
- Each of the message elements may be a bit, a nibble, a byte or a multi-byte word, and may represent a number or a character. The sender method may be preceded by a step of padding the message, or padding one or more of the message slices after the partition. The slicing scheme may involve partitioning that is based on the current date or the current TOD (Time-of-Day).
- The slicing scheme or any other information about the partitioning may be sent together with one or more of the message slices. Further, information about a message slice is sent together with another slice. The order of sending the message slices may be random, or based on the order of the first message element in each message slice of the message.
- The method of the sender may be preceded by the step of encrypting the message before the partitioning, and partitioning is executed on the encrypted message, and the step of decrypting the reconstructed message follows the method steps at the recipient. Further, the method of the sender may be preceded by the step of encrypting at least part of the message slices after the partition at the sender or at an intermediate server, and the step of decrypting or encrypting a message slice may precede the sending of the message slice at the intermediate server. Further, the step of decrypting at least part of the message slices may precede the reconstruction of the message at the recipient.
- The intermediate servers may be located in geographically disparate locations, such as different cities, different states, different countries or different continents. One or more of the intermediate servers may further execute the steps of storing the message slice, the IP address of the sender or the IP address of the recipient.
- The sender or an intermediate server method may further be preceded by the step of storing a list composed of a succession of IP addresses available as source IP addresses for use by the associating scheme. The associating scheme may associate a packet including a message slice to each of the IP addresses in the list, such that a distinct source IP address is associated with each message slice. The associating scheme may associate the entire or part of the source IP addresses in the list with a packet including a message slice. The associating scheme may sequentially or randomly associate the source IP address in the list with the succession of packets including the message slices. The source IP addresses may be selected for association from the list randomly, based on the former selection for a message or message slice, or based on the current date or the current TOD (Time-of-Day).
- The sender, the recipient, or an intermediate server may be a dedicated device or part of a device, and may comprise a memory, and a processor configured by the memory to perform the sender, recipient, or intermediate server method. A sender may be part of the computer wherein the message to be sent is originated, or connected for receiving the message to be sent from another computer via a network such as a LAN or Intranet, commonly used in an enterprise or other business entity. The sender or the receiver (or the intermediate server) may be co-located or integrated with a computer, router (e.g., NAT-enabled router), a gateway or a firewall (e.g., sharing an enclosure, an Internet connection, a LAN connection, an IP address, a processor or a peripheral device), and connected between a LAN and the Internet.
- The intermediate servers may be dedicated servers, or may be integrated with other servers (e.g., sharing an enclosure, an Internet connection, a LAN connection, an IP address, a processor or a peripheral device), having a specific distinct functionality, such as a web server, online gaming server, instant messaging server, a database server, a mail server, a FTP file transfer server, e-mail server, audio/video streaming server, a DHCP server, or a DNS server. As part of such integration, the intermediate server shares with the other server an enclosure, an Internet connection, an IP address, a processor, or a peripheral device. Further, part or all of the communication (such as transfer of packets containing message slices) between the sender, the recipient, and the intermediate servers may be based on the source routing technique, either strict or LSRR, or based on onion routing, such as the Tor technique.
- Each or all of the intermediate servers may execute a method for relaying a message from a sender to a recipient. The sender and the recipient are each associated with an IP (Internet Protocol) for being addressable in the Internet, and the method executed by an intermediate server includes the steps of receiving from the sender a packet which includes as a payload the message and the recipient IP address, followed by extracting and identifying the message, the sender IP address and the recipient IP address from the received packet, followed by sending the message together with the sender IP address to the recipient or to an intermediate server. In the case wherein part of the message is encrypted, the method may further include the step of decrypting the message after receiving it. Further, the method may further include the step of encrypting the message before sending it.
- In one aspect, the message is composed of a succession of message elements, and the method executed by one or all of the intermediate servers further includes the steps of partitioning the message into a plurality of message slices, each message slice containing one or more of the message elements, and sending each message slice together with the IP address of the sender to the recipient or to another intermediate server.
- The method may be used for real-time applications or services, and for the delivery of audio or video information, such as VoIP, video conferencing, IPTV or Internet telephony service. The slicing scheme or the associating scheme may be random and based on a random number, which may be based on a physical process or on an algorithm for generating pseudo-random numbers.
- An intermediate server, or all of them, may further execute the steps of partitioning the received message slice into a plurality of sub-slices, each sub-slice containing one or more of the message elements, and sending the sub-slices with the IP address of the recipient to another intermediate server or to the recipient.
- The sender steps or the recipient steps may be executed by a dedicated software module, or integrated with the application involved in generating the message to be sent or using the received message. The same software module or the same hardware may serve as both the sender and the intermediate server, wherein the sender steps and the intermediate server steps are respectively executed by a single software module or executed by the same processor. The same software module or the same hardware may serve as both the recipient and the intermediate server, wherein the recipient steps and the intermediate server steps are respectively executed by a single software module or executed by the same processor.
- The slicing scheme and the associating scheme may be determined at the sender, or the sender method may be preceded by the step of receiving and storing the slicing scheme. The slicing scheme and the associating scheme may be received via the Internet from the recipient, from one of the intermediate servers or from another server. The slicing scheme and the associating scheme may be periodically received, at random or based on a date or on TOD. A slicing may be used in storing a message in multiple memories.
- A CAPTCHA may be used to improve the communication security. The CAPTCHA may be added to, integrated with, embedded in or a part of a message or a message slice. In one example, the message or a portion thereof may be embedded in a CAPTCHA, such as using the characters of a message (or a message slice) as the basis for generating CAPTCHA image. In another example, the CAPTCHA includes part or all of the information required to decrypt the received message or slice. A CAPTCHA may include information about a key public or private) used for encryption. In one example, the CAPTCHA may include information about the slicing scheme or any other information involving the reconstruction of the sent message.
- In one aspect scrambling and de-scrambling schemes are used for encrypting and decrypting a digital data content written onto a memory (or memories) or storage (or storages). The memory (or storage) physical means may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical storage medium. The memory may semiconductor (a.k.a. Solid-state) based, and in the form of a chip, IC, module, ICs mounted on a PCB, memory card, or a rigidly enclosed box. The memory may be volatile or non-volatile, and may be of static or dynamic types. The memory may be written more than once at any time, or may be written once, as part of the manufacturing process or afterwards (e.g. by the user using a dedicated equipment, or as part of an electronic circuit as part of normal operation). The memory may use random or sequential access. Further, the memory may be location-addressable or file-addressable or content-addressable.
- The memory may employ a non-removable medium, or a removable medium associated with a suitable writer/reader (or read-only) drive. A memory may be accessed using a parallel or serial connection or bus, and may be powered from a dedicated connection or from the bus connection.
- The memory is commonly characterized by its capacity and access time, and may be designed as portable or as in-computer enclosure. The memory may be a DAS, or part of NAS or SAN.
- Any connection herein, such as the connection of peripherals in general, and memories in particular to a processor, may use a bus. A communication link (such as Ethernet, or any other LAN, PAN or WAN communication links may also be regarded as buses herein. A bus may be an internal bus, an external bus or both. A bus may be a parallel or a bit-serial bus. A bus may be based on a single or on multiple serial links or lanes. The bus medium may electrical conductors based such as wires or cables, or may be based on a fiber-optic cable. The bus topology may use point-to-point, multi-drop (electrical parallel) and daisy-chain, and may further be based on hubs or switches. A point-to-point bus may be full-duplex, or half-duplex. Further, a bus may use proprietary specifications, or may be based on, similar to, substantially or fully compliant to an industry standard (or any variant thereof), and may further be hot-pluggable. A bus may be defined to carry only digital data signals, or may also defined to carry a power signal (commonly DC voltages), either in separated and dedicated cables and connectors, or may carry the power and digital data together over the same cable. A bus may support master/slave configuration. A bus may carry a separated and dedicated timing signal or may use self-clocking line-code.
- In one aspect, an address scrambler that is connectable between a processor (directly connected or via a bus) and the memory (directly connected or via a bus) or memories is disclosed. When addressing the memory, the address scrambler converts the address word to another address word according to a conversion scheme, which may be a one-to-one mapping scheme. Alternatively or in addition, a data scrambler is connected between a processor (directly connected or via a bus) and the memory (directly connected or via a bus). When writing to the memory, the data scrambler converts the data word to be written to another data word according to a conversion scheme, which may be a one-to-one mapping scheme. When reading from the memory, the inverse conversion scheme may be applied to the data word read from the memory, in order to reconstruct the original word written. Each of the data and address scramblers may be connections-based, where the significance of the address or data bits in the address or data words respectively is changed. Each of the data and address scramblers may be based on any combinational logic that may be based on discrete logic gates, ASICs, PLDs, memory, processor or any combination thereof. The memory may be a non-removable or a removable medium type, where the written information on the medium is scrambled (using address or data scrambling or both), and thus cannot be eligibly read without passing through the suitable de-scrambling scheme.
- The scrambling scheme (or any of the scramblers or both) may be one-time set or programmed, such as in manufacturing, or by the user using a dedicated programmer or on-board programming during regular system operation. Alternatively or in addition, the scrambling scheme may be field changed and overwritten/programmable in the field, such as by the processor accessing the memory. Further, the scramblers may be volatile or non-volatile. Each of the scramblers (or both) may include a random number generator, used to write a random number in defined parts of the memory, such as during write cycles.
- Both data and address scramblers may be simultaneously used in accessing the same memory. The scrambler may use same, similar or different scrambling schemes, handle same or different bus widths, and may be based on the same or different implementations and component types. The two scramblers may be integrated together to share the same enclosure, mechanical support, connectors, power sources, interfaces or support circuitry. In the case where the address word, the data word, or both, are carried using a bit-serial connection or communication such as serial bus, the address (or data) word from the processor is first extracted, then the address (or data) word is identified and converted, and then inserted back to the serial stream connected to the memory. The conversion may use converting the serial address (or data) word to parallel, converting to another parallel address (or data) word according to a conversion scheme, and the parallel converted word is then serialized and combined over the bit-serial connection or communication.
- An adapter may include a data scrambler, address scrambler, or both, as well as encryption, and interfaces required for connecting to the processor (directly or via a bus) and to the memory (directly or via a bus). The adapter, or any part thereof, may include passive or power consuming (active) electronic circuits. The adapter, or any part thereof, may be powered from the power source (AC or DC) or the power supply powering the processor, from the power source (AC or DC) or the power supply powering the memory or both. Alternatively, the adapter (or any part thereof) may be powered from a separate or a dedicated power source or power supply. Alternatively, the adapter (or any part thereof) may be powered via the bus or other connection to the processor, and may also power feed the memory directly or via the connection or bus. Alternatively, the adapter may be powered from a separate or a dedicated power source or power supply. Alternatively, the adapter may be powered via the bus or other connection to the memory, and may also power feed the processor directly or via the connection or bus. The powering via a connection (such as a connector) or bus may use a dedicated cable, where the cable is having power-dedicated wires or conductors, or by using power and data carried over the same wires such as by using FDM or phantom scheme. In the case of using FDM, the adapter includes circuits for splitting the power and data signals, such as a power-pass filter substantially passing the power signal and substantially stopping the data signal, working together with a data-passing filter substantially passing the data signal and substantially stopping the power signal. Alternatively, a capacitor connected to a transformer center-tap may be used for separating the power and data signals. In the case of phantom scheme, two transformers may be used, passing the data signal (or signals) between the primary and secondary windings or the transformers, while the power is accessed at the transformers center-taps. The adapter may use a dedicated power connector for receiving power thereof, or may use a connector that connect to a cable (such as a bus cable) carrying both power and data over the same cable.
- Further, the adapter (or any part thereof) may be used to supply power to a device connected to it, such as a memory. Such powering may be via a connection or bus that use a dedicated cable, or by using the same cable and having power-dedicated wires or conductors, or by using power and data carried over the same wires such as by using FDM or phantom scheme. In the case of using FDM, the adapter includes circuits for combining the power and data signals, such as a power-passing filter substantially passing the power signal and substantially stopping the data signal, working together with a data-passing filter substantially passing the data signal and substantially stopping the power signal. Alternatively, a capacitor connected to a transformer center-tap may be used for combining the power and data signals. In the case of phantom scheme, two transformers may be used, passing the data signal (or signals) between the primary and secondary windings or the transformers, while the power is supplied at the transformers center-taps.
- Adapters may be provided (or manufactured) where each one includes a distinct address scrambling scheme, distinct data scrambling scheme, or both. Alternatively, adapters may be provided (or manufactured) in pairs or other groups sharing the same scrambling scheme.
- An adapter or an address/data scrambler (or any part thereof) may be implemented by software or firmware, hardware or a combination of both. The hardware may be a separate physical entity, implemented in the form of a die, an IC, a box-shaped enclosure, or a PCB carrying ICs and other electronic components (such as plug-in or removable module). Alternatively or in addition, the circuits and functionalities may be integrated with a processor, a memory or an intermediate device, such as hub, switch, router or bus expander. In the case of a separate physical entity, the electrical connections can make use of standard expansion or bus connectors, including edge connectors. Each connection may be keyed and preferably supports hot-plugging.
- In one aspect, an adapter for connecting to a processor and to a location-addressable memory capable of storing data words in an address space is disclosed. The memory may be connectable to the processor via a bus of a first type, and the adapter may comprise a first port connectable to a first bus of the first type; a first interface coupled to the first port for receiving a first data word associated with an address in the address space; a second port connectable to a second bus; a second interface coupled to the second port for transmitting a second data word associated with the address; and a scrambler connected between the first and second interfaces for converting the first data word to the second data word, distinct from the first data word; and wherein one of the first and second buses is connectable to a processor and the other is connectable to a memory.
- In one aspect, an adapter for connecting to a processor and to a memory (such as location-addressable memory) having an address space is disclosed. The memory is connectable to the processor via a bus of a first type. The adapter comprising a first port connectable to a first bus of the first type for connecting to the processor, a first interface coupled to the first port for receiving a first address word in the address space from the processor; a second port connectable to a second bus for connecting to the memory; a second interface coupled to the second port for transmitting a second address word in the address space to the memory; and a scrambler connected between the first and second interfaces for converting the first address word to a second address word distinct from the first address word. The first address word may be converted to the second address word using a one-to-one mapping, and the scrambler may be based only on electrical connections. Each of the first and second address words may define a sequence of bits, and the conversion may include re-arranging the sequence of at least two bits of the address words. Each of the first and second address words may comprise multiple bits, and a level of significance may be associated with each of the bits, and the conversion may include changing the significance level of at least two bits in the address words.
- The scrambler may be based on logic gates implementing a Boolean function, such as discretely packaged logic gates, PLD, memory or a processor. The conversion may be according to a pre-set conversion scheme, which may be is programmable by the processor. The scrambler may be coupled to the first bus for being addressed by the processor. The second bus type may be of the same type of the first bus, or may be of a type that is distinct from the first bus type. The adapter may include the memory, and the memory may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical storage medium, or any combination thereof. The memory is file-addressable or content-addressable, and may be part of a NAS or a SAN. The memory may be a once written memory, and may be connectable to the processor to be read from, or written to, via the second bus, which may be a parallel bus or a bit-serial bus.
- The adapter may comprise a power supply having a power port couplable to be powered from a power source, where the power supply is having one or more DC outputs for powering at least part of the memory. The adapter may comprise a power connector for connecting to the power source, and the power port may be coupled to the power connector. The second bus may be based on a cable carrying a power signal, and the adapter may further comprise a bus connector for connecting to the cable, and the power port may be coupled to the bus, and connected for powering the power supply from the power signal.
- The memory may be a random-accessed or a sequential-accessed memory, and may be location-based, randomly-accessed, and can be written multiple times. The memory may be volatile and based on semiconductor storage medium, such as: RAM, SRAM, DRAM, TTRAM and Z-RAM. The memory may be non-volatile and based on semiconductor storage medium, such as ROM, PROM, EPROM or EEROM, and may be Flash-based, such as SSD drive or USB ‘Thumb’ drive. The memory may be based on non-volatile magnetic storage medium, such as HDD. The memory may be based on an optical storage medium that is recordable and removable, and may include an optical disk drive. The storage medium may be: CD-RW, DVD-RW, DVD+RW, DVD-RAM BD-RE, CD-ROM, BD-ROM or DVD-ROM. The adapter or the memory (or both) form factor may be an IC, a PCB on which one or more ICs are mounted, or a box-shaped enclosure.
- The adapter may further comprise an encryptor/decryptor functionality that is using an encryption scheme that is coupled between the first and second interfaces, for encrypting and decrypting digital data between the first and second buses. The encryption scheme may be based on AES 128,192 or 256 bits.
- The first bus or the second bus (or both) may each be based on a PAN, a LAN or a WAN communication link. The first bus or the second bus (or both) may each be based on Ethernet and may be substantially compliant with IEEE 802.3 standard, and be based on one out of: 100BaseT/TX, 1000BaseT/TX, 10 gigabit Ethernet substantially (or in full) according to IEEE Std 802.3ae-2002as standard, 40 Gigabit Ethernet, and 100 Gigabit Ethernet substantially according to IEEE P8023ba standard. The first bus or the second bus (or both) may each be based on a multi-drop, a daisy-chain topology, or a point-to-point connection, use half-duplex or full-duplex, and may employs a master/slave scheme. The first bus or the second bus (or both) may each be a wired-based, point-to-point, and bit-serial bus, wherein a timing, clocking or strobing signal is carried over dedicated wires, or using a self-clocking scheme. Each of the buses (or both) may use a fiber-optic cable as the bus medium, and the adapter may further comprise a fiber-optics connector for connecting to the fiber-optic cable.
- Each of the buses (or both) may use conductors such as a bus cable including multiple wires, and the adapter may further comprise a bus connector for connecting to the bus cable. The bus cable may carry one or more DC or other power signals, over dedicated wires or over the same wires carrying the digital data. The adapter may comprise a power/data splitter arrangement having first, second and third ports, wherein only the digital data signal is passed between the first and second ports, and only the power signal is passed between the first and third ports, and wherein the first port is coupled to the bus connector. The power and digital data signals may be carried using FDM, where the digital data signal is carried over a frequency band above and distinct from the power signal. The power/data splitter may comprise an HPF coupled between the first and second ports, and a LPF coupled between the first and third ports, or a transformer and a capacitor connected to the transformer windings. The power and digital data signals may be carried using phantom scheme substantially according to IEEE 802.3af-2003 or IEEE 802.3at-2009 standards, and the power/data splitter may comprise at least two transformers having a center-tap connection.
- The adapter may at least in part supply one or more power signals are DC type carried over dedicated wires or carried over the same wires carrying digital data. The adapter may comprise a power/data combiner arrangement having first, second and third ports, wherein only the digital data signal is passed between the first and second ports, and only the power signal is passed between the first and third ports, and wherein the first port is coupled to the bus connector. The power and digital data signals may be carried using FDM, where the digital data signal is carried over a frequency band above and distinct from the power signal, and the power/data combiner may comprise an HPF between the first and second ports and a LPF between the first and third ports. The power/data combiner may comprise a transformer and a capacitor connected to the transformer windings. The power and digital data signals may be carried using a phantom scheme substantially according to IEEE 8023af-2003 or IEEE 802.3at-2009 standards, and the power/data combiner may comprise at least two transformers having a center-tap connection.
- The adapter may be implemented as a separate physical entity, such as in the form of a die, an IC, a box-shaped enclosure, or a PCB carrying ICs and other electronic components, a plug-in card or a removable enclosure. The adapter may be integrated with the memory, integrated with the processor, or with an intermediate device, such as a hub, a switch, a router or a bus expander.
- Each of the buses may be based on a cable, and the respective first port or second port may be a connector connectable to the cable. The cable may include conductive wires or may be a fiber-optic cable. The first interface or the second interface may comprise a transmitter and a receiver coupled to the connector for respectively transmitting to, and receiving from, the cable. The transmitter may use differential signaling, emphasis shaping, or self-clocking line-code, and may employ error detection, alignment, clock-correction or channel-bonding. The receiver may use equalization, impedance matching termination, or PLL, and may use decoding and detecting encoding-based errors. The first bus may be a serial bus, and the adapter may comprise a serializer and de-serializer coupled between the first interface and the scrambler, for converting to parallel the digital data received from the first interface and for serializing the digital data received from the scrambler. The second bus may be a serial bus, and wherein the adapter further comprises a serializer/de-serializer coupled between the second interface and the scrambler, for converting to parallel the digital data received from the second interface and for serializing the digital data received from the scrambler.
- The adapter may be integrated with the processor or the memory, and may comprise a component shared with the processor or the memory. The adapter may comprise a single enclosure housing the first and second ports, the first and second interfaces and the scrambler, and the enclosure may further house the processor or the memory. The adapter may comprise a power supply for powering at least part of the adapter, and the power supply may be connected to also power the processor or the memory. The adapter may comprise components mounted on a substrate (such as a PCB), and the substrate may be used to also support the processor or the memory.
- In one aspect, a set of two or more adapters is disclosed, wherein both adapters use scramblers having the same scrambling schemes. The adapters may be are mechanically attached, mechanically detachable or both. The adapter may be formed as a plug-in and removable unit with the memory or a computer including the processor. The adapter may be used for DRM, allowing access or authentication to a scrambled software.
- In one aspect, information is stored in multiple memories. The information is overlapping or non-overlapping split into multiple portions stored in the multiple memories. The splitting may be address based, data (such as data word) based, or both. The address space required is overlapping or non-overlapping split between the memories, where each address is associated with an address (or multiple addresses) in the memories using a mapping scheme. The mapping may be sequential or non-sequential. Alternatively or in addition, the data word to be stored is overlapping or non-overlapping split between the memories using a mapping scheme. The locations in the memories not used may be filled with random data.
- The above summary is not an exhaustive list of all aspects of the present invention. Indeed, the inventor contemplates that his invention includes all systems and methods that can be practiced from all suitable combinations and derivatives of the various aspects summarized above, as well as those disclosed in the detailed description below and particularly pointed out in the claims filed with the application. Such combinations have particular advantages not specifically recited in the above summary.
- The invention is herein described, by way of non-limiting examples only, with reference to the accompanying drawings, wherein like designations denote like elements. Understanding that these drawings only provide information concerning typical embodiments of the invention and are not therefore to be considered limiting in scope:
-
FIG. 1a depicts schematically the Internet and computers connected to the Internet; -
FIG. 1b illustrates an example of a construction of an IP-based packet; -
FIG. 2 depicts schematically the transfer of data over the Internet; -
FIGS. 3a, 3b and 3c depict schematically the path of message slices over the Internet in a first example; -
FIG. 4 depicts schematically the path of a message slice over the Internet in a second example; -
FIG. 5 illustrates schematically a simplified flow chart of part of a method for slicing, packetizing, and sending a message; -
FIG. 6 illustrates schematically a simplified flow chart of part of a method for receiving and reconstructing a message; -
FIG. 7 illustrates an example of a construction of an IP-based packet carrying a message slice; -
FIG. 8 illustrates an example of a construction of an IP-based packet carrying a message slice; -
FIG. 9a illustrates schematically a simplified flow chart of part of a method for single hop relaying a message slice; -
FIG. 9b illustrates schematically a simplified flow chart of part of a method for multi-hop relaying a message slice; -
FIG. 10 illustrates an example of a construction of an IP-based packet carrying a message slice in multi-hop relaying; -
FIG. 11 depicts schematically a firewall device connected between the Internet and a LAN; -
FIG. 12 depicts schematically a firewall device and another device connected between the Internet and a LAN; -
FIG. 13 illustrates schematically a general computer system connected to the Internet; -
FIG. 14 depicts schematically the path of message slices over the Internet in an example; -
FIGS. 15a and 15b depict schematically the path of message slices over the Internet in an example where the same device is used as source computer, a relay server and a firewall; -
FIG. 16 illustrates a schematic electrical diagram of part of a computer system; -
FIG. 17 illustrates a schematic electrical diagram of interfacing a memory as part of a computer system; -
FIG. 18 illustrates a schematic electrical diagram of an address scrambler interfacing a memory; -
FIG. 19 illustrates a schematic electrical diagram of a connections-based address scrambler interfacing a memory; -
FIG. 19a illustrates a schematic electrical diagram of discrete logic gates based address scrambler interfacing a memory; -
FIG. 19b illustrates a schematic electrical diagram of a general logic based address scrambler interfacing a memory; -
FIG. 19c illustrates a schematic electrical diagram of a memory based address scrambler interfacing a memory; -
FIG. 20 illustrates a schematic electrical diagram of a data scrambler interfacing a memory; -
FIG. 21 illustrates a schematic electrical diagram of a connections-based data scrambler interfacing a memory; -
FIG. 21a illustrates a schematic electrical diagram of a one-way logic block based data scrambler interfacing a memory; -
FIG. 21b illustrates a schematic electrical diagram of a two-way logic block based data scrambler interfacing a memory; -
FIG. 21c illustrates a schematic electrical diagram of a memory based data scrambler interfacing a memory; -
FIG. 21d illustrates a schematic electrical diagram of a data scrambler interfacing a memory, based on a two-way logic block and a random number generator combined; -
FIG. 22 illustrates a schematic electrical diagram of data and address scramblers interfacing a memory; -
FIG. 22a illustrates a schematic electrical diagram of data and address scramblers interfacing a memory; -
FIG. 22b illustrates a schematic electrical diagram of an adapter connected between a memory and a processor, -
FIG. 22c illustrates a schematic electrical diagram of data and address scramblers interfacing a removable-medium memory; -
FIG. 23 illustrates a schematic electrical diagram of an address scrambler serially interfacing a memory; -
FIG. 24 illustrates a schematic electrical diagram of a data scrambler serially interfacing a memory; -
FIG. 25 illustrates a schematic electrical diagram of a shared powering scheme; -
FIG. 26 illustrates a schematic electrical diagram of a separate powering scheme; -
FIG. 27 illustrates a schematic electrical diagram of an adapter powering scheme; -
FIG. 27a illustrates a schematic electrical diagram of a powering scheme of an adapter and a memory; -
FIG. 27b illustrates a schematic electrical diagram of an adapter powering scheme; -
FIG. 27c illustrates a schematic electrical diagram of a powering scheme of an adapter and a memory; -
FIG. 28 illustrates a schematic electrical diagram of a powering scheme of an adapter and a bus; -
FIG. 28a illustrates a schematic electrical diagram of a powering scheme of a bus-powered adapter; -
FIG. 29 illustrates a schematic electrical diagram of a powering scheme of a bus-powered adapter and a powered-bus; -
FIG. 30 illustrates a schematic electrical diagram of FDM power/data signals combining/splitting circuit; -
FIG. 31 illustrates a schematic electrical diagram of FDM power/data signals combining/splitting circuit using capacitor and transformer; -
FIG. 32 illustrates a schematic electrical diagram of phantom scheme power/data signals combining/splitting circuit; -
FIG. 33 illustrates a schematic electrical diagram of an adapter including encryption functionality; -
FIG. 34 depicts schematically a laptop and flash drive; -
FIG. 34a depicts schematically a laptop and flash drive inserted thereto; -
FIG. 35 depicts schematically a laptop, an adapter, and flash drive; -
FIG. 35a depicts schematically a laptop, an adapter and a flash drive inserted thereto; -
FIG. 35b depicts schematically a laptop, a flash drive, and an adapter inserted thereto; -
FIG. 35c depicts schematically an adapter, a flash drive inserted thereto, and a laptop; -
FIG. 36 depicts schematically an HDD, a motherboard, and bus cables for connecting them; -
FIG. 36a depicts schematically an HDD connected via a bus to a motherboard; -
FIG. 37 depicts schematically an HDD, an adapter, a motherboard, and bus cables; -
FIG. 37a depicts schematically an HDD connected to a motherboard via an adapter using bus cables; -
FIG. 38 depicts schematically a cellular telephone handset and a memory card; -
FIG. 39 depicts schematically a cellular telephone handset, an adapter, and a memory card; -
FIG. 39a depicts schematically the connections of a cellular telephone handset, an adapter, and a memory card; -
FIG. 40 depicts schematically an HDD and a plug-in adapter; -
FIG. 41 depicts schematically an adapter based on rotary switches; -
FIG. 41a depicts schematically an adapter based on rotary switches connected to a motherboard; -
FIG. 42 depicts schematically a motherboard including an adapter based on rotary switches; -
FIG. 43 depicts schematically a set of detachable USB adapter pair, -
FIG. 44 depicts schematically a set of detachable SIM adapter quad; -
FIG. 45 illustrates a schematic electrical diagram of splitting/combining using multiple memories via adapters; -
FIG. 45a illustrates a schematic electrical diagram of splitting/combining using multiple memories; -
FIG. 46 illustrates a schematic electrical diagram of data word splitting/combining using multiple memories; and -
FIG. 46a illustrates a schematic electrical diagram of data word splitting/combining using multiple memories and random numbers. - The principles and operation of an apparatus according to the present invention may be understood with reference to the figures and the accompanying description wherein similar components appearing in different figures are denoted by identical reference numerals. The drawings and descriptions are conceptual only. In actual practice, a single component can implement one or more functions; alternatively, each function can be implemented by a plurality of components and devices. In the figures and descriptions, identical reference numerals indicate those components that are common to different embodiments or configurations. Identical numerical references (even in the case of using different suffix, such as 5, 5 a, 5 b and 5 c) refer to functions or actual devices that are either identical, substantially similar, or having similar functionality. It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the apparatus, system, and method of the present invention, as represented in the figures herein, is not intended to limit the scope of the invention, as claimed, but is merely representative of embodiments of the invention.
- In one aspect, a message to be transmitted via the Internet is first sliced into one or more parts (‘slices’). Each message slice is combined with the ultimate destination address, and slicing information. The modified message encapsulating the slice of the message and the ultimate destination address is sent as one or more packets to a relay server on the Internet, which is not necessarily associated with the ultimate destination device. The relay server may then identify the ultimate destination and forward the message slice to the ultimate destination (with the source address encapsulated into the packets), or alternatively send the message to another relay server, which will repeat the process.
- In one non-limiting example, the
laptop 12 a (‘sender’) wishes to send a message to thedesktop computer 13 c (‘receiver’ or ‘recipient’) via theInternet 11 as shown inFIG. 2 above. For example, as part of a commercial commerce transaction the credit card number “9182 8374 6547” is to be exchanged between the purchasing client atlaptop 12 a and thestore desktop computer 13 c. First, the credit card number is sliced into three parts:slice # 1 being “9182”, slice #2 being “8474” and slice #3 consisting of “6547”. Theslice # 1, combined with thedestination 13 c IP address and the number ‘1’ as identifying the slice, is sent as a regular packet to theserver 14 b, functioning as a relay server. For example, as shown insystem 30 inFIG. 3a , the packet or packets may use thepath 31 a as using thelink 17 g for transporting the packets to therouter 15 j, andpath 31 b for transferring the packets from therouter 15 j to theserver 14 b overlink 17 f. It should be noted that thedestination computer 13 c (‘receiver’ or ‘recipient’) IP address or any other identification of the destination are not encapsulated within the payload of the sent packets, and not as part of the header of the packets. Upon proper receipt of the packets from thesource laptop 12 a, therelay server 14 b decodes the destination address from the packets payload, adds the source address to the message received (if required) and pass along the newly formed message as packets to thedestination computer 13 c over the Internet. For example, the packets may use thepaths respective communication links server 14 b, viarouters destination 13 c, as shown innetwork 30 ofFIG. 3 a. - Similarly, the slice #2, combined with the
destination 13 c IP address and the number ‘2’ as identifying the slice, is sent as regular packets to anotherserver 14 d (preferably different from therelay server 14 b used for handling slice #1), functioning as a relay server. The packets relating to slice #2 are transported using thepaths communication links routers network 32 inFIG. 3b . Therelay server 14 d retransmits the received message (which includes slice #2), encapsulated as packets payload together with thesource 12 a IP address, to thedestination 13 c, forexample using paths respective communication links routers - In a similar manner, the slice #3, combined with the
destination 13 c IP address and the number ‘3’ as identifying the slice, is sent as regular packets to anotherserver 14 c (preferably different from therelay servers slices # 1 and #2), functioning as a relay server. The packets relating to slice #3 are transferred using thepaths communication links routers network 34 inFIG. 3c . Therelay server 14 c retransmits the received message (which includes slice #3), encapsulated as packets payload together with thesource 12 a IP address, to thedestination 13 c, forexample using paths respective communication links routers - The
destination computer 13 c in turn receives and identifies the three messages including the IP address oflaptop 12 a as the source for these three messages. Further, the slices “8374”, “6547” and “9182” (respectively received fromencryption routers - While in the non-limiting example shown in
FIGS. 3a-c above, a single relay server was used in each path of a slice of the message (single ‘hop’), in one aspect a plurality of relay servers (forming multiple hops) may be used in one or more slice-related paths between a source and destination. A non-limiting example of using tworelay servers network 40 inFIG. 4 . A specific slice-related message is shown to be transported from thesource laptop 12 a first to therelay server 14c using paths respective communication links routers relay server 14 a usingpaths respective communication links respective routers relay server 14 a re-transmits the slice and its appended information to thedestination desktop computer 13c using paths respective communication links routers - As shown in
FIGS. 3a-c above, with the exception ofcommunication links Internet 11 will not be able to monitor or intercept the whole message, but at most puts a single slice (or less probably few slices) in danger. It should be noted that the message slicing described herein is distinct from the fragmentation used as part of the regular packet handling in various protocols, in order to adjust the size of packets for adapting to the various technologies used for the transmission. Commonly, an MTU (Maximum Transmission Unit) is used to characterize the network or interface capability to handle long datagrams, and thus a large size message may be segmented into multiple packets each limited by the MTU parameter. Hence, a datagram containing a slice may be fragmented into multiple packets in the case where the MTU limitation is to be exhausted. - Preferably, the
relay servers source computer 12 a and thedestination computer 13 c may each be at geographical locations distant from the relay servers. In one non-limiting example, based on the Internet being a worldwide network, the servers may be located in different continents, such as arelay server 14 a in Europe, arelay server 14 b in Asia, arelay server 14 c in North-America, and arelay server 14 d in Australia. Further, thesource computer 12 a may be in Africa and thedestination computer 13 c located in South-America. In another preferred configuration, the servers may be located in different countries, such as therelay server 14 a in Canada, therelay server 14 b in Mexico, and therelay server 14 c in the US. Similarly, distant locations in the same country may be used, such as one relay server at the East-Coast and one at the West-Coast of North-America. - In one aspect, communication security is enhanced since no packets in the Internet are transported containing (in the IP header) both IP addresses of the
source computer 12 a and thedestination computer 13 c. Packets sent from thesource computer 12 a to the first hop (one of the relay servers 14) include the IP address of thesource computer 12 a and the IP address of the relay server acting as a temporary destination. However, the IP address of theultimate destination computer 13 c is embedded in the payload, thus hidden from routers and other devices in the path, that are typically handling and processing only the packet header. Similarly, the packets reaching thedestination computer 13 c include the IP address of theultimate destination computer 13 c and the IP address of the relay server acting as an intermediate destination; however the IP address of thesource computer 12 a is hidden in the payload, and cannot easily be exposed. Hence, any interception or eavesdropping on theInternet 11 cannot identify the communication packets exchanged between theactual computer source 12 a and theultimate destination 13 c by analyzing the IP header of the packets. - Encryption algorithms used for security over the Internet commonly involves the exchange of encryption related information and other handshaking before the actual transmission of the message is taking place. One non-limiting example is the exchange of public-key in the RSA algorithm or any other public-key based cryptography. Such prior communication enhances the communication vulnerability for interception. Since the slicing scheme may be known in advance to the ultimate destination, the method described herein is not inherently based on exchanging any information between the sender and the ultimate destination prior to sending of a message, thus simplifying the transmission process and improving the message transfer security.
- Further, since there is no direct IP-Layer communication between the source computer and the ultimate destination computer, the mere fact that there is a communication between these computers (or the timing or the frequency of the communication) is kept confidential, and the privacy is improved. Further, the method provides a strong degree of unlinkability, where an eavesdropper cannot easily determine the sender and the receiver/recipient, of a given message, or part of a message. Conversely, common end-to-end encryption schemes (such as the RSA algorithm) are based on the exchange of the public key and the encrypted message between the end devices, revealing the existence of such communication.
- In some cases, encryption or any other manipulation of a message may not be suitable. For example, it may be required for legal purposes to provide non-repudiation of a message (e.g., e-mail). The method described herein provides a mechanism for secure delivery of the native message, without any altering of, tampering with or manipulating the message (except for its slicing). Hence, it may be used as a substitute (or as addition) for digital signature or any other authentication method, providing a non-repudiation capability. Further, the relay servers used to carry a message may store a replica of the message slices relayed through them, allowing a simple way to prove a message delivery, yet obviating from having the whole message stored in a single location other than the ultimate destination computer. Further, the method described herein makes use of existing protocols, and does not interfere with any
Layer 4, Layer 3 or any lower layers, thus enabling the use of any existing and standard hardware, programs, protocols and applications. - The method described herein further improves the authentication of the communication between the source computer and the ultimate destination computer, thus improving the protection against spam, forgery and fraud. The recipient computer expects messages from the source computer to arrive in slices from multiple relay servers. Hence, a packet arriving directly from the source computer (e.g., having the IP address of the source computer in the IP header), or a packet including a complete message, are suspected and not verified as being a genuine message actually sent by the source computer. Further, in some embodiments the slicing of the message into message slices should conform to an agreed upon slicing scheme known to the ultimate destination computer, and thus a message that is wrongly sliced (not according to the agreed upon slicing scheme) is suspected not to be sent by the source computer.
- The source computer originating the message transmission (such as
computer 12 a in the above non-limiting example) generally executes theflow chart 50 shown inFIG. 5 . The first step 51 ‘Receive Message’ involves receiving the message to be sent. The message may be obtained directly from a user, such as a user typing the message on a keyboard being part of, or connected to, the source computer. Alternatively, the message may be received by another application running on the same computer or in another connected computer. While the message exampled above inFIGS. 3a-3c involved the numbers of a credit card for commercial transaction over the Internet, the message may include any type of data, and be used for any type of application. The message may include any collection of numbers, characters, images or any other types of symbols. A message may include one or more of strings (at any length), including characters that may represent letters, numerical digits, punctuation marks and control characters. Common characters use the ASCII (American Standard Code for Information Interchange) standard, which includes definitions for 128 characters, each using 7 or 8 bits per character. - Optionally a step 52 ‘Encrypt Message’ may be executed, where the message is encrypted in order to add an additional level of security to the message delivery mechanism. Alternatively, the message is not encrypted, and the security of the delivery is based on other or none security means, together with the splitting and using of different paths described herein.
- In a step 53 ‘Split Message’ the message content is split into multiple parts (‘slices’). For example, the credit card number “9182 8374 6547” may be split into three non-overlapping parts as described above, being “9182”, “8374” and “6547”. In another non-limiting example, the message may be split into overlapping parts, wherein parts of the message are included in more than a single slice. For example, the credit card number “9182 8374 6547” may be split into the slices set “9182 8374”, “8374 6547”, and “6547 9182” or the alternative set “47918283”, “82837465”, and “74654791”, where each part includes half of the ‘former’ slice and half of the ‘next’ slice (using the cyclic approach, where the last digit is considered to be before the first one). In such an arrangement, any two slices out of three includes the whole message, and as such allows for reconstruction of the sent message even in the case where one of the slices was lost.
- Any number of slices may be used, and the security of the whole message is improved as more slices are used. For example, the message may be split to the bits level, and each bit will be carried as a slice in a separate packet. Referring to the above non-limiting example where the message is the credit card number to be sent as message “9182 8374 6547”, and assuming three slices, where each digit is represented as 8-bit (byte), the number of bits is 8*12=96, hence 96 packets may be sent, each including a single bit. Similarly, four-bit aggregation (nibble) may be used, reducing the packet in the above non-limiting example to 24 packets per the message (96/4=24). Further, 8-bits aggregation (byte) or character-based splitting may equally be used.
- The number of slices can alternatively (or in addition) be dependent upon the number of relay servers available or chosen for the transmission of the message. For example, in the case wherein the message is to be transmitted to three relay servers (such as
relay servers FIGS. 3a-3c above), 3 slices per message are used, where each slice is transmitted via a different relay server. Further, any multiplication of the number of relay servers to be used may equally be the number of slices. For example, in the case where the message is to be transmitted to three relay servers, the number of slices may be 6, 9, or 12, where each relay server respectively handles 2, 3, or 4 slices. - Further, the splitting may not keep the integrity or the order of the original message. For example, the message internal sequence may not be retained. In one non-limiting example, a slice may include parts of the message having fixed (or variable) slicing intervals. Referring to the above non-limiting example where the message is the credit card number to be sent as a message is “9182 8374 6547”, and assuming three slices, the message may be split into the slices set “9275”, “1844”, and “8367”, having a step (‘distance’) of three places (two digits) between each any two digits in the slices. Similarly, assuming the message to be sent includes three octets (bytes) of bits, being “01010101 11110000 00111100”, using two bit intervals forms the slices set “01010011”, “10110010”, and “01110010”. Other forms of interlacing may be equally used. Such non-sequential form provides improved security since no slice includes any meaningful or eligible information, and thus cannot be identified even as part of a message if intercepted. Similarly, the non-sequential slicing may use combining non-adjacent bits, nibbles, bytes, characters, and strings into the slices.
- The splitting non-limiting examples above involved splitting into equal length of slices. Referring to the above non-limiting example where the message is the credit card number to be sent as a message is “9182 8374 6547”, the message was exampled to split into three non-overlapping parts, being “9182”, “8374” and “6547”. In this non-limiting example, all three slices include exactly 4 digits. However, non-equal length of data slicing may as well be used. For example, the above message may be split into three slices being “9”, “182 8374 65”, and “47”, respectively having 1, 9 and 2 digits. In the case of sequential slicing, the destination may still easily reconstruct the original message based on the slice numbering mechanism.
- Padding may be included as part of the slicing scheme. For example, referring to above non-limiting example where the message is the credit card number to be sent as a message is “9182 8374 6547”, and the slicing scheme involves slicing into 3 non-overlapping slices of 5 numbers each, the message may be padded by adding characters in the beginning of the message, or at the end, or both. The added characters may have no impact on the message such as adding ‘SPACE’ characters, or adding non-numbers characters to the numbers based message. For example, the characters T or ‘@’ may be added, amending the message to be “@@9182 8374 6547@”, and the 3 slices are in such a case “@@918”, “28374” and “6547@”. Equal length slices results in equal length packets, thus if intercepted, the packet or the slice length provides no information about the location of the slice in the message. Alternatively (or in addition), the padding scheme may include adding characters or other information any place in the message or slice, not limited to the beginning or end of the message or slice.
- In another non-limiting example, padding is used in order to reduce the eligibility of the slices if intercepted. Preferably, padding is added in a random manner (e.g., random characters or random placing or both) known only to the ultimate destination computer, thus allowing it to reconstruct the original message by removing the added characters or elements.
- Sharing the information about the padding scheme used (for allowing the destination to faithfully recover the original message) may be an integral part of the coordination of the slicing scheme. In one non-limiting example, the slices carry the padding information in the slices. Each packet may include the padding information of the slice included in that packet. Alternatively, a packet includes information about the padding of the other slices. For example, the first character of a slice (or anywhere else in the packet) includes the character used for padding in another slice. The first slice will include the character of the second slice, the second slice will include the character of the third slice, and the third slice will include the character of the first slice. For example, referring to the above non-limiting example where the message is the credit card number to be sent as a message is “9182 8374 6547” and is required to be sent as non-overlapping 3 slices of 6 characters each, the slices may be “@918*2”, “#@8374” and “*654 #7”.
- After the various slices are determined as part of the slicing mechanism in step ‘Split Message’ 53, the slices are sequentially and individually handled, based on a pre-determined order (or randomly). In a ‘Select Next Slice’
step 56, a single slice out of the available slices to be sent is selected to be handled first. For example, the slice including the first part of the message (e.g., the first character or first bit) may be chosen as the first to be handled, sequentially followed by the other slices. Alternatively, a reverse order may be used, where the slice including the last part of the message (e.g., the last character or last bit) may be chosen as the first to be handled and transmitted. Preferably, the slices are handled (and sent) in a random order. In an optional ‘Encrypt Slice’step 57, the slice may be encrypted. It should be noted that thisstep 57 is distinct fromstep 52, where the latter involved encrypting the message as a whole block, whilestep 57 involves encrypting only a part (a single slice) of the message. The encryption in the ‘Encrypt Slice’step 57 can be used as an addition or as an alternative to the whole message encryption of ‘Encrypt Message’step 52. In a ‘Determine Relay server’step 58 the relay server serving as the intermediate node for delivery of the currently selected slice. For example, in the above example shown inFIG. 3a , it was determined that therelay server 14 b will be used for the first slice to be sent. It should be noted that a single relay server per message may equally be used, where all the slices are transported via the single relay server. - In order to determine the relay server to use for each slice in ‘Determine Relay server’
step 58, the source computer holds a list of the IP addresses of the available relay servers that can be used. For each message to be sent, the source computer can select to use all or part of the pool of the available relay servers. Further, the source computer may decide to use only part of the available relay servers for all the messages to be sent. In addition, the source computer may decide to use the same set of relay servers (which may be the all or part of the available ones) for all messages to be sent, or to use a different set of relay servers for each message sent. The selection of relay server to use may be sequential or otherwise orderly planned, or alternatively be a random selection. The selection may further be based on information relating to the relay servers. In one non-limiting example, the location of the relay servers may be used to determine which servers to use. For example, only relay servers which are geographically located outside the country (or continent) in which the source computer is located may only be selected. Similarly, only relay servers which are geographically located outside the country (or continent) in which the ultimate destination computer is located may only be selected. Other information such as past information regarding traffic through the relay servers or other communication related information may be used. - As a non-limiting example, assuming that 5 relay servers are available for use to a source computer, designated as ‘A’, ‘B’, ‘C’, ‘D’ and ‘E’. The source computer may select to use the whole set (‘ABCDE’) or only part of the set such as (‘ABDE’). In the latter case, no slice will be forwarded to the relay server ‘C’ for any message to be sent. Further, the source computer may decide to use the entire set for any message sent, hence any message will be split into at least 5 slices, carried through the 5 relay servers (‘ABCDE’), wherein at least one slice is transferred via each relay server. Alternatively (or in addition), the source computer chooses to split the set of servers into two or more overlapping or non-overlapping groups. For example, three non-overlapping sub-sets will be formed, being ‘AB’, ‘CD’ and E. A first message will use the ‘AB’ sub-set, a second message will use the ‘CD’ sub-set, and a third message will use the ‘E’ relay server, and so on. In another embodiment, the slices will use the relay server in an orderly way (disregarding the messages forming the slices), where a first slice will use a relay server ‘A’, a second slice the relay server ‘B’, and so on, using the cyclic order so that the relay server ‘A’ will be used again after the relay server ‘E’ is used. In case of using a random slice based selection, a first slice message may draw the relay server ‘A’, the next one may draw the relay server ‘D’, and so on. In case of using random message based selection, a first message may draw the relay servers ‘AD’, a next one may draw the relay server ‘BDE’, and so on.
- In another embodiment, the source computer stores only a single relay server IP address, and the first slice is sent to this relay server. Upon receiving the packet from the source computer, the encryption computer sends to the source computer the IP address and any other information required relating to the next relay server to use. The process is repeated in the second relay server, sending to the source computer the third relay server to use and so forth. In the next message to be sent, the process may be initiated by using the first relay server that was used for the former message, or preferably the first slice of the next message will use the relay server whose identity was received after the last slice of the former message was sent.
- The packet to be sent to the determined relay server which includes the selected slice is prepared in a ‘Construct Packet’
step 59. A non-limiting example of apacket 70 is shown inFIG. 7 . TheIP Header field 71 f includes in thedestination field 71 c the IP address of the relay server determined in the ‘Determine Relay server’step 58, and in thesource field 71 d the IP address of the computer transmitting the selected slice. For example, in the above example shown inFIG. 3a , the IP address of thelaptop 12 a will be used as the ‘Source IP Address’ and the IP address of therelay server 14 b will be used as the ‘Destination IP Address’. TheIP Data field 71 g will include the selected slice in field ‘Slice #n’ 71 b (that may be encrypted in the case the data was encrypted in the ‘Encrypt Slice’step 57 or in the ‘Encrypt Message’step 52, or both). Further, theIP Data field 71 g contains information in the field ‘Sequence Identifier’ 71 h regarding the slicing mechanism for allowing the receiving entity to reconstruct the message from the received slices. For example, in the case of slicing based on sequential order, the number of this slice in the whole message is provided. TheIP Data field 71 g further contains in the field ‘Ultimate Destination IP Address’ 71 i the IP address of the computer on the Internet which is the ultimate destination for the whole message, such as the IP address of thecomputer 13 a in the example inFIG. 3a above. The ‘Frame Footer’field 71 a and the ‘Frame Header’field 71 e are added to the packet as required. Hence the constructed packet will be transported over the Internet from the sender computer to a relay server as the first hop, while including all the required information for reconstructing the message out of its slices and about the final destination. - In a ‘Send Packet’
step 49, the packet that was prepared in the ‘Construct Packet’step 59 is actually sent by the source computer to the Internet, where thepacket 70 starts its way towards the specified relay server. - In a ‘Whole Message Sent?’
step 54 the status of the slices is checked. In the case all the slices forming a message were handled and sent, the message related activity is ended in the ‘END’step 55. If not all the slices were handled, a slice that was not yet selected is selected to be handled in the ‘Select Next Slice’step 56, and being handled as described above. Hence, the process will be repeated for all the available slices until all the slices of the message received in ‘Receive Message’step 51 are sent encapsulated as packets. While theflow chart 50 suggests that a packet containing a slice is transmitted before another slice is selected for handling, the arrangement equally relates to preparing all slices first and afterwards sending all the packets containing those slices. - In the
flow chart 50 described above, following the message slicing in the ‘Split Message’step 53, one slice is chosen at a time and sent in a packet in the ‘Send packet’step 49. Alternatively (or in addition), few or all of the packets, including the slices, are first stored, and afterwards sent in an orderly manner, or preferably in a random manner. In the latter case, the sequence of sending the packet provides no information regarding the order of the slices in the original packet. - The relay server serving as an intermediate node (such as
server 14 b in the above example shown inFIG. 3a ) generally executes theflow chart 90 shown inFIG. 9a . The first step 91 ‘Receive Packet’ involves receiving thepacket 70 prepared by the source computer in the ‘Construct Packet’step 59 and sent in the ‘Send Packet’step 49. In the case wherein a part of, or the entire packet, is encrypted (for example for added security), the encrypted data is decrypted in the ‘Decrypt Packet’step 92. In particular, if the ‘Ultimate Destination IP Address’field 71 i is encrypted, this field is preferably decrypted in order to allow proper sending of the slice to the required ultimate destination. The various fields included in the packet are identified in an ‘Identify Fields’step 93. In particular, theIP address 71 i of the ultimate destination is identified in a ‘Determine Ultimate Destination’step 94. - Next, a
packet 80 shown inFIG. 8 is constructed by the relay server as part of a ‘Construct Packet’step 95. Thepacket 80 contains anIP Header 81 f which includes the ‘Relay server IP Address’ 71 c as identifying the packet sender, and the ‘Ultimate Destination IP Address’field 71 i identifying the message ultimate receiver. The original message IP address may also be included in theIP Data field 81 g, as the ‘Source IP Address’ 71 d, intended to be used by the ultimate message destination in order to identify the message originator. The ‘Frame Footer’field 81 a and the ‘Frame Header’field 81 e are added as required, to form an eligible packet that can be routed via the Internet. Thepacket 80 is then sent to the Internet in a ‘Send Packet’ step %, and thus completing the relaying of the slice in an ‘END’step 97. - The computer, serving as the message destination node (such as
desktop computer 13 c in the above example inFIG. 3a ), generally executes theflow chart 60 shown inFIG. 6 . The first step 61 ‘Receive Packet’ involves receiving thepacket 80 prepared by the encryption router in the ‘Construct Packet’step 95 and sent in ‘Send Packet’step 96 inFIG. 9a , follows by identifying the various fields ofpacket 80 in a ‘Identify Fields’step 62. In the case the slice was encrypted in the ‘Encrypt Slice’ step 57 (inFIG. 5 ); the mating decrypting algorithm is executed in the ‘Decrypt Slice’step 63, in order to recover the original slice. The slice and all other related information carried in thepacket 80 are stored as part of a ‘Store Information’step 64. In the case that only part of the slices were received, or in case the received slices cannot be used for forming the original message when checked as part of a ‘All Packets Received?’step 65, the destination computer reverts to wait in order to receive the rest of the packets required for reconstructing the original message in the ‘Receive Packet’step 61. In the case that all the packets relating to a specific message are received, the various slices are properly combined in order to reconstruct the original message in a ‘Reconstruct Message’step 66. The mating or reversing process to the splitting process used in the ‘Split Message’ step 53 (inFIG. 5 ) is executed in order to recover the original message before the splitting. In the case that the whole message was encrypted in the ‘Encrypt Message’ step 52 (inFIG. 5 ), the mating decrypting algorithm is executed in the ‘Decrypt Message’step 67, in order to recover the original pre-encryption message. The recovered message may be used by the destination computer in a ‘Use Message’step 68. - While it has been exampled in
FIGS. 5-9 a above for the case wherein a single relay server is used for a slice delivery mechanism, the arrangement equally applies to using two or more relay servers for the transfer of a single slice from a source computer to a destination computer. The providing of additional hops in the transport mechanism improves the communication security. For example, since the packets are delivered over the Internet having in the IP header which is neither the IP address of the source nor the ultimate destination, the packets are less vulnerable to IP addresses based interception. A non-limiting example of delivery of a slice using two relay servers is described inFIG. 4 above. The computer, serving as the relay server (such as therelay server 14 c in the above example inFIG. 4 ), generally executes theflow chart 98 shown inFIG. 9b , which is based on theflow chart 90 shown inFIG. 9a . In such a case, the intermediate relay server sends the packet including a slice not directly to the ultimate destination (such asdesktop computer 13 c inFIG. 4 example), but rather to another intermediate relay server (such asrelay server 14 a inFIG. 4 example). After determining the relay server to be used for the next hop in a ‘Determine Next Relay server’step 99, apacket 100 shown isFIG. 10 is composed in a ‘Construct Packet’step 95. This packet contains in itsIP Header 101 b the ‘next’ relay server IP address in the ‘Next Relay server IP Address’field 101 d (as the packet destination), and the current relay server IP address as the source address in the ‘Current Relay server IP Address’field 101 f. TheIP data 101 c of thepacket 100 contains both the ‘Source IP Address’field 71 d (as in packet 80) and the ‘Ultimate Destination Address IP Address’field 71 i (as in packet 70). The ‘Frame Footer’field 101 a and the ‘Frame Header’field 101 e are added as required to form an eligible packet that can be routed via the Internet, and the formedpacket 100 is then sent in ‘Send Packet’ step %, ending the retransmission process in the ‘END’step 97. Theflow chart 98 is repeated in all intermediate relay servers serving as hops for a slice, except the ‘last’ relay server which sends the slice to the ultimate destination, and thus executingflow chart 90 described above. - A relay server may serve one or multiple source computers, and may be used for relaying a single slice or multiple slices of a message. Preferably, the anonymity and untraceability may be improved and better protection against traffic analysis can be provided by padding all outgoing packets to a constant length, fixing a constant sending rate by sending null or dummy packets, and other means of unifying the forwarded packets. Further, the slices-including packets from the various computer sources (or from other relay servers in case of multi-hop) may be scrambled and forwarded in an order not based on the input order, such as by randomly selecting the packets to be relayed. Other techniques such as Chaum mixes may be used or the purpose of non-repeating and hiding the correspondences between input and output packets. Further, a relay server may combine multiple slices originated from multiple senders (source computers or other relay servers) to a single message or packet, which is sent to another relay server which then split it into separated slices, making it difficult to attacker to perform traffic analysis.
- The arrangement was exampled above for the case wherein a message is split into multiple slices. Alternatively, a message may not be partitioned and sent as a single slice in a single packet. In one embodiment, all the messages are sent over the Internet without being sliced. In another embodiment, the number of slices per a message is variable. For example, the number of slices of a message is randomly being selected per message, where a single slice (number of slices=1) may be selected for a message. In such a case the communication security is enhanced since the packet including the non-partitioned message is carried in the Internet using packets without an IP header containing both the IP address of the source and the ultimate destination, and thus offering a higher degree of security.
- In order for the ultimate destination computer to reconstruct the received slices, the method and the parameters used for the slicing mechanism should be known to it. For example, the destination computer should know if a non-overlapping or an overlapping partition is used. If non-overlapping splitting is used, such as using sequential and equal-length character-based slicing where each slice includes one or more characters, the ultimate destination computer needs to know how many slices are forming the original message, or how many characters are included in each slice. In the example above of the credit-card number containing twelve characters which are split into three slices having four characters each, the ultimate destination computer needs to know that three slices are forming the original credit-card number. Alternatively (or in addition), the ultimate destination computer needs to know that each slice contains exactly four characters out of the twelve characters consisting of the original message.
- In one embodiment, the splitting mechanism is fixed and is not changed over time or per message. All messages sent by all sources are using the same mechanism, which is also known in advance to all the ultimate destination computers. For example, the splitting mechanism for all messages to-be-sent may consist of splitting into 3 non-overlapping slices. Hence, all the ultimate destination computers will receive exactly three packets containing exactly three slices, thus receiving three packets/slices enables the composing of the original message from its three parts.
- In an alternative embodiment, messages are delivered in the network using different splitting schemes, using different parameters for same splitting schemes or both. In one non-limiting example, each of the potential sources is assigned a splitting scheme or a parameter of a specific splitting scheme. For example, some of the source computers in the network will only use sequential slicing, while others may use non-sequential slicing. Further, some of the source computers assigned to use sequential slicing will only use a specific number of slices, while the others will only use a different number of slices per message. For example, some may use 3 slices per message while others will only use 4 slices per message. The potential ultimate destination computers have a look-up table which associates for each source computer (e.g., identified by its IP address) the splitting scheme and parameter used by this source computer. Hence, in the example shown above in
FIGS. 3a-c , thedestination computer 13 c will identify thesource computer 12 a (by its IP address) upon receiving the first packet associated with it. In this example, the look-up table stored in thedestination computer 13 c associates sequential, non-overlapping, and 3 slices per message to thisspecific source computer 12 a, hence thedestination computer 13 c waits until the entire 3 packets (including 3 slices) are received, and then the slices are sequentially combined to form the original message. - In an alternative embodiment, the source computer independently selects which using splitting scheme to use, or which parameter to use for the selected splitting scheme, or both. These selections are not coordinated with any ultimate destination computer or with any other entity in the network. The selection of which splitting scheme to use or the parameter to be used (or both) may be fixed and unchanged over time or relating to any specific message. Alternatively, the selection may be message dependent. In one embodiment, the source computer may select, for each message to be sent, the slicing scheme or the parameter to use in a scheme (or both) from a list of options. The selection may be based on randomness, wherein the slicing method or the parameter to be used (or both) are randomly selected from the options space. Alternatively (or additionally), the selection may make use of the numbering of the messages to be sent. For example, the first message will use a specific slicing scheme, the next message will use another pre-determined slicing method and the next one will use a distinct third slicing method. The selection may be cyclic covering part or all of the set of possible slicing schemes or parameters (or both). In another alternative, the selection is based on the message ultimate destination, where a different slicing scheme (or parameters or both) is associated with each potential ultimate destination. In yet another alternative, the user of the source computer or another application executed in this computer selects the slicing scheme or parameter. For example regarding the above example of the 12-digit credit card number, the user who enters the credit card number may be asked to determine the number of slices to use for this message. In yet another alternative, the selection is based on timing measuring, such as time-of-day (TOD). For example, one selection will be used on a daily basis from 2.00 AM to 3.00 AM, a different selection from 3.00 AM to 4.00 AM and so on, cycling in a 24-hour day. Similarly, each day of the week may use different selection. Any combination of the above schemes may be equally used.
- In the case where the source computer independently selects a slicing scheme or a parameter in a specific slicing scheme (or both), it is required that this selection is coordinated with the ultimate destination computer. Such coordination allows the latter to adequately combine the received slices by reversing the slicing process in order to faithfully reconstruct the original message sent by the source computer. In one embodiment, the information about the slicing scheme used is encapsulated together with the slices in the slice-containing packets sent. In one non-limiting example, the
packet 70 shown inFIG. 7 contains in theIP Data 71 g (and further in theIP Data 81 g in packet 80) an additional field including the required information regarding the slicing scheme. Hence, upon the receiving of packets, the ultimate destination computer decodes the slicing scheme information and uses it to reconstruct the original message sent. The slicing information may be contained in a single packet, such as the first packet to be sent, or the packet including the slice having the first piece of data of the message. Similarly, the last packet to be sent or the packet including the slice having the last piece of data of the message may be used for carrying the slicing scheme information. Alternatively, the slicing scheme information may be repeated in all packets sent, allowing the ultimate destination computer to decode the slicing scheme from any of the received packets. Preferably, the information regarding the slicing scheme is split and carried (non-overlapping or overlapping) over few packets, or over all the packets sent carrying the message. Such split provides the advantage that even in the case that one or multiple packets are intercepted; the slicing scheme cannot be obtained by the interceptor, thus offering a higher degree of security for the message delivery. - In an alternative embodiment, the coordination between the message sender (the source computer) and the receiver (the ultimate destination computer) regarding the slicing scheme uses a dedicated packet including the required information. In this case, sending the packets including message slices is preceded by sending a dedicated packet (not including any part of the message) alerting the ultimate destination computer regarding the slicing scheme used for the message upcoming in the next packet or packets. Preferably, such message will be relayed through a relay server (similar to a slice carrying packet) to improve its delivery security. Alternatively (or in addition), such dedicated slicing scheme information packet is sent after all the slice-carrying packets are transmitted or between the slice-carrying packets.
- In yet another embodiment, the slicing scheme to be used (or the parameter used or both) is determined independently by the ultimate destination computer. All the techniques described above regarding selection of a slicing scheme by the source computer can equally be used by the ultimate destination computer. Upon making the proper selection of a slicing scheme, the selection is to be notified to the source computer, which in turn executes the scheme on the message to be sent. The slicing scheme to be used may be sent to the source computer when the ultimate destination computer becomes aware that a message is about to be sent to it from the source computer. In one non-limiting example, the source computer notifies the ultimate destination computer that a message intended for it has been received, and the ultimate destination computer replies with the slicing scheme to be used for this message. Alternatively (or additionally), the ultimate destination computer may periodically (e.g., once a day or every hour) and automatically (without waiting from any external trigger) send to the source computer information about the slicing scheme to be used.
- In the case wherein the ultimate destination computer expects messages from multiple source computers, the same slicing scheme may be used for all those source computers, or alternatively a different slicing scheme may be used for each source computer.
- In one embodiment, the slicing scheme is centrally controlled, as an alternative or in addition to the selection by the source or ultimate destination computers. In this case, a server connected to the Internet is functioning as the ‘manager’ of the slicing method. It can be a dedicated server, such as
server 14 a inFIGS. 3a-3c above, which is not involved in the message delivery as a relay server, or alternatively a relay server can double as the manager, such as therelay server 14 b. The manager selects the slicing scheme (or slicing parameters or both) to be used by part or all of the source and ultimate destination computers. The selecting of the slicing scheme may use any of the methods described above, such as the selection by source or destination computers. After a slicing scheme is selected, it is shared with the source computers or the ultimate destination computers or both. The same slicing scheme may be used for all source and ultimate destination computers connected. Alternatively (or in addition), the various computers will grouped into multiple groups, each group include one or more source computer and one or more ultimate destination computer, which are involved in message delivery. The manager may assign a different slicing scheme for each group for improved security. Further, few managers may be employed, each associated with a different group. - In one non-limiting example, the manager sends the updated slicing scheme to be used periodically to all or a group of the source and ultimate destination computers. For example, such delivery may take place once a day or every hour. Alternatively and preferably, the periods between consecutive transmissions have random length. In another example, prior to slicing a message, a source computer sends a request for a slicing scheme to the manager, which in turn replies with a selected slicing scheme to be used. The ultimate destination is notified of the slicing scheme used by the source computer as described above. Alternatively, the ultimate destination computer communicates with the manager before the reconstructing of the original message from its slices, in order to be notified by the manager which slicing scheme was used by the source computer for splitting.
- As shown in
FIG. 4 above, the security of the message delivery may be improved by using multi-hop relaying, wherein a slice in a packet is transported via multiple relay servers before reaching the ultimate destination computer. In one embodiment, the number of hops of a slice is set by the source computer. In such a case, the packet sent further includes in the ‘IP Data’field 71 g of packet 70 a field of “Hops Left”, serving as a counter for counting the number of left hops. A similar field will be embedded in the ‘IP Data’field 101 c ofpacket 100, which is sent from one relay server to the ‘next’ one. Each relay server receiving the packet decrements the “Hops Left” counter by one before sending it further, thus this counter is gradually decremented through the packet path. If the result after decrementing by one is zero (hence the counter was received as one), the relay server sends the packet to the ultimate destination computer. If not, the packet is sent (with the counter decreased by one) to another relay server. - The number of hops to be used by a source computer may be fixed, changed for each slice or for each message, or any combination thereof. Further, the number of hops may be centrally controlled as part of the slicing scheme by a manager server as described above, or may be independently determined by the source computer. Preferably, the number of hops is randomly selected for each slice or message sent.
- In one embodiment, the number of hops of a slice is determined by a relay server. For example, the relay server that receives a slice from a source computer determines the number of hops for this slice. The selection of the number of hops may use the same schemes described above regarding such selection in the source computer. In an alternative embodiment, a relay server randomly and independently makes the decision whether to send the slice to another relay server or to the ultimate destination computer. In such a case, there is no information anywhere in the network regarding the number of hops of a slice, adding to its security. For example, all the relay servers randomly make this decision with a probability of 50% (50% probability of sending to another relay server and 50% probability of sending to the ultimate relay server). Statistically, a slice will be forwarded to the ultimate destination after a single hop with a probability of 50%, after 2 hops with a probability of 75%, after 3 hops with a probability of 87.5% and so forth.
- Encryption may be added to enhance the security of the message delivery. In one non-limiting example, the message is encrypted before the slicing, as shown in ‘Encrypt Message’
step 52 inFIG. 5 . Such encryption may involve only the message, or in addition the appended information such as the IP address of the ultimate destination computer. The encryption allows the message slices to be unintelligible when carried over the Internet, still enabling the ultimate destination to decrypt the original message after combining the received message slices as described in ‘Decrypt Message’step 67 shown inFIG. 6 , thus recovering the original message before its encryption. Alternatively, or in addition, a message slice may be encrypted before encapsulation into a packet, as described in ‘Encrypt Slice’step 57. Such encryption allows the message slices to be unintelligible when carried over the Internet, still enabling the ultimate destination to decrypt the original message slice after receiving it as described in ‘Decrypt Slice’step 63 shown inFIG. 6 , thus recovering the original message slice before its encryption. In one non-limiting example, the encryption of either the whole message or of the message slices is not changed or tampered throughout the delivery process, allowing for end-to-end encryption. Any type of encryption may be used, preferably end-to-end encryption such as the RSA algorithm described above. In an exemplary scenario, the encryption method used is changed from message to message, or preferably from slice to slice. In the latter case, the same encryption method may be used. Preferably, a parameter of the encryption method used may be changed from slice to slice. For example, a different private key or a different public key (or both) may be used for each slice sent (or for each message sent). In such a case, knowing the encryption method used or a parameter used for one slice (or message) still proved the other slices (or other messages) intact and less vulnerable. - In one embodiment, a packet carrying a slice further includes information about the encryption method (or parameter) of another slice. In the example of splitting a message into 3 slices, the first slice includes information about the encryption of the second slice, the second slice includes information about the encryption of the third slice and the third slice includes information about the encryption of the first slice. Hence, intercepting of only a single slice provides no simple ability to decipher the slice, since this slice encryption information is carried by another slice. The ultimate destination computer, upon receiving of all the packets carrying all the slices, can use the embedded information to decrypt whole slices into the original slices, thus allowing for reconstructing the original message.
- In one non-limiting example, only part of the slice or the message path over the Internet is encrypted. For example, the encryption involves only the communication path between the message sender and the relay server. Such encryption may involve only the message slice, or in addition the appended information such as the IP address of the ultimate destination computer, the slicing scheme related information or the IP address of the source computer. Alternatively or in addition, the encryption involves only the communication path between the relay server and the ultimate destination. In the case of using multi-hops, the encryption may involve only the communication path between the relay servers. In a preferred embodiment, a different encryption is used for each segment of the slice delivery path. The different encryption may include different algorithms, or different parameters (e.g., public key, private key or both) of the same encryption algorithm. In such a configuration, a first encryption mechanism is used between the message originator and the first (or the only) relay server. The relay server decrypts the packet including the slice and other information, as described in ‘Decrypt Packet’
step 92 inFIGS. 9a and 9b . Before transmitting the slice to the next hop, being another relay server or the ultimate destination, the decrypted slice is encrypted again using a different encryption scheme, and only then sent in ‘Send Packet’ step % inFIGS. 9a and 9b . Using a different encryption scheme for each segment of the communication improves the delivery security. - Alternatively or in addition, part or all of the slice paths over the Internet are encrypted or otherwise secured, using standard or proprietary end-to-end encryption based protocols. In one non-limiting example, the encryption involves only the communication path between the message sender and the relay server, where the source computer and the relay servers are the endpoints of the protocol. In another non-limiting example, the encryption involves only the communication path between the ultimate destination computer and the relay server, where the ultimate destination computer and the relay servers are the endpoints of the protocol. In the case of multi-hop structure, the communication path involves the communication between two relay servers. The message to be encrypted related to the message slice carried, which may be appended by the IP addresses or the source computer, the ultimate destination computer, and slicing scheme related information. Secured protocols used may be
Layer 4 or upper layers such as SSL, TLS and SSH, or Later 3 and lower layers such as IPsec. - Any device which is IP addressable in the Internet and can execute the
flow chart 90 inFIG. 9a or theflow chart 98 inFIG. 9b may serve as a relay server. A relay server may be a dedicated device mainly (or only) involved in relaying the message slices. Further, a relay server may be involved with another server or servers, such as a mail server, database server, web server, FTP server or proxy server. The relay server may be collocated with another server (of a different type), or can be integrated with it. In the latter case, the two servers may share hardware resources such as an enclosure, a processor, storage, and peripherals. Similarly, an Internet connection and an IP address may be shared. Preferably, the relay servers are used together with servers having disparate geographical locations. Further, while relay servers were exampled inFIGS. 3a -4 as devices which are distinct from the source computer or the ultimate destination computer, it should be noted that any desktop, laptop or workstation computer may serve as a relay server by executing theflow chart 90 inFIG. 9a or theflow chart 98 inFIG. 9b . Further, such computer may run client programs or applications. Furthermore, any computer serving as source computer or as an ultimate destination computer may also serve as a relay server, relaying communication between other source computers or other ultimate destination computers. For example,laptop 12 a inFIGS. 3a-3c is a source computer, that can also serve as a relay server for a message sent fromlaptop 12 b as a sender todesktop computer 13 b acting as the recipient. Preferably,laptop 12 a serves simultaneously as both a source computer and as a relay server, such that packets sent to and from this computer cannot be easily interpreted if intercepted, since two different messages are involved. - Any device which is IP addressable in the Internet and can execute the
flow chart 50 inFIG. 5 may serve as the source device of the message. A source computer (being desktop computer, laptop computer or a workstation computer) may be a dedicated device mainly (or only) involved in sending the message. Further, a source device or source computer may be involved with another program or application, and with any program being client or server software. The source computer may be collocated or integrated with another computer or any other processing device. The two programs may share hardware resources such as an enclosure, a processor, storage and peripherals. Similarly, an Internet connection and an IP address may be shared. Further, theflow chart 50 inFIG. 5 may be integrated into another application or program, for example the application creating the message to be sent, such as a Web browser and email applications, and not available to other applications or programs. Alternatively, theflow chart 50 inFIG. 5 may be an individual module operating as an independent process, program or application, which is separated from the application originating the message, and specifically used when called for by a user or by another application. Alternatively, the source computer functionality is a function provided by a kernel unit of an operating system (OS). - Any device which is IP addressable in the Internet and can execute the
flow chart 60 inFIG. 6 may serve as the ultimate destination device of the message. An ultimate destination computer (being desktop computer, laptop computer or a workstation computer) may be a dedicated device mainly (or only) involved in receiving the message. Further, an ultimate destination computer may be involved with another program or application, and with any program being client or server software. The two programs may share hardware resources such as an enclosure, storage, a processor and peripherals. Similarly, an Internet connection and an IP address may be shared. The ultimate destination computer may be collocated or integrated with another computer or any other processing device. Further, theflow chart 60 inFIG. 6 may be integrated into another application or program, for example the application creating the message to be sent, such as a Web browser and email applications. Alternatively, theflow chart 60 inFIG. 6 may be an individual module, program or application, which is separated from the application originating the message, and specifically used when called for by a user or by another application. Alternatively, the source computer functionality is a function provided by a kernel unit of an operating system (OS). - In one aspect, a relay server (or all the relay servers involved in a message delivery) may further partition the slice into more (e.g., smaller) sub-slices. These sub-slices may be sent to the recipient similar to the way the slice is to be delivered, to be combined with the other slices at the ultimate destination computer. In this scenario, the
flow chart 50 inFIG. 5 is executed by the relay server, wherein the message involved is the message slice to be further sliced (that may be appended with IP addresses of the source computer or the ultimate destination computer or both, and related slicing scheme). Alternatively, or in addition, the sub-slices are sent through other relay servers to a relay server acting as an intermediate destination, which reconstructs the original slice from its sub-slices, and the reconstructed message slice is handled then as a regular message slice. In the latter scenario, theflow chart 60 inFIG. 6 is executed by the relay server, wherein the message involved to be reconstructed is the message slice that was further sliced (that may be appended with the IP addresses of the source computer or the ultimate destination computer or both, and related slicing scheme). The slicing scheme or the routing scheme (or both) used may be the same as the ones used by the source computer, or alternatively distinct schemes may be used. In general, all slicing schemes and routing schemes described may be used for delivering the sub-slices. - As described above, randomness may be used in order to increase the security of the message or slice delivery, by affecting a facility, feature or otherwise, thus making it harder for interpreting by an interceptor. Randomness is commonly implemented by using random numbers, defined as a sequence of numbers or symbols that lack any pattern and thus appear random, are often generated by a random number generator. Randomness for security is also described in IETF RFC 1750 “Randomness Recommendations for Security” (December 1994), which is incorporated in its entirety for all purposes as if fully set forth herein. A random number generator (having either analog or digital output) can be hardware based, using a physical process such as thermal noise, shot noise, nuclear decaying radiation, photoelectric effect or other quantum phenomena. Alternatively, or in addition, the generation of the random numbers can be software based, using a processor executing an algorithm for generating pseudo-random numbers which approximates the properties of random numbers.
- While some arrangements are exampled above regarding the Internet, it is apparent that the disclosure equally applies to any network such as a LAN (Local Area Network), a WAN (Wide Area Network), or a MAN (Metropolitan Area Network). Further, the arrangement equally applies to any digital data network connecting multiple devices, wherein multiple distinct communication paths may be formed between a sender and a receiver of the message. Further, non-packet based networks and networks which use protocols other than IP (e.g., cell-based networks such as ATM) may equally use the arrangement. In addition, while IP addresses have been exampled herein for identification of the entities involved in the communication (such as the source and ultimate destination computers and the intermediate servers), any other type of addresses or identifiers (involving any of the OSI layers) may be equally used. For example, MAC (Medium Access Control) address may be used as an alternative or in addition to the IP address.
- The applications that can use the arrangement include Electronic Mail (E-Mail) and electronic commerce such as banking, shopping, products, or services purchase. Further, the arrangement may be used for carrying sensitive information such as passwords and public (or private) encryption keys. Messages carried according to the arrangement may include voice, text, images, video, facsimile, characters, numbers or any other digitally represented information. In one aspect, the messages are carrying multimedia information, such as audio or video. The multimedia is carried as part of a one-way or interactive audio or video service. The arrangement may be equally used for carrying any real-time or near-real-time information. The carried audio may be speech or music, and may serve telephony such as VoIP or an Internet radio service. Similarly, the carried video may be part of video services over the Internet such as video conferencing and IPTV (IP Television).
- There is a growing widespread use of the Internet for carrying multimedia, such as video and audio. Various audio services include Internet-radio stations and VoIP (Voice-over-IP). Video services over the Internet include video conferencing and IPTV (IP Television). In most cases, the multimedia service is a real-time (or near real-time) application, and thus sensitive to delays over the Internet. In particular, two-way services such a VoIP or other telephony services and video-conferencing are delay sensitive.
- A firewall is known in the art implemented as a hardware or as a software (or a combination thereof) device that connects two networks, and is designed to block unauthorized access while permitting authorized communication. A typical configuration is shown as
system 110 inFIG. 11 , wherein thefirewall device 112 is connected between thepublic Internet 11 and aLAN 111, the latter is commonly an Intranet, or any other administered, internal, trusted or private network. All messages entering or leaving the Intranet pass through the firewall, which inspects each message and blocks those that do not meet the specified security criteria and rules. Firewalls can operate at the network layer or at the application layer, and commonly use techniques such as packet filtering and application gateway functionalities. - A source computer or all or part of its associated functionality may be similarly placed between two networks, as exampled in
system 120 inFIG. 12 . Thedevice 121 is connected between the externalpublic Internet network 11 and the Intranet orLAN 111, and can be co-located with thefirewall 112. Any packets outgoing from theLAN 111 are inspected by thedevice 121, acting as a source computer. All of the outgoing packets are treated as messages to be split as part of theflow chart 50 inFIG. 5 , executed in thecomputer 121. Alternatively, only part of the outgoing packets are selected for further handling and are selected by applying specific rules, while the non-selected packets are passed transparently. For example, only packet destined to specific IP addresses may be handled. The IP packets as a whole may be treated as a message, or preferably may be analyzed for the payload and the destination of the IP, and accordingly processed. Further, thecomputer 121 may serve as an ultimate destination computer, executing theflow chart 60 inFIG. 6 , or as both source and ultimate destination computers. In such configuration, there is no need for any changes or any added software or hardware as part of the LAN, and all hosts connected in theLAN 111 can use the secured communication offered by thecomputer 121. In one preferred embodiment, the source computer functionality or the ultimate destination computer functionality (or both) are integrated with a router, a gateway, or thefirewall 112, resulting in a single device (or function) combining both the protection for communication from the Internet and secured communication for sending data to (and receiving data from) the Internet. The integration with the router, gateway or thefirewall 112 may involve using the same Internet connection, using the same LAN connection, and sharing the same resources such as sharing an enclosure, a power source, a location, a processor, a storage/memory or connected peripherals. Similarly, a firewall may further include part or all of the functionalities of a relay server, or to function as both a relay server and a source computer, or to function as both a source computer, an ultimate destination computer and a relay server. - Referring now to
FIG. 15a showing system 150, which correspond to thesystem 30 shown inFIG. 3a . Thelaptop computer 12 a is shown connected to the Internet viaLAN 111 a anddevice 151 a, for example located as part of an enterprise. As described above,device 151 a may correspond todevice 121 described inFIG. 12 above, or may be a source computer executing part or all of flow-chart 50 inFIG. 5 .Computer 12 a may be only the source of the message to be sent over the Internet, or may execute parts of flow-chart 50 inFIG. 5 . Similarly,desktop computer 14 b connects to the Internet via LAN 111 d anddevice 151 d, anddesktop computer 14 d connects to the Internet via LAN 111 c anddevice 151 c. Similarly, thedestination computer 13 c connects to the Internet via LAN 111 b anddevice 151 b. Similar toFIG. 3a , one of the slices is routed over the Internet, but relayed via thedevice 151 d (serving as a relay server executing part or all of theflow charts 90 or 98) rather than via thedesktop computer 13 b as shown inFIG. 3a . Hence thedevice 151 d is functioning both as a source computer and as a relay server, as well as other functionalities such as a firewall. Similarlysystem 155 is shown inFIG. 15b correspond system 32 inFIG. 3b , describing a slice routing wherein thedevice 151 c serves as a relay server. - An Internet packet typically includes a value of Time-to-live (TTL) for avoiding the case of packet looping endlessly. The initial TTL value is set in the header of the packet, and each router in the packet path subtracts one from the TTL field, and the packet is discarded upon the value exhaustion. Since the packets containing the message slices are routed via different and disparately located relay servers, the TTL of the packets reaching the ultimate destination computer are expected to vary. Hence, in case of message slices arriving at the ultimate destination computer having similar TTL values (small TTL differences); this can serve as an indication of a spoofing or other type of masquerading.
- A Network Address Translation (NAT) is known in the art as a process that allows a device (such as a router, gateway, computer and firewall) to act as an agent between the public network (such as the Internet) and a local, internal or private network. Using NAT, a single IP address represents the entire group of hosts in the internal network to an external entity. The NAT is described in RFC 1631 and in Cisco Systems, Inc. Document ID: 6450 (January 2006): “How NAT Works”, which is incorporated in its entirety for all purposes as if fully set forth herein. Any of the entities involved in the arrangement, such as the
flow chart 60 associated with the ultimate destination computer andflow chart 50 associated with the source computer, as well as the relay server functionality, may be co- or integrated with a computer, a router, a gateway or the firewall having NAT capability, resulting in a single device (or function) combining both the protection for communication from the Internet and secured communication for sending data to (and receiving data from) the Internet. The integration with the computer, router, gateway or the firewall may involve using the same Internet connection, using the same LAN connection, and sharing the same resources such as sharing an enclosure, a power source, a location, a processor, a storage/memory or connected peripherals. In such a case, the NAT process will slice the outgoing message according to the slicing scheme, and then assigns the IP to the outgoing packet. Similarly, when receiving the message slices, the message may be reconstructed before being sent to the destination computer. - Transport Layer protocols, such as TCP and UDP (User Datagram Protocol) specify a source and destination port number in the packet headers. A port number is a 16-bit unsigned integer, thus ranging from 0 to 65535. Port numbers using and their allocation are described in RFC 814, RFC 1078, RFC 1700 and RFC 3232. The port number may be used for providing information regarding the slicing scheme (e.g., such as the number of slices, slice numbering), the routing scheme, the encryption used, the source computer identity (such as IP address) or the ultimate destination identity. The port number may further be used for any coordination between the source computer, the ultimate destination computer, the relay servers and the manager.
- In one aspect, the packets carrying the message slices are sent from the source computer (or the relay server involved in further message slices splitting) using multiple IP addresses as Source IP address in the
field 71 d. In such non-limiting example, the message slices intercepted or eavesdropped cannot be easily identified as originating from the source computer or as carrying part of the same message. The sender or an intermediate server method may further be preceded by the step of storing a list composed of a succession of available IP addresses that can be used by the source computer. As part of the routing scheme, an associating scheme may associate a message slice to each of the source IP addresses in the list, such that a distinct IP address is associated with each message slice. The associating scheme may associate part or all of the available IP addresses in the list with a packet including a message slice. The associating scheme may sequentially or randomly associate the IP addresses in the list with the succession of packets including the message slices. The IP addresses may be selected for association from the list based on a former selection for a message or message slice, or based on the current date or the current TOD (Time-of-Day). Once an IP address is selected for a packet including a message slice to be sent, this IP address is used in the packet IP header as the source IP, similar to the mechanism used for NAT. Further, the packet port field can be used in order to associate packets with a specific source computer or to associate a group of packets having slices of the same sent message. - In order to disguise the packets including the message slices, the source computer (as well as the relay servers) may hide these packets by sending dummy or null packets (containing no useful information or any meaningful data). The source computer and the relay servers may send such null packets before or after the sending of the actual message slices, between the message-slices carrying packets or a combination of the above. An eavesdropper thus intercepts a large amount of packets, which makes it complex to identify and sort the meaningful packets out of the total intercepted ones. The null packets may be destined for servers and other entities not related to the message delivery. Alternatively (or in addition), the null packets may be sent to available relay servers which are not associated with relaying the message slices.
- The entities involved in the business aspects of the information device are exampled in
system 30 inFIG. 3a . The vendor provides therelay servers source computer 12 a and the operator of theultimate destination computer 13 c, which execute the method as a program, application or process, either as independent dedicated program or integrated with another application. Purchasing the software may be through any distribution channels, such as wholesale or retail stores. However, the terms ‘user’ and ‘owner’ are used interchangeably hereinafter. Any distribution channel dealing with software, electronic or electrical appliances, in particular those channels involving distribution of software relating to communication equipment, may include the software as part of their product portfolio. In one case, the Information Service Provider (ISP) is involved in connecting the user to the Internet, and provides the security method described herein as an additional service. - In addition to the equipment cost, the costs associated with the operation of the information device are as follows: a. Communication service. The costs associated with the communication sessions. b. ISP, in the case of using the Internet. c. Information service. The costs associated with operating the relay servers. In general, billing the user for communication services by the provider may be: based on a. One-time fee; b. Flat fee for a period (e.g. monthly); c. per communication session; d. per lengths of communication sessions or messages; or any combination of the above.
- A Next Generation Network (NGN) is a packet based network which can provide services including telecommunication services and able to make use of multiple broadband, Quality of Service (QoS)—enabled transport technologies and in which service-related functions are independent from underlying transport-related technologies. The NGN offers unrestricted access by users to different service providers. The NGN operator or any service provider using the NGN may offer anonymity or security services based on the method described herein.
- In one aspect, source routing is used for transferring part or all of the slices encapsulated packets between the source computer and the relay servers, between the relay servers and the ultimate destination computer, between relay servers (in case of multi hop), and between the source computer and the ultimate destination computer. The latter is example in
system 145 inFIG. 14 , describing the paths of two slices from thesource computer 12 a and theultimate destination computer 13 c. A packet including one of the slices is routed using source routing in the path including 141 a, 141 i, 141 j and 141 h over therespective communication links paths respective communication links - In one aspect the arrangement is used for security as part of cloud computing deployment. For example, messages exchanged between a cloud services provider and a user or as part of the cloud computing infrastructure. The cloud services may include Cloud Software as a Service (SaaS), Cloud Platform as a Service (PaaS) and Cloud Infrastructure as a Service (IaaS), and the method described herein may be used as part of the implementing security measures such as described in the publication “Security Guidance for Critical Areas of Focus in Cloud Computing V2.1”, Prepared by the Cloud Security Alliance, December 2009, which is incorporated in its entirety for all purposes as if fully set forth herein. A secured distributed storage may be provided by using one aspect. In such application, a file, a message or any other data to be stored, is split as described herein, and transferred over the Internet (or any LAN or IP based network) to be stored in a plurality of servers. In the non-limiting example shown in
FIGS. 3a-3c above, theservers source computer 12 a, preferably in addition to serving as relay servers. Theultimate destination computer 13 c, or any other computer connected and allowed to have access to the stored data, can read the stored data from the storage/relay servers at any time. Assuming that the slicing is such that the slices stored in each such storage/relay server cannot be interpreted separately (but only after being combined based on the slicing scheme), any breach of security in any of the storage/relay servers may not result in any damage. In one non-limiting example, such secured distributed storage may be used for credit card or other e-commerce transactions, where the alphanumeric characters that represent the card or cardholder information (or part thereof, such as the last four digits) are split and stored in multiple relay servers. Afterwards, this sensitive information is replaced with the identification symbols (‘token’) containing the locations (IP addresses) of the relay servers storing the information, the location of the information (e.g., addresses) within the relay/storage servers, and the slicing scheme used to partition the information. Since the whole information required to bill the credit card is not located in a single location or a single database, it is more difficult for hackers to gain access to the sensitive data. Similarly, the described method and system may be applicable to any storage associated with any network, such as a SAN and a NAS. - In one non-limiting example, a cellular telephone set is serving as the source computer, the ultimate destination computer or both. The cellular set is serving as endpoint in a cellular network, such as Global System for Mobile communication (GSM), 2G, 2.5G, 3G and 3.5G, Enhanced Data rates for GSM Evolution (EDGE) or similar cellular networks. The voice, data (e.g. SMS—Short Message Service) or any other data to be sent is paritioned and is sent to different units in the network serving as relay server, relaying the voice or data sent to the destination unit. In one non-limiting example, the sending device is associated with multiple identifications, such as multiple telephone numbers, multiple Mobile Equipment Identifier (MEID) numbers, International Mobile Equipment Identity (IMEI) numbers, Electronic Serial Numbers (ESNs) or any other multiple identifiers in the cellular network (for example by using multiple SIMs). In one non-limiting example, the message is partitioned and sent from the sending device using different sender identifications, to a receiver unit having multiple different identifications in the network. Preferably, the data (or voice) is sent through different base-stations, for example by registering each identification number with a distinct base-station.
- A method used today to ensure that a party accessing an information is human is called CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) or Human Interactive Proofs. The idea behind CAPTCHAs is that there are tasks that humans are better at than computers. By providing a test easy for humans to solve but hard for computers, the likelihood that their users are humans is increased. Some commercially used CAPTCHAs often use a string of letters and digits randomly generated and morphed so they would be harder for Optical Character Recognition (OCR) or other pattern recognition algorithms to recognize. However, there are also limitations to how much the letters can be distorted and yet be recognizable to humans. Some CAPTCHA designs, like logic puzzles or “which shape does not belong,” have the feel of intelligence tests. For many service providers it is not advisable to question their users' intelligence, especially when they want to have as many users as possible. Instead CAPTCHAs should be almost trivial for a person to solve. Further description, generating, analysis and applications of CAPTCHA are disclosed in the document by Von-Ahn L., Blum M., and Langford J.: “Telling Humans and Computers Apart Automatically”, ‘Communication of the ACM’ Vol. 47, No. 2, February 2004, in the paper Von-Ahn L., Blum M., Hopper N. J. and Langford J.: “CAPTCHA: Using Hard AI Problems For Security”, and in the document by Von-Ahn L., Maurer B., McMillen C., Abraham D., and Blum M.: “reCAPTCHA: Human-Based Character Recognition via Web Security Measures”, SCIENCE Vol. 321 pp. 1465-1468, 12 Sep. 2008, in U.S. Pat. No. 7,200,576 to Steeves et al. entitled: “Secure online Transactions Using a CAPTCHA Image as a Watermark”, in U.S. Patent Application 2009/0113294 to Sanghavi et al. entitled: “Progressive CAPTCHA”, in U.S. Patent Application 2008/0127302 to Qvarfordt et al. entitled: “Motion and Interaction Based CAPTCHAs”, in U.S. Patent Application 2011/0225633 to PAI entitled: “Data Processing Methods and Systems for Processing Data in an Operation having a Predetermined Flow Based on CAPTCHA Data, and Computer Program Products Thereof”, in U.S. Patent Application 2007/0277224 to Osborn et al. entitled: “Method and Systems for Graphical Image Authentication”, in U.S. Patent Application 2011/0197268 to Ravikumar et al. entitled: “CAPTCHAs That Include Overlapped Characters Projections on Virtual 3D Surfaces, and/or Virtual 3D Objects”, and in U.S. Patent Application 2011/0208716 to Liu et al. entitled: “Image-Based CAPTCHA Exploiting Context in Object Recognition”, which are all incorporated in their entirety for all purposes as if fully set forth herein.
- The CAPTCHA may be used in addition or as alternative to the methods, arrangements and systems described herein. For example, using a CAPTCHA may improve the communication security by requiring a human to be part of the message reception. The CAPTCHA may be added to, integrated with, embedded in or a part of a message or a message slice. In one example, the message or a portion thereof may be embedded in a CAPTCHA, such as using the characters of a message (or a message slice) as the basis for generating CAPTCHA image. In another example, the CAPTCHA includes part or all of the information required to decrypt the received message or slice.
- A CAPTCHA may include information about a key public or private) used for encryption. In one example, the CAPTCHA may include information about the slicing scheme or any other information involving the reconstruction of the sent message.
-
FIG. 13 is a block diagram that illustrates asystem 130 including acomputer system 140 and the associatedInternet 11 connection upon which an embodiment may be implemented. Such configuration is typically used for computers (hosts) connected to theInternet 11 and executing a server or a client (or a combination) software. A source computer such aslaptop 12 a, anultimate destination computer 13 c and relay servers 14 a-14 d above, as well as any computer or processor described herein, may use the computer system configuration and the Internet connection shown inFIG. 13 . Thesystem 140 may be used as a portable electronic device such as a notebook/laptop computer, a media player (e.g., MP3 based or video player), a cellular phone, a Personal Digital Assistant (PDA), an image processing device (e.g., a digital camera or video recorder), and/or any other handheld computing devices, or a combination of any of these devices. Note that whileFIG. 13 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components; as such details are not germane to the present invention. It will also be appreciated that network computers, handheld computers, cell phones and other data processing systems which have fewer components or perhaps more components may also be used. The computer system ofFIG. 13 may, for example, be an Apple Macintosh computer or Power Book, or an IBM compatible PC.Computer system 140 includes abus 137, an interconnect, or other communication mechanism for communicating information, and aprocessor 138, commonly in the form of an integrated circuit, coupled withbus 137 for processing information and for executing the computer executable instructions.Computer system 140 also includes amain memory 134, such as a Random Access Memory (RAM) or other dynamic storage device, coupled tobus 137 for storing information and instructions to be executed byprocessor 138. -
Main memory 134 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed byprocessor 138.Computer system 140 further includes a Read Only Memory (ROM) 136 (or other non-volatile memory) or other static storage device coupled tobus 137 for storing static information and instructions forprocessor 138. Astorage device 135, such as a magnetic disk or optical disk, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from and writing to a magnetic disk, and/or an optical disk drive (such as DVD) for reading from and writing to a removable optical disk, is coupled tobus 137 for storing information and instructions. The hard disk drive, magnetic disk drive, and optical disk drive may be connected to the system bus by a hard disk drive interface, a magnetic disk drive interface, and an optical disk drive interface, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the general purpose computing devices. - Typically
computer system 140 includes an Operating System (OS) stored in a non-volatile storage for managing the computer resources and provides the applications and programs with an access to the computer resources and interfaces. An operating system commonly processes system data and user input, and responds by allocating and managing tasks and internal system resources, such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating networking and managing files. Non-limiting examples of operating systems are Microsoft Windows, Mac OS X, and Linux. - The term “processor” is meant to include any integrated circuit or other electronic device (or collection of devices) capable of performing an operation on at least one instruction including, without limitation, Reduced Instruction Set Core (RISC) processors, CISC microprocessors, Microcontroller Units (MCUs), CISC-based Central Processing Units (CPUs), and Digital Signal Processors (DSPs). The hardware of such devices may be integrated onto a single substrate (e.g., silicon “die”), or distributed among two or more substrates. Furthermore, various functional aspects of the processor may be implemented solely as software or firmware associated with the processor.
-
Computer system 140 may be coupled viabus 137 to adisplay 131, such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), a flat screen monitor, a touch screen monitor or similar means for displaying text and graphical data to a user. The display may be connected via a video adapter for supporting the display. The display allows a user to view, enter, and/or edit information that is relevant to the operation of the system. Aninput device 132, including alphanumeric and other keys, is coupled tobus 137 for communicating information and command selections toprocessor 138. Another type of user input device iscursor control 133, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections toprocessor 138 and for controlling cursor movement ondisplay 131. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. - The
computer system 140 may be used for implementing the methods and techniques described herein. According to one embodiment, those methods and techniques are performed bycomputer system 140 in response toprocessor 138 executing one or more sequences of one or more instructions contained inmain memory 134. Such instructions may be read intomain memory 134 from another computer-readable medium, such asstorage device 135. Execution of the sequences of instructions contained inmain memory 134 causesprocessor 138 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the arrangement Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software. - The term “computer-readable medium” (or “machine-readable medium”) as used herein is an extensible term that refers to any medium or any memory, that participates in providing instructions to a processor, (such as processor 138) for execution, or any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). Such a medium may store computer-executable instructions to be executed by a processing element and/or control logic, and data which is manipulated by a processing element and/or control logic, and may take many forms, including but not limited to, non-volatile medium, volatile medium, and transmission medium. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise
bus 137. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infrared data communications, or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch-cards, paper-tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. - Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to
processor 138 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local tocomputer system 140 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data onbus 137.Bus 137 carries the data tomain memory 134, from whichprocessor 138 retrieves and executes the instructions. The instructions received bymain memory 134 may optionally be stored onstorage device 135 either before or after execution byprocessor 138. -
Computer system 140 also includes acommunication interface 141 coupled tobus 137.Communication interface 141 provides a two-way data communication coupling to anetwork link 139 that is connected to alocal network 111. For example,communication interface 141 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another non-limiting example,communication interface 141 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. For example, Ethernet based connection based on IEEE8023 standard may be used such as 10/100BaseT, 1000BaseT (gigabit Ethernet), 10 gigabit Ethernet (10GE or 10GbE or 10 GigE per IEEE Std 802.3ae-2002as standard), 40 Gigabit Ethernet (40 GbE), or 100 Gigabit Ethernet (100 GbE as per Ethernet standard IEEE P802.3ba), as described in Cisco Systems, Inc. Publication number 1-587005-001-3 (June 1999), “Internetworking Technologies Handbook”, Chapter 7: “Ethernet Technologies”, pages 7-1 to 7-38, which is incorporated in its entirety for all purposes as if fully set forth herein. In such a case, thecommunication interface 141 typically include a LAN transceiver or a modem, such as Standard Microsystems Corporation (SMSC)LAN91C111 10/100 Ethernet transceiver described in the Standard Microsystems Corporation (SMSC) data-sheet “LAN91C111 10/100 Non-PCI Ethernet Single Chip MAC+PHY” Data-Sheet, Rev. 15 (Feb. 20, 2004), which is incorporated in its entirety for all purposes as if fully set forth herein. - Wireless links may also be implemented. In any such implementation,
communication interface 141 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. - Network link 139 typically provides data communication through one or more networks to other data devices. For example,
network link 139 may provide a connection throughlocal network 111 to a host computer or to data equipment operated by an Internet Service Provider (ISP) 142.ISP 142 in turn provides data communication services through the world wide packet datacommunication network Internet 11.Local network 111 andInternet 11 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on thenetwork link 139 and through thecommunication interface 141, which carry the digital data to and fromcomputer system 140, are exemplary forms of carrier waves transporting the information. - A received code may be executed by
processor 138 as it is received, and/or stored instorage device 135, or other non-volatile storage for later execution. In this manner,computer system 140 may obtain application code in the form of a carrier wave. - The concept of encryption and the scheme described above may also be used to improve the security relating to a digital data stored in a memory. The
computer sub-system 170 shown inFIG. 17 above may employ encryption as shown incomputer sub-system 180 shown inFIG. 18 . Anaddress scrambler 181 is added, coupled betweenaddress bus 176 obtained from theaddress logic 174 and thememory 171 address input ports. Any address word received via theaddress bus 181 is converted to another address word, and the converted address word is connected to thememory 171 via theaddress lines 182, comprising the converted address word carried as A7line 182 a, A6line 182 b, A5line 182 c, A4line 182 d, A3line 182 e, A2line 182 f, A1line 182 g and A0line 182 h (collectively referred to as address bus 182). Preferably, the address word conversion is based on one-to-one mapping to preserve distinctness, wherein every non-converted address word is converted to a one converted word, and each of the converted words is associated with one non-converted address word. In this way, thememory 171 retains its ability to store 256 8-bit data words. Hence, a sequential wiring of data to the memory 171 (using sequential addresses), may not result in sequential storing of the data. While the data can be written and read in thesub-system 180 as before (e.g., as in sub-system 170), thememory 171 as a separate device holds the data in a random order, not related to the writing or reading addresses assigned by the processor. Further, reading the data from thememory 171 requires the use or the knowledge of theaddress scrambler 181 mapping function. - In one non-limiting example, the address scrambler functionality is implemented by swapping or mixing the routing of the address word. A non-limiting example of
such address scrambler 191 is shown connected tomemory 171 incomputer sub-system 190 shown inFIG. 19 . - The address scrambler is formed by connecting input address lines to other address lines, not corresponding to the input ones. Each of the address lines is connected to an output address line which may not be the same. In the non-limiting example of
FIG. 19 , the input (before conversion)address line A 7 176 a is connected to the memoryinput line A 5 182 c,address line A 6 176 b is connected to the memoryinput line A 3 182 e,address line A 5 176 c is connected to the memoryinput line A 7 182 a,address line A 4 176 d is connected to the memory input line A4 12 d,address line A 3 176 e is connected to the memoryinput line A 0 182 h,address line A 2 176 f is connected to the memoryinput line A 1 182 g,address line A 1 176 d is connected to the memoryinput line A 6 182 b, andaddress line A 0 176 h is connected to the memoryinput line A 2 182 f. While theaddress scrambler 191 is exampled where a single address line (A4) is not being routed, it is apparent that none of the lines, as well as any number out of the lines, may not be routed. Theaddress scrambler 191, connected between thebus 166address logic 174 and thememory 171, convert any address word to another (one to one mapping), thus randomizing the location of the written data in thememory 171. Hence,address scrambler 191 is required in order to use the information stored inmemory 171, either as a physical entity connected to thememory 171 while reading or by having the knowledge of the routing scheme implemented in theaddress scrambler 191. - The
address scrambler 191 acts as both a scrambler and a de-scrambler. When writing to thememory 171, theaddress scrambler 191 acts as a scrambler, and support the encryption of the data written by converting to an address other than that carried over thebus 166, by changing the order of the address bits. When data is read from thememory 171, theaddress scrambler 191 effectively acts as a de-scrambler that provides access the correct data stored in thememory 171 in the pre-converted address. Hence, the term ‘scrambler’ herein refers to a scrambler, a de-scrambler or both. - The
address scrambler 191 is used with an 8-bit width address bus, and thus includes 8 inputs and 8 outputs, connected in a one-to-one topology. The number of such possible mapping schemes is the factorial of 8, 8!=40,320. Hence 40,320 different address scramblers such as theaddress scrambler 191 shown inFIG. 19 may be used, each offering a distinct mapping/routing scheme. An attacker trying to decrypt the content of an encrypt memory such asmemory 171 shown inFIG. 19 , will need to try 40,320 combinations in order to cover all possible mapping schemes. In the case of 16-bit width address bus, where the address scrambler maps 16 inputs to 16 outputs, the number of possible routing schemes is 16!=˜2.0922×1013. Assuming checking each possible routing scheme requires 1 millisecond, checking whole possible options will last about 2×1010 seconds (˜1267.5 years). Similarly, 32-bit width address will result in approximately 32!=˜2.63×103 (˜8.33×1078 years), and 32-bit width address will result in approximately 64!=1.26×1089 (˜3.9×10 years). - A scrambler such as the
address scrambler 191 is based on connections between inputs and outputs, using conductors such as wires or PCB traces. Such scrambler is simple and cheap, and can be easily manufactured or made. Further, such scrambler does not include any power consuming electronic components, hence does not require any connection to an electric power source. Further, such scrambler does not induce any latency in accessing the memory, and thus does not impact the computer or memory performance. - In one non-limiting example, the scrambler uses logic gates for the address conversion. A non-limiting example for
such address scrambler 193 is shown insub-system 192 inFIG. 19a . While in a passive scrambler such as theaddress scrambler 191 the addresses 00H and FFH are retained and are not converted, regardless of the mapping scheme, logic based conversion is capable of mapping all addresses. In the non-limiting example ofFIG. 19a , the input (before conversion)address line A 7 176 a is connected after converting via an inverter (NOT)gate 194 c to the memoryinput line A 5 182 c,address line A 6 176 b is connected to the memoryinput line A 3 182 e,address line A 5 176 c is connected to the memoryinput line A 7 182 a,address line A 4 176 d is connected viainverter gate 194 b to the memoryinput line A 4 182 d, andaddress line A 3 176 e is connected to the memoryinput line A 0 182 h. Similarly,address line A 2 176 f is connected to the memoryinput line A 1 182 g,address line A 1 176 d is connected to the memoryinput line A 6 182 b, andaddress line A 0 176 h is connected viainverter gate 194 a to the memoryinput line A 2 182 f. While three inverter gates are shown, any number of inverter gates can be equally used. Further, while inverter gates are shown that has only one input, any type of gates, having any number of inputs may be equally used. - Further, any combinatorial logic implementing any Boolean logic or algebra for mapping input address to an output address, preferably using one-to-one mapping, may be used. The
logic block 197 may use discrete gates, memory, ASICs, PLDs, processors or any combination thereof. Such logic may be based on sum of products or product of sums, and may include Arithmetic Logic Unit (ALU), half-adders, full-adders, half-substractors, full-substructors, multiplexers, demultiplexers, encoders, decoders, inverters (NOT gates), AND gates, OR gates, XOR (exclusive-OR) gates, NAND (NOT-AND) gates, NOR (NOT-OR) gates, and XNOR (exclusive-NOR) gates. A non-limiting example isgeneric logic block 197, being part of theaddress scrambler 196 shown as part ofsub-system 195 inFIG. 19b . Such alogic block 197 may be comprised of discrete standard off-the-shelf logic gates, commonly in the form of ICs each implementing a fixed logic function, connected together to form the Boolean function. Alternatively, thelogic block 197 may be implemented using ASIC (Application-Specific Integrated Circuit), which is an IC customized in manufacturing to provide the required logic function. Preferably, thelogic block 197 is based on a PLD (Programmable Logic Device), which is a generic term for IC that is manufactured with arrays of logic gates (commonly ‘AND’ and ‘OR’ gates, gate arrays, cells or macrocells), which can be programmed or reconfigured after manufacturing (e.g., by a user or in a laboratory), using a dedicated programmer, on-board programming or otherwise, to implement a desired logic function by creating the suitable connections within the device. Non-limiting examples of PLDs are PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), FPGA (Field-Programmable Gate Array). In another non-limiting example, the logic function of thelogic block 197 is implemented using a dedicated processor (separated from the processor accessing the memory for using it), supported by a memory and logic gates. The PLD programmed interconnection arrangement may be volatile or preferably non-volatile. In the case where the pattern program onto a PLD is non-volatile, it can use any technology used for non-volatile memories, such as flash memory, EPROM or EEPROM cells, or attached battery. - In one non-limiting example, the memory is used in order to perform the address mapping. Such an arrangement is shown as
sub-system 198 shown inFIG. 19c , disclosing amemory 199 being part of theaddress scrambler 196. Thememory 199 is used to create the combinational logic function such as LUT (Look-Up Table), where the address over thebus 176 serves as the address of thememory 199, and the resulting data read from thememory 199 serves as the address tomemory 171 overbus 182. The logic function required is first determined, and then programmed into thememory 199 to be used thereafter. Any type of memory having the required address bus (e.g., 8-bit width in memory 199) and the required data bus (e.g., 8-bit width in memory 199) may be used, preferably non-volatile. The content may be programmed in manufacturing, such as a ROM, or can be programmed using a dedicated programmer. In one non-limiting example, thememory 199 content is being written by the processor, for example as part of the computer initialization. In such a case, thememory 199 inaddress scrambler 196 is fully accessible via theaddress bus 166 via connection 1981 (and the required support logic) and via thedata bus 167 via connection 1980 (and the required support logic), and is further accessible via thecontrol bus 165 via thecontrol logic 1982, and thus may use the R/W signaling over theline 1983. In such a configuration, the processor may access thememory 199 in a way similar to the way thememory 171 is accessed, and can thus write its content, as required. Similarly, such an arrangement may support on-board programming of a PLD-implementedlogic 197. For example, thememory 199 may be part of such PLD or attached thereto, storing its configuration. - In the case of logic or memory-based address mapping, any address word from the processor is preferably one-to-one mapped to same or another address, as exampled in
FIGS. 18 and 19 . In the case of 8-bit width address, the memory capacity may be 28=256 addresses (address space), and an address scrambler implements an addressing conversion scheme that maps each of these addresses to another address in this address space. The total number of such addressing schemes is factorial (28)!=256!=˜8.578×10506. Similarly, 16-bit address bus allows for (21)!=65,536!, and 32-bit address space results in (232)!=4,294,967,296! possible addressing conversion schemes, hence making it difficult for an attacker to identify the scheme actually used, and thus offering a high degree of encryption. - While
FIGS. 18 and 19 illustrated an address scrambler for manipulating thememory 171 address words, an encryption may involve the manipulation of the data word read from or written to thememory 171, or both, typically using one-to-one mapping. Adata scrambler 201 is shown insub-system 200 inFIG. 20 , connected between thedata bus 167 via thedata logic 175 andbus 177, and thememory 171 viabus 202. Since typically the same data connections are used for both reading from, and writing to, a memory, thedata scrambler 201 commonly supports the two-way signal transfer, directed from thebus 167 to thememory 171 in a ‘Write to memory 171’ cycle, and from thememory 171 to thedata bus 167 in amemory 171 read cycles. While the data connections, such asbi-directional buses memory 171 are exampled inFIG. 20 as having 8-bit word width (D7-D0), any other width size may be equally used. - In one non-limiting example, the data scrambler is implemented by routing the data lines and changing their respective locations in the data word, similar to the
address scrambler 191 shown inFIG. 19 . Such a non-limiting example of adata scrambler 211 is shown as part ofsub-system 210 inFIG. 21 . The data line D7 of the data bus 177 (associated with the data bus 167) is connected to the data line D5 of the memory 171 (via data bus 202). The data line D6 of thedata bus 177 is connected to the data line D3 of thememory 171, the data line D5 of thedata bus 177 is connected to the data line D1 of thememory 171, the data line D4 of thedata bus 177 is connected to the data line D7 of thememory 171, the data line D3 of thedata bus 177 is connected to the data line D4 of thememory 171, the data line D2 of thedata bus 177 is connected to the data line D0 of thememory 171, the data line D1 of thedata bus 177 is connected to the data line D2 of thememory 171, and the data line Do of thedata bus 177 is connected to the data line D6 of thememory 171. Since the connections are passive and have no direction, scrambling and de-scrambling (in the associated directions) is achieved. Similar to the above discussion regarding theaddress scrambler 191, there are 8!=40,320 variations of 8-bit wide data bus scrambling, 16!=˜2.0922×1013 for 16-bit wide data bus scrambling, 32!=˜2.63×1035 for 32-bit wide data bus scrambling, and 64!=1.26×1089 for 64-bits width data bus scrambling. A scrambler such as thedata scrambler 211 is based on connections between inputs and outputs, using conductors such as wires or PCB traces. Such scrambler is simple and cheap, and can be easily manufactured or made. Further, such data scrambler does not include any power consuming electronic components, hence does not require any connection to an electric power source. Further, such scrambler does not induce any latency in accessing the memory, and thus does not impact the computer or memory performance. - Similar to the logic gates based
address scrambler 193 shown inFIG. 19a and theaddress scrambler 196 shown inFIG. 19b , a data scrambler may similarly be based on mapping one-to-one data based on logic circuitry. A non-limiting example ofsuch data scrambler 213 is shown as part ofsub-system 212 inFIG. 21a . The data written to thememory 171 is passed via thelogic block 197 a in thedata scrambler 213, where the data is converted, in a similar way described above regarding thelogic block 197 inaddress scrambler 196. Discrete logic gates, PLDs and other arrangements may be equally used, as described regarding the logic circuits of the address scrambler. The scrambled data is written to thememory 171 via the data lines 202. Thelogic block 197 a is activated only in a writing cycle to thememory 171, as indicated by the R/W line 173 connected to thedata scrambler 213, in parallel to the connection to thememory 171. In amemory 171 read cycles, the data read is passed unchanged to the data bus 167 (via the data logic 175), via the pass-thruconnections 218. Since the data is stored as scrambled in thememory 171, the data read is scrambled, and the software executed by the processor accessing thememory 171 for using this data needs to be aware of the scrambling in order to properly use the read data word. - In another non-limiting example, two logic blocks are used, each for a different data flow direction. Such an arrangement is shown in a
data scrambler 215, being part ofsub-system 214 shown inFIG. 21b . Thelogic block 197 a is used (as in sub-system 212) to convert the data being written to thememory 171, while thelogic block 197 b is used when data is read from thememory 171. The data scrambler 215 uses the appropriate logic block according to the R/W line 173, which indicates whether ‘read from memory’ or ‘write to memory’ operation are currently executed. Preferable, thelogic block 197 a serving the writing tomemory 171, and thelogic block 197 b serving the reading frommemory 171, are both one-to-one mapping and are exactly inverse function, such that if thelogic block 197 a maps the data word ‘X’ to the word ‘Y’ written to thememory 171, thelogic block 197 b maps back the data word ‘Y’ read from thememory 171 to the original data word ‘X’. Hence, while the data is stored as encrypted in thememory 171, this is transparent to any software being executed by the processor. While two distinct logic blocks 197 a and 197 b are shown, a single logic block may be equally used, wherein a support logic circuitry route the input data to the data scrambler 215 (either from thememory 171 or from the data bus 167) to the logic block input, and similarly the output is routed to the data scrambler output (respectively either to thedata bus 167 or to the memory 171). - Similar to the
address scrambler 196 described above, the logic blocks 197 a, theblock 197 b, or both, may be implemented using a memory. Such data scrambler 217 based on amemory 199 is shown as part ofsub-system 216 inFIG. 21c . Thememory 199 types and programming options described above regardingmemory 199 as part of theaddress scrambler 196 may be equally applied to thememory 199 being part of thedata scrambler 217. Either two memories may be used, one for each direction, similar to the two logic blocks described indata scrambler 215, or preferably a single memory may be used, supported by logic circuitry for properly routing the input/output of the memory based on the R/W line 173 status. - Similar to the above discussion regarding using address scrambler, in the case of 8-bit width data word and when memory or logic circuits (such as PLD) is used, the total number of such data scrambling schemes is factorial (28)!=256!=˜8.578×10506. Similarly, 16-bit data bus allows for (216)!=65,536!, and 32-bit data words results in (232)!=4,294,967,296! possible conversion schemes, hence making it difficult for an attacker to identify the scheme actually used, and thus offering a high degree of encryption.
- While
FIGS. 18-19 above describe manipulating of the address words by the use of address scrambler, andFIGS. 20-21 above describe manipulating of the data words by the use of data scrambler, in one preferred embodiment both scramblers are used. Such a non-limiting example ofsub-system 220 is shown inFIG. 22 , describing thememory 171 being accessed viaaddress scrambler 181 anddata scrambler 201. The scrambling of the data and the scrambling of the address may be the same, similar or different, and may be fully independent from each other or may be dependent in some way. For example, the width of the data and address words may be the same (e.g. 16 bits), or may use different width (e.g. 8-bit data word width and 32-bit address word width). - Similarly, the address scrambling may be passive and connection-only based, such as
address scrambler 191 shown inFIG. 19 , while the data scrambling may be memory-based or PLD-based, such as data scrambler 217 shown inFIG. 21c ordata scrambler 215 shown inFIG. 21b . Further, the implementation arrangement may be the same, similar or different. For example, a data scrambler may use a memory based mapping while the address scrambler may use discrete logic gates. One advantage of such an arrangement is the increase in the total number of scrambling schemes, where in the case that the address scrambling may be implemented using Y possible schemes and the data scrambling may be implemented using Z possible schemes, the total number of obtained schemes using both scramblers is their multiplication Y x Z. For example, in the case where the address scrambler uses memory-based 8-bit width, offering (28)!=256!=˜8.578×10506 possible mapping arrangements, and where the data scrambler uses 8-bit connections-based mapping, offering 8!=40,320 variations, the total schemes using both data and address scrambling will be ˜40,320×8.578×10506=˜3.458×10 511. - Further encryption may be achieved by filling part of the
memory 171 with random or meaningless information, as exampled insub-system 218 shown inFIG. 21d , illustrating data scrambler 215 including a randomness capability. In this non-limiting example, the data bus is 5-bit wide while thememory 171 can store 8-bit wide data words. The 5-bit data words are bi-directionally carried overdata bus 177 a between thedata bus 167 and thedata scrambler 215. Part of thememory 171 data lines, namely the 5 bits D7, D5, D4, D1 and D0 of thememory 171 are scrambled by thelogic 197 a as described before, using PLD, discrete gates, memory, processor or simple connections, providing a one-to-one mapping of the 5-bit data words. The other data bits, namely D6, D3 and D2, are the output of therandom number generator 219. In anymemory 171 writing cycle, the 8-bit word written to thememory 171, is composed of 5 bits which are actual data, converted by thelogic 197 a, and 3 bits are random. An attacker without prior knowledge cannot easily separate the random bits from the real data bits. In ‘reading from memory 171’ cycle, thelogic 197 b convert back only the 5 data bits into the original data word, and passes it along to thedata bus 167. While the number of bits used for randomizing in the non-limiting example ofFIG. 21d is 3, it is clear that any number of bits may be equally used, using a random number generator having a suitable output width. Using large number of bits increases the memory content security, but reduces the effective capacity of the memory used. - The
random signal generator 219 can be hardware based, using a physical process such as thermal noise, shot noise, nuclear decaying radiation, photoelectric effect or other quantum phenomena, or can be software based, using a processor executing an algorithm for generating pseudo-random numbers which approximates the properties of random numbers. A non-limiting example of random number generators is disclosed in U.S. Pat. No. 7,124,157 to Ikake entitled: “Random Number Generator”, in U.S. Pat. No. 4,905,176 to Schulz entitled: “Random Number Generator Circuit”, in U.S. Pat. No. 4,853,884 to Brown et al. entitled: “Random Number Generator with Digital Feedback” and in U.S. Pat. No. 7,145,933 to Szajnowski entitled: “Method and Apparatus for generating Random signals”, which are incorporated in its entirety for all purposes as if fully set forth herein. The digitalrandom signal generator 219 can be based on ‘True Random Number Generation IC RPG100/RPG100B’ available from FDK Corporation and described in the data sheet ‘Physical Random number generator RPG100.RPG100B’ REV. 08 publication number HM-RAE106-0812, which is incorporated in its entirety for all purposes as if fully set forth herein. - The data scrambling and the address scrambling related implementations (hardware or software) may be separated and independent, as shown in
FIG. 22a disclosing asub-system 222 including a data scrambler relatedfunctionality 223, which is based on thedata scrambler 201, together with the supporting hardware such as bus interfaces. Similarly,sub-system 222 includes a data scrambler relatedfunctionality 224, which is based on theaddress scrambler 181, together with the suitable supporting hardware such as bus interfaces. In another non-limiting example, the data and address scramblers are not entirely separated, but may share various resources, such as power supply or power connection, mechanical support, various components or other shared circuits. - The general case is schematically shown as
sub-system 225 inFIG. 22b . All the functionalities added in order to support scrambling or any other type of encryption is included in theadapter 226, which connects (directly or indirectly) to theprocessor 163 via thedata bus 167,control bus 165 and the address bus 166 (which may be multiplexed as described above). Theadapter 226 connects (directly or indirectly) to thememory 171 via thedata bus 167 a, thecontrol bus 165 a and theaddress bus 166 a. Each of the buses may be pass-through or regenerated. Further, each of the buses may be parallel or serial type. Furthermore, a single bus carrying data, address and control (e.g. using TDM—Time Domain/Division Multiplexing), may as well be used for connecting theprocessor 163 to theadapter 226, for connecting thememory 171 to theadapter 226, or in both connections. The adapter may include only address scrambling functionality (such as address scrambler 181), only data scrambling functionality (such as data scrambler 201), or both functionalities. For example, in the case of data scrambling only, theaddress bus 166 may not be connected to theadapter 226, or passed-through without any manipulation via theadapter 226 to thememory 171. Further, theadapter 226 may only manipulate the information (e.g., data and/or address words) carried over the buses without changing or modifying their protocol or format, or may also convert between different formats or protocols. - Referring now to
FIG. 22c , showing asub-system 227 where thememory 171 is based on adrive 228 and aremovable storage medium 229, and where both data scrambler 201 andaddress scrambler 181 are used. For example, thedrive 228 may be a DVD recorder and themedia 229 may be a DVD-R type disk. A data written onto themedia 229 by thedrive 228 is encrypted based on the address scrambling scheme implemented in theaddress scrambler 181 and in the data scrambling scheme implemented in thedata scrambler 201. An attacker, having no prior information, is probably not able to easily decipher the encrypted information written on themedia 229, due to the large number of possible scrambling schemes. However, reading themedia 229 can easily be performed by thesub-system 227, or by having the knowledge regarding the scrambling schemes implemented in both theaddress scrambler 181 and thedata scrambler 201. - Other non-limiting examples of addressing manipulation (such as scrambling) and accessing memory are described in U.S. Pat. No. 6,572,024 to Baldischweiler et al. titled: “Memory Array with Address Scrambling”, in U.S. Pat. No. 5,943,283 to Wong et al. entitled: “Address Scrambling in a Semiconductor Memory”, in U.S. Pat. No. 5,765,197 to Combs entitled: “Method and System for Authentication of a Memory Unit for a Computer System”, in U.S. Pat. No. 4,168,396 to Best entitled: “Microprocessor for Executing Enciphered Programs”, and in U.S. Pat. No. 7,730,272 to Lee entitled: “Non-Volatile Memory Device and Method of Encrypting Data in the Same”, which are incorporated in its entirety for all purposes as if fully set forth herein.
- In some cases the
processor 163 connects to thememory 171 by a serial bus. The serial bus commonly carries time multiplexed serial address and data words.FIG. 23 shows an adapter 230 (corresponding toadapter 226 inFIG. 22b ) for address scrambling in a serial bus environment. Theserial bus 238 a connects to theprocessor 163, allowing the access thememory 171 by an address word carried serially over theserial bus 238 a. The address related bits are identified and de-multiplexed/extracted from the incoming serial stream by theaddress extraction block 234. The address bits in their serial form are connected to a serial/parallel block 231 via theconnection 235. The address word is then converted to parallel by the serial/parallel block 231, and is presented over thebus 176. Theaddress scrambler 181, which can be any type of scrambler as described herein, maps the address word received from thebus 176 to another address word (according to any address scrambling scheme), that is carried by thebus 182 to the parallel/serial block 232, which converts the parallel address word to a serial stream. The converted address word is then multiplexed/inserted into the outgoing stream by theaddress insertion block 233, replacing the original address that was carried over theserial bus 238 a. The address word conversion to parallel and then to serial, and the mapping function may introduce a latency to the incoming address word in thebus 238 a, and thus the non-address part of the incoming stream is routed to adelay block 237 a via theconnection 239 a, which introduces a similar or equal delay to the rest of the information carried over theserial bus 238 a. Hence, theaddress insertion block 233 combine/multiplex the converted address word with the rest of the stream being delayed, and the combined stream is output as part of theserial bus 238 b, which is identical or similar to the incomingserial bus 238 a, except for being delayed and including the converted address. The serialparallel block 231, and the parallel/serial block 232, are commonly implemented using a digital shift register, commonly employing a cascade of flip-flops sharing the same clock, allowing the stored bits to be shifted to one direction. Thedelay block 237 a may be analog delay line including electrical components creating a time difference between input and output signals, or preferably may be based on a shift register or on a memory. - Similarly, a data scrambling may be used in a serial bus environment.
FIG. 24 shows an adapter 240 (corresponding toadapter 226 inFIG. 22b ) for data scrambling in a serial bus environment. Similar to the address scrambling shown inFIG. 23 , the serial data is extracted from the stream, converted to parallel, mapped into another data word, and inserted into the outgoing serial stream. However, since the data is bi-directional, directed from theprocessor 163 to thememory 171 is writing cycle, and from thememory 171 to theprocessor 163 is a read cycle, the correspondingdata scrambling device 240 supports bi-directional data mapping. Theserial bus 238 a connects to theprocessor 163, allowing the writing to thememory 171 of a data word carried serially over theserial bus 238 a. The data related bits are identified and de-multiplexed/extracted from the incoming serial stream by the data insertion/extraction block 244. The data bits in their serial form are connected to a serial/parallel block 246 via theconnection 245. The data word is then converted to parallel by the serial/parallel block 246, and is presented over thebus 177. Thedata scrambler 201, which can be any type of scrambler as described herein, maps the data word received from thebus 177 to another data word (according to any data scrambling scheme), that is carried by thebus 202 to the parallel/serial block 247, which converts the parallel data word to a serial stream. The converted data word is then multiplexed/inserted into the outgoing stream by the data insertion/extraction block 243, replacing the original data that was carried over theserial bus 238 a. The data word conversion to parallel and then to serial, and the mapping function may introduce a latency to the incoming data word in thebus 238 a, and thus the non-data part of the incoming stream is routed to adelay block 237 b via theconnection 239 a, which introduces a similar or equal delay to the rest of the information carried over theserial bus 238 a. Hence, the data insertion/extraction block 243 combine/multiplex the converted data word with the rest of the stream being delayed, and the combined stream is output as part of theserial bus 238 b, which is identical or similar to the incomingserial bus 238 a, except for being delayed and including the converted data. This process is reversed in a read frommemory 171 cycle, where the data read from thememory 171 that is carried over the incoming stream ofserial bus 238 b is extracted by the data insertion/extraction block 243, and then converted to parallel by the parallel/serial 247 (being a bi-directional component), thus being mapped back to the original data word by thebi-directional data scrambler 201. The data word is serialized by the bi-directional serial/parallel block 246, and then inserted into the data insertion/extraction block 244 to be multiplexed with the delay stream by thebi-directional delay 237 b, where the multiplexed outgoing stream is sent over theserial bus 238 a to theprocessor 163. - An
adapter 226 may include only the serial-bus address scrambler 230, only the serial-bus data scrambler 240, or both. In the latter case, the data and address scrambling functionalities may be integrated, and thus may share any resources. For example, both circuits may share a power source, a power supply or a power connected. Similarly, other electronic circuits mat be shared and used for both functionalities. Further, the same connector or connectors, as well as interfaces and other support circuits may be used by both functionalities. Furthermore, the associated components implementing these functionalities may be housed in the same enclosure, or may be mounted to the same surface. In one non-limiting example, the hardware relating to both functionalities may be integrated onto a single substrate (e.g., silicon “die”), or as components mounted on the same PCB. - Using data or address scrambling according to one or more of the schemes described herein provides the advantage of encrypting the content stored in the
memory 171. The encryption mechanism is independent and invisible from theprocessor 163, and is transparent to the software (or firmware) executed by the processor 163 (such as operating system), thus minimizing the risk of malware or virus attacking the encryption method. The encryption is further notably transparent to a user, and in most cases the scrambling scheme operation cannot be detected by the user. Using scrambling as described in some non-limiting examples herein requires only the connection of an adapter 226 (including the data, address or both scramblers hardware and related components). In some aspects, there may be is no need for any modifications or any changes in theprocessor 163 related hardware or any software being executed by the computer system. Similarly, in most cases there is no need for any modification to thememory 171 involved. Further, the computer system performance will not be degraded. At most, the address or data mapping operation of the scramblers may induce a negligible latency is accessing thememory 171. - An
adapter 226 may be provided implementing a particular scrambling scheme, distinct from any other adapters, and this scheme is solely used for encrypting the content written into thememory 171. For example, eachadapter 226 may be manufactured embedding a distinct scrambling scheme, different from all other manufactured devices. In such a case, thememory 171 content may be read (or otherwise decrypted) only by using thesame adapter 226. A security measure is provided by physically separating theparticular adapter 226 and theencrypted content memory 171. Even in the case an attacker gets hold on thememory 171 or its content, he may not decrypt the original content written into it without the suitable adapter 226 (or at least the scrambling scheme implemented in it). Similarly, even in the case an attacker gets hold on the particular adapter 226 (or its embedded scrambling scheme), he may not decrypt the original content written into thememory 171 without having access to thememory 171 itself (or to its content). Hence, when thememory 171 and theadapter 226 are physically separated or disassociated in any other way, the content is secured. However, the content may be easily and quickly read and decrypted by connecting thememory 171 to its suitableparticular adapter 226. For example, theadapter 226 may be integrated with a computer system, while thememory 171 may be removable or use removable media (for example, a non-volatile memory). In such a case, data written onto thememory 171 medium by a specific computer system, may be read only by that specific computer system. - In one non-limiting example, the
adapters 226 are provided in pairs, where the two devices in the pair are similar or identical duplicates, or otherwise embed the same scrambling scheme. In such a case, the two devices of the pair may be integrated in, or connected to, two different computer systems. In such a case, these two computer systems share the same scrambling scheme, and thus may exchange memories (or storage mediums) between them. The memories (or the mediums) written by one of the computer systems can only be read and decrypted by these computer systems, and cannot be read or decrypt by other computer systems. In one non-limiting example, the two devices are associated with distant computer systems, where the memories (or the mediums) may be securely exchanged. Similarly, multiple duplicates of the scrambling scheme may exist, such as in an enterprise employing multiple computer systems, all associated with the same scrambling scheme. In such an environment, memories (or mediums) may be easily exchanged between the computer systems, but the original memory content cannot be accessed outside the enterprise. - The
memory 171 physical storage means may be based on electrostatic, ferroelectric, magnetic, acoustic, optical, chemical, electronic, electrical, or mechanical medium. The memory may semiconductor (a.k.a. solid-state) based, and in the form of a chip, IC, module, ICs mounted on a PCB, memory card, or a rigidly enclosed box. The memory may be volatile or non-volatile, and may be of static or dynamic types. The memory may be written more than once at any time, or may be written once, as part of the manufacturing process or afterwards (e.g., by the user using a dedicated equipment, or as part of an electronic circuit as part of normal operation). The memory may use random or sequential access. Further, the memory may be location-addressable or file-addressable or content-addressable. The memory may employ a non-removable medium, or a removable medium associated with a suitable writer/reader (or read-only) drive. A memory may be accessed using a parallel or serial connection or bus, and may be characterized by its capacity and access time. The memory may be designed as portable or as in-computer enclosure. The memory may include multiple memory devices, and may be a DAS, or part of NAS or SAN. The NAS may be a clustered NAS, where distributed file system is used, running simultaneously on multiple servers, allowing for distributing of data and metadata across the cluster nodes or storage devices. A SAN may be based on IP storage as described in White Paper “IP storage Inside White Paper”, Storage Networking Industry Association (SNIA) IP Storage Forum, October 2007, which is incorporated in its entirety for all purposes as if fully set forth herein. The SAN may use storage virtualization, where logical storage is abstracted from physical storage. In this case, the physical storage resources (memories such as disk arrays) are aggregated into storage pools, from which the logical storage is created. Hence presenting to the user a logical uniform space for data storage, that transparently handles the process of mapping it to the actual physical locations. Multiple disk arrays (may be from different vendors and scattered over the network) may be virtualized into a single monolithic device, which can be managed uniformly. The methods described herein may be used as part of translating the logical space into the physical space. - Similarly, the methods herein may be used in a clustered file system, where the files are shared by being simultaneously mounted on multiple servers. Such a system may be a shared disk file system, which uses a storage area network (SAN) or RAID to provide direct disk access from multiple computers at the block level. Translation from file-level operations that applications use to block-level operations used by the SAN must take place on the client node. In one type of clustered file system, a shared disk file system adds a mechanism for concurrency control which gives a consistent and serializable view of the file system, avoiding corruption and unintended data loss even when multiple clients try to access the same files at the same time. Shared disk file systems also usually employ some sort of a fencing mechanism to prevent data corruption in case of node failures. The underlying storage area network might use any of a number of block-level protocols, including SCSI, iSCSI, HyperSCSI, ATA over Ethernet (AoE), Fibre Channel, and InfiniBand. Similarly, distributed file systems may be used that use a network protocol, but may not share block level access to the same storage.
- The
adapter 226 including the address or data scrambling functionalities (or both) may be implemented by electrical power consuming components, such as PLDs, memories or processors. Theadapter 226 may be powered by a dedicated power supply fed from a dedicated power source. The power source or the power supply (or both) may be separated from the power sources or the power supplies used for powering theprocessor 163 or thememory 171. Alternatively, the powering scheme used for powering theprocessor 163 or for powering the memory 171 (or both) may also be used by theadapter 226, and thus obviating the need for additional power related hardware. A power source for powering theadapter 226 may be a domestic AC power, or a battery (either primary or rechargeable). - Referring to
FIG. 25 , showing asub-system 250 where theprocessor 163,adapter 226 and thememory 171 are power fed from the same power source and the same power supply. Thepower supply 253 is power fed from the common AC power supply viaAC plug connector 251 and apower cord 252, using the mains AC power (commonly 115 VAC/60 Hz in North America or 220 VAC/50 Hz in Europe) as the power source. The power supply commonly includes an AC/DC converter, for converting the AC voltage into the required low-level stabilized DC voltage or voltages, commonly suitable for power the digital circuits, such as 33 VDC, 5 VDC or 12 VDC. Power supplies commonly include voltage stabilizers for ensuring that the output remains within certain limits under various load conditions, and typically employs a transformer, silicon diode bridge rectifier, reservoir capacitor and voltage regulator IC. Switched mode regulator supplies also include an inductor. In one embodiment,power supply 253 is integrated into a single device or circuit, in order to share common circuits. Further, thepower supply 253 may include a boost converter, such as a buck boost converter, charge pump, inverter and regulators as known in the art, as required for conversion of one form of electrical power to another desired form and voltage. While power supply 253 (either separated or integrated) can be an integral part and housed within the computer system enclosure (together with the processor 163), it may be enclosed as a separate housing connected via cable to the computer system enclosure. For example, a small outlet plug-in step-down transformer shape can be used (also known as wall-wart, “power brick”, “plug pack”, “plug-in adapter”, “adapter block”, “domestic mains adapter”, “power adapter”, or AC adapter). Further,power supply 253 may be a linear or switching type. - The low level DC voltage (or several voltages) output from the
power supply 253 is connected to power the processor 163 (and commonly its environment and some of its peripheral components) by the power wiring 254 (wires, cable or PCB traces). Similarly, thepower supply 253 is connected to DC power theadapter 226 via thepower wiring 254 b, and thememory 171 via thepower wiring 254 c. Dedicated wirings may be used, as well as power bus to which all the power consuming components are connected to be power fed from. - In an alternative powering scheme shown in
FIG. 26 , thearrangement 260 describes the case where each of the elements is power fed from a dedicated power supply powered from a dedicated power source. Theprocessor 163 is DC-power fed via thepower wiring 254 a from thepower supply 253 a, which is fed from thepower source 261 a, while theadapter 226 is DC power fed via thepower wiring 254 b from thepower supply 253 b, which is fed from thepower source 261 b, and thememory 171 is DC power fed via thepower wiring 254 c from thepower supply 253 c, which is fed from thepower source 261 c. Each of thepower sources power supplies 253 a-c and each of the power sources 261 a-c may be separate from, or integrated with, the respective power fed device. Such integration may take the form of sharing a common enclosure, sharing a mechanical support, sharing a PCB, sharing components or circuits, or sharing common connections. Thebuses adapter 226 further serves as a converter between the bus types. - In one non-limiting example, the power signal (typically DC—Direct Current) is associated with the data signals connecting the
processor 163 to theadapter 226. Such anarrangement 272 is shown inFIG. 27 , where thebus 262 a (serial or parallel), carrying data words, address words, or both, is connecting theadapter 226 to theprocessor 163. Theadapter 226 is power fed via thepower wiring 271. For example, thepower wiring 271 may be routed substantially along the cable carrying thebus 262 a, typically between the motherboard on which theprocessor 163 is mounted and theadapter 226. In one non-limiting example, a SATA-compliant bus is used, defined to use two separate and distinct cables, onecable 262 a for carrying data/address words only, and onecable 271 for carrying power only. Each of the data and power point-to-point cables uses separate connectors (data and power) for connecting to mating connectors at the cable ends. In one non-limiting example, a single cable is used for carrying both data/address words and the power signal (commonly DC), thus requiring a single connector at each cable end (for connecting to mating connectors). The single cable includes separate wires (or other conductors) dedicated and for carrying the power signal, while the other wires/conductors are used for carrying the information, typically digital data signal. The devices at each of the cable ends connect the power related circuits to the power related pins in the connector, while the communication related circuits are connected to the communication related pins in the same connector. Such scheme is used for example in USB (Universal Serial Bus) where 5 VDC power is carried on the same cable and using the same connector together with the bi-directional digital data signal. - In an alternative arrangement, the power and communication signals are carried over the wires in the cable using Frequency Division Multiplexing (FDM, a.k.a. Frequency Domain Multiplexing). In such an implementation, the power and the communications signals are carried each in its frequency band (or a single frequency) distinct from each other. For example, the power signal can be a DC (Direct Current) power (effectively 0 Hz), while the communication signal is carried over the 100 Hz-10 MHz (or 4-30 MHz) frequency band, which is distinct and above the DC power frequency. In this case, the component on each side may further include a low pass filter coupled between the connector and the transceiver (transmitter/receiver) for substantially passing only the power frequency, for powering the device from the power signal, or for injecting the power signal. Such device may also further include a high pass filter coupled between the connector and the transceiver for substantially passing only the communication frequency band, for passing the communication signal between the connector and the transceiver. Another technique for carrying power and data signals over the same conductors is known as Power-over-Ethernet (PoE) (i.e., Power over LAN—PoL) and standardized under IEEE 802.3af and IEEE 802.3at, also explained in U.S. Pat. No. 6,473,609 to Lehr et al. titled: “Structure Cabling System”, which is incorporated in its entirety for all purposes as if fully set forth herein, which describes a method to carry power over LAN wiring, using the spare pairs and the phantom mechanism. The latter makes use of center-tap transformers. The powering scheme may use the standards above, as well as using non-standard and proprietary powering schemes.
- The
memory 171 may be power fed from dedicated power supply and power source, as shown inFIG. 27 . Alternatively or additionally, thememory 171 may be power fed from thesame power supply 253 feeding theprocessor 163, as shown inarrangement 272 inFIG. 27a . Thememory 171 is connected to theadapter 226 viabus 262 b, allowing theprocessor 163 to access thememory 171, preferably in a way as ifadapter 226 is not present. Thememory 171 is power fed by thepower connection 271 a. In this non-limiting example, the power required for thememory 171 operation is passed through theadapter 226, shown asline 271 b in theadapter 226. Hence, thepower connection 271 is used to power feed both theadapter 226 and thememory 171 from thesame power supply 253 a. The carrying of the power signal overconnection 271 a and the digital data overbus 262 b may be separated or combined, and may use different or the same scheme used for carrying the power signal overconnection 271 and digital data overbus 262 a as described above. - Referring now to
FIG. 27b showing anarrangement 275 where theprocessor 163 is power fed viaconnection 254 a from thepower supply 253 a (sourcing power from thepower source 261 a), and where thememory 171 is separately power-fed viaconnection 254 c from thepower supply 253 c (sourcing power from thepower source 261 c). Theadapter 226 may be power fed via thememory 171 over thepower connection 276. The carrying of the power signal overconnection 276 and the digital data overbus 262 b may be separated or combined, and may use different or the same scheme used for carrying the power signal overconnection 271 and digital data overbus 262 a as described above. Further, the adapter may pass through the power signal as shown inarrangement 277 shown inFIG. 27c , where the power signal is passed throughconnection 276 b from thememory 171, and may power feed the processor 163 (and related support components) via thepower connection 276 a. Any combination of powering scheme may be used for powering theadapter 226. For example, part of the required power may be provided locally by a battery, part of the power may be supplied from an external dedicated power source, and part may be powered from a power-carrying bus. - Referring now to
FIG. 28 , showing the poweringscheme 280 of an adapter (such as adapter 226), that is locally powered from apower source 261 b, and further power feeds thememory 171 via thebus 262 b. Theadapter 280 connects to theprocessor 163 viaconnector 283 c, for connecting to thebus 262 a carried over a cable and accessed via themating connector 282 c. Theadapter 280 is power fed via thepower connector 283 a, connectable to themating connector 282 b of thecable 281, used for connecting to thepower source 261 b. The power feeds thepower supply 253 b, which provides various DC voltages for powering the internal adapter electronic circuits, such as 5 VDC viaconnection connection 285 d, and 3.3 VDC viaconnection 285 c. The number of connections and the voltages specified herein are for example only, and other voltages may be equally used. In addition, thepower supply 253 b supplies 5 VDC viaconnection connection 285 b, to thebus connector 283 b. The non-power related signals (such as the serial digital data) 284 b are combined with the power signals at theconnector 283 b, forming thebus 262 b carrying both power and data, connected via themating connector 282 b. - Referring now to
FIG. 28a , showing analternative powering scheme 286 of an adapter (such as adapter 226), that is connected to apower carrying bus 262 a, where both the adapter circuits and thememory 171 are power fed from the power carried over thebus 262 a. In this non-limiting example, thebuses bus 262 a are accessed in connector 283, and are connected to the mating wires in the cable ofbus 262 b, via the pass-throughconnection 287 a carrying the 3.3 VDC power signal, andconnection 287 b for the 12 VDC power signals. The non-power related wires and signals of thebus 262 a are designated as thebus 284 a to the suitable circuits of the adapter. Further, thepower supply 253 b is power fed from the 3.3 VDC line viaconnection 288 b and from the 12 VDC line viaconnection 288 a, and feeds the voltages required for part or all adapter circuits operation. -
FIGS. 28-28 a described above exampled the case wherein the power is carried over dedicated and distinct wires, thus the power signal is carried separated from any other signals carried over the buses. Such configuration further requires the use of connectors (such asconnectors arrangement 290 inFIG. 29 . This scheme makes use of a power/data splitter (PDS) 294 and a power/data combiner (PDC)circuit 293, where the latter combines the power and data signals to a combined signal, and the first splits a combined signal into its power and data signals components. Such PDS or PDC circuits (e.g.,PDC 294 andPDS 293 inFIG. 29 ) commonly employ three ports designated as ‘PD’ 301 (stands for Power+Data), ‘D’ 302 (stands for Data only) and ‘P’ 303 (stands for Power only). In thePDS 294, thebus 262 a (carrying both power and data) is connected to port ‘PD’ 301 a, which passes the a data signal received from, or transmitted to, the port ‘D’ 302 a via thebus 284 a (which carry all non-power signals of thebus 262 a), while the power signal carried over thebus 262 a is split and supplied toport P 303 a and connected to via theconnection 291. Similarly, the power signal fed fromconnection 292 to thepower port P 303 b, and the digital data signal carried over thebus 284 b (which carry all non-power signals of thebus 262 b) are combined inPDC 293 and connected via port ‘PD’ 301 b to form thebus 262 b. Thus, power signal transparently passes between ports ‘PD’ 301 andP 303, while data signal (e.g. serial digital data signal) is transparently passed between ports ‘PD’301 and ‘D’ 302. The power signal may be AC or DC, and thePDC 293 or thePDS 294 may each contain only passive components or alternatively may contain both active and passive electronic circuits. - In one non-limiting example, the data and power signals are carried over the same wires using Frequency Division Multiplexing (FDM), where each signal is using a different frequency band, and wherein the frequency bands are spaced in frequency. For example, the power signal can be a DC signal (0 Hz), while the data signal will be carried over a band excluding the DC frequency. Similarly, the power signal can be an AC power signal, using a frequency above the frequency band used by the data signal. Separation or combining the power and data signals makes use of filters, passing or stopping the respective bands. A non-limiting example of a
circuit 300 that may serve as aPDS 294 or asPDC 293 is shown inFIG. 30 , corresponding to the case wherein the power signal is a DC signal (0 Hz), while the data signal is an AC signal carried over a band excluding the DC frequency. Acapacitor 305 a, which may be supplemented with anothercapacitor 305 b is connected between thePD port 301 and theD port 302, implementing a High Pass Filter (HPF) 304. TheHPF 304 substantially stops the DC power signal and substantially passes the data signal (or any AC signal) between the connected corresponding ports. Aninductor 307 a, which may be supplemented with anotherinductor 307 b is connected between thePD port 301 and theP port 303, implementing a Low Pass Filter (LPF) 306. TheLPF 306 substantially stops the data signal and substantially passes the DC power signal between the connected corresponding ports. Other passive or active implementations of theHPF 304 andLPF 306 can be equally used. Similarly, the power signal may be low-frequency power voltage, such as 50 Hz or 60 Hz. - Alternatively or in addition, the data and power signals are carried over the same wires using a split-tap transformer, as commonly known for powering an analog telephone set known as POTS (Plain Old Telephone Service and ISDN). A non-limiting example of a
circuit 310 that may serve as aPDS 294 or asPDC 293 is shown inFIG. 31 , corresponding for example to the case wherein the power signal is a DC signal (0 Hz), while the data signal is an AC signal carried over a band excluding the DC frequency. Atransformer 311 is connected between thePD port 301 and theD port 302, where theprimary side windings PD port 301, and the secondary winding 312 c is connected to theD port 302. The primary side is split to be formed of twowindings capacitor 313. The transformer substantially passes the data signal betweenPD port 301 and theD port 302, while the DC power signal (or a low frequency AC signal) is blocked by thecapacitor 303. Any DC signal such as the DC power signal is substantially passed between thePD port 301 and theP port 303. - In another alternative, the power signal is carried over a phantom channel between two pairs carrying the data signal or other signals. A non-limiting example of a of a
circuit 320 that may serve as aPDS 294 or asPDC 293 is shown inFIG. 32 , corresponding for example to the case wherein the power signal is a DC signal (0 Hz), while the data signal is an AC signal carried over a band excluding the DC frequency. Thetransformers PD port 301 and theD port 302, substantially passing data signals there between. The split tap 322 b (of the winding 322 a oftransformer 321 a) and thesplit tap 322 e (of the winding 322 d oftransformer 321 b) are connected to theP port 303, allowing for DC power flow between thePD port 301 and theP port 303. Such a phantom arrangement is used in communication based on IEEE802.3af or IEEE8023at standards. Using the phantom channel for carrying power may be used in the case wherein at least four conductors are used as a connecting medium between modules. - In one non-limiting example, such as in some NAS, the bus connecting to the memory or to the processor is based on a LAN communication, such as Ethernet, and may be partly or in full in accordance with the IEEE802.3 standard. For example, Gigabit Ethernet (GbE or 1 GigE) may be used, describing various technologies for transmitting Ethernet frames at a rate of a gigabit per second (1,000,000,000 bits per second), as defined by the IEEE 802.3-2008 standard. There are five physical layer standards for gigabit Ethernet using optical fiber (1000BASE-X), twisted pair cable (1000BASE-T), or balanced copper cable (1000BASE-CX). The IEEE 802.3z standard includes 1000BASE-SX for transmission over multi-mode fiber, 1000BASE-LX for transmission over single-mode fiber, and the nearly obsolete 1000BASE-CX for transmission over balanced copper cabling. These standards use 8b/10b encoding, which inflates the line rate by 25%, from 1000 Mbit/s to 1250 Mbit/s, to ensure a DC balanced signal. The symbols are then sent using NRZ. The IEEE 8023ab, which defines the widely used 1000BASE-T interface type, uses a different encoding scheme in order to keep the symbol rate as low as possible, allowing transmission over twisted pair. Similarly, The 10 gigabit Ethernet (10GE or 10 GbE or 10 GigE may be used, which is a version of Ethernet with a nominal data rate of 10 Gbit/s (billion bits per second), ten times faster than gigabit Ethernet. The 10 gigabit Ethernet standard defines only full duplex point to point links which are generally connected by network switches. The 10 gigabit Ethernet standard encompasses a number of different physical layers (PHY) standards. A networking device may support different PHY types through pluggable PHY modules, such as those based on SFP+.
- The powering scheme may be based on Power over Ethernet or PoE, which describes a system to pass electrical power safely, along with data, on Ethernet cabling, and may use phantom configuration for carrying the power. The PoE technology and applications are described in the White Paper “All You Need To Know About Power over Ethernet (PoE) and the IEEE 802.3af Standard”, by PowerDsine Ltd., 06-0002-082 20 May 2004, and in U.S. Pat. No. 6,473,609 to Lehr et al. titled: “Structure Cabling System”, which are all incorporated in their entirety for all purposes as if fully set forth herein. The IEEE standard for PoE requires
category 5 cable or higher for high power levels, but can operate with category 3 cable for low power levels. The power is supplied in common mode over two or more of the differential pairs of wires found in the Ethernet cables, and comes from a power supply within a PoE-enabled networking device such as an Ethernet switch or can be injected into a cable run with a midspan power supply. The IEEE 8023af-2003 PoE standard, which is incorporated in its entirety for all purposes as if fully set forth herein, provides up to 15.4 Watts of DC power (minimum 44 V DC and 350 mA) to each device. Only 12.95 Watts is assured to be available at the powered device as some power is dissipated in the cable. The updated IEEE 8023at-2009 PoE standard, also known as PoE+ or PoE plus, and which is incorporated in its entirety for all purposes as if fully set forth herein, provides up to 25.5 Watts of power. In PoE environment, anadapter 226 may serve as a Power Sourcing Equipment (PSE) that provides (“sources”) power on the Ethernet cable. Anadapter 226 consuming power from the LAN is referred to as a Powered Device (PD). - The scrambling (data and/or data) arrangements described above may be used for memory sanitization, in particular HDDs and SSDs. In one non-limiting example, the
adapter 226 is a removable device, mechanically attached to thememory 171. When the need for data sanitization of the memory arises, it is only required to mechanically (and electrically) remove theadapter 226 from thememory 171. Theadapter 226 may then be destructed or just disassociated from thememory 171. The content of thememory 171 thus rendered indecipherable to any attacker without theadapter 226. Further, anotheradapter 226 may now be used with thismemory 171, making it fully operational for storing other information, yet without any actual risk of data breaching. The adapter in such configuration serves as the ‘key’ for accessing thememory 171 content. Such sanitization is advantageous over the destruction of the whole memory, and much quicker than most data erasure techniques. Further, an organization using multiple memories (such as in installed in a plurality of computer systems) may attach a separate adapter to each memory, and when a specific memory content is required to be erased, another adapter (carrying a different scrambling scheme) may be attached to this memory, allowing the continuing of this memory for storing other information. The removed adapter may now be used with another memory, this allowing repurpose of the memories and the adapters by easily swapping the adapters, where the old data become irretrievable, and thus obviating the need for any physical destruction. The scrambling may thus be used for Full Disk Encryption (FDE), as a substitute or in addition to other FDE schemes. - An encryption (other than an address or data scrambling) may be used as a substitute or in addition to address or data scrambling. A non-limiting example of an
adapter 330, which is based onadapter 226 described above, is shown inFIG. 33 , supporting both scrambling and encryption functionalities. Theadapter 330 is used between thebuses buses connectors bus 338 a is received by thereceiver 333 a, being part of thetransceiver 331 a. The received data stream is converted into parallel by a deserializer (part of the serializer/de-serializer block 333 a), and then encrypted by the encryption block (part of the encryption/decryption block 334). A scrambling (either data or address or both) is performed by a scrambler (part of the scrambler/descrambler block 335), and then the data is serialized by a serializer (part of the serializer/de-serializer block 333 b). The serial data stream is then transmitted to thebus 338 b by thetransmitter 332 b, being part of thetransceiver 331 b. The other direction is similar, where the serial data input from thebus 338 b is received by thereceiver 333 b, being part of thetransceiver 331 b. The received data stream is converted into parallel by a deserializer (part of the serializer/de-serializer block 333 b). A descrambling (either data or address or both) is performed by a descrambler (part of the scrambler/descrambler block 335), and then decrypted by the encryption block (part of the encryption/decryption block 334). Then the data is serialized by a serializer (part of the serializer/de-serializer block 333 a). The serial data stream is then transmitted to thebus 338 a by thetransmitter 332 a, being part of thetransceiver 331 a. - Each or both of the
transmitters receivers parallel blocks blocks transceivers - The encryption/
decryption block 334 may use any type of encryption, and may be hardware based or software based (or both). In the latter case, theblock 334 includes a computer such ascomputer 140 described herein. Preferably, a small processor having an on-board memory is used. Any type of Full Disk Encryption (FDE) may be used. Common schemes use 128 or 256 bit Advanced Encryption Standard (AES) keys. Preferably, such encryption and decryption is On-the-fly encryption (OTFE), also known as Real-time Encryption. “On-the-fly” refers to the fact that the data or files are accessible immediately after the key is provided, and is transparent to the end user and done without any user intervention. Information about FDE technologies, requirements, guides and non-limiting examples are described in Special Publication 800-111 “Guide to Storage Encryption Technologies for End User Devices”, by the National Institute of Standards and Technology (NIST), November 2007, in Fruhwirth C., “New Methods in Hard Disk Encryption”, Institute for Computer Languages, Jul. 18, 2005, in Schiesser M., “Complete Hard Disk Encryption Using FreeBSD's GEOM Framework”, October 20th 2005, in Technology Paper “128-Bit Versus 256-Bit AES Encryption”, Seagate Technology LLC., 2008, in PP-CSIDK-CCv3.1 Version 1.4 “Protection Profile—On-the-fly Mass Storage Encryption Application”, by ‘Direction central de la securite systems d'information’, August 2008, and in “Full Disk Encryption—A cryptovision whitepaper”, version 1.0, by cv cryptovision GmbH, downloaded October 2011, in Technology Paper “Seagate DriveTrust™ Technology Enables Robust Security within the Hard Drive”, by Seagate Technology LLC, 2006, and in Technology Paper “DriveTrust™ Technology: A Technical Overview”, by Seagate Technology LLC, 2006, which are all incorporated in their entirety for all purposes as if fully set forth herein. - Any of the adapters or scramblers herein (or any part thereof) may be in the form a die (or chip) or an Integrated Circuit (IC). For example, the circuits and components described herein may be integrated with, or be part of, a memory IC (such as memory 171), a processor IC (such as processor 163), a computer that includes the processor, or other circuits.
- Alternatively or in addition, the adapters or scramblers herein (or any part thereof) may be in the form of few ICs and other electrical components physically mounted on, and connected by, a PCB (a.k.a. Printed Wiring Board—PWB), which is used to mechanically support and electrically connect the electronic components using conductive pathways, tracks or signal traces etched from copper sheets laminated onto a non-conductive substrate. The PCB carrying the circuits may be dedicated unit designed or used substantially or only for implementing the functionality of an adapter or scrambler (or any part thereof). Alternately, the components or circuits are integrated as part of another circuit. For example, the motherboard on which the
processor 163 is mounted may be used also for carrying the components (e.g., ICs) described herein. Alternatively or in addition, thememory 171 may be an HDD including an internal PCB for its control, where this PCB also used for the circuits described herein. - In the case where dedicated PCB is used, the electrical connection may use an edge connector, relating to the portion of a printed circuit board (PCB) consisting of traces leading to the edge of the board that are intended to plug into a matching socket. Such connectors are used in computers for expansion slots for peripheral cards, such as PCI, PCI Express, and AGP cards. Edge connector sockets consist of a plastic “box” open on one side, with pins on one or both side(s) of the longer edges, sprung to push into the middle of the open center. Connectors are often keyed to ensure the correct polarity, and may contain bumps or notches both for polarity and to ensure that the wrong type of device is not inserted. The socket width is chosen to fit to the thickness of the connecting PCB.
- In another non-limiting example, the dedicated PCB is enclosed in a protective enclosure, and connects via a PCB-mounted connector such as in PCMCIA or ExpressCard standard expansion cards. Preferably, such a connection supports hot-plugging. The ExpressCard standard specifies two form factors, ExpressCard/34 (34 mm wide) and ExpressCard/54 (54 mm wide, in an L-shape), where the connector is the same on both (34 mm wide). Standard cards are 75 mm long (10.6 mm shorter than CardBus) and 5 mm thick, but may be thicker on sections that extend outside the standard form. The 34 mm slot accepts only 34 mm cards, while the 54 mm slot accepts both 34 mm and 54 mm cards. A diagonal guide in the rear of the 54 mm slot guides 34 mm cards to the connector. Further, the form factor may be box-shaped having a protecting enclosure, further having one or more connectors for connecting to the buses for connecting between a processor and a memory, using the suitable standard bus connectors.
- Some buses allow for intermediate separate devices to be connected between a processor and peripherals, or between other end-units. For example, the Ethernet environment allows for hubs, switches and router to be connected. Similarly, the SAS bus standard defines SAS fanout and edge expanders. The adapter or scramblers circuits and components may be integrated into these intermediaries, sharing the enclosure, power, PCB and connections.
- In the case of a dedicated or separated PCB or enclosure, the PCB or enclosure may be designed to be easily removable, for example by an end user. Such plug-in module is commonly designed to be installed and removed typically by respectively connecting or disconnecting the module connectors (pins, plugs, jacks, sockets, receptacles or any other types) to or from the mating connectors, commonly using human hand force and without any tool. The connection mechanical support may be based only on the connectors, or supplemented by guides, rails, or any other mechanical support. Such a plug-in module may be pluggable into a computer system, motherboard, an intermediary device, or a memory.
- Referring now to
FIG. 34 , showing aview 340 of alaptop 341, which may correspond to thecomputer 140 shown inFIG. 13 . Thelaptop 341 is shown to include a display screen 348 (may be corresponding to display 131 inFIG. 13 ), a keyboard 349 (may be corresponding to inputdevice 132 inFIG. 13 ) and a touch pad surface 346 (may be corresponding tocursor control 133 inFIG. 13 ). Thelaptop 341 may connect to peripherals via two USB ports, shown as standard Type-A receptacles FIG. 34 further shows aUSB flash drive 342, having a standard Type-A plug 344. Such a flash drive typically consists of a small printed circuit board carrying the circuit elements and a USB connector, insulated electrically and protected inside a plastic, metal, or rubberized case which can be carried in a pocket or on a key chain, for example. The USB connector may be protected by a removable cap or by retracting into the body of the drive, although it is not likely to be damaged if unprotected. Most flash drives use a standard type-A USB connection allowing plugging into a port on a personal computer, but drives may be using other interfaces.Such flash drive 342 commonly includes a flash-based memory. View 340 a is a close view of theflash drive 342 and the USB connections. Referring now toFIG. 34a showing aview 345 of theflash drive 342 inserted into thelaptop 341 using the USB connection, and view 345 a is a close view of the USB connection. The connection allows for the bi-directional serial communication between theflash drive 342 and thelaptop 341, and further provides mechanical support and power feeding to theUSB drive 342. - An adapter (or a scrambler) described herein may be used for encrypting digital data stored on the
flash drive 342. Such an adapter (or a scrambler) may be in full or in part integrated into the enclosure of thelaptop 341, or to theflash drive 342. Further, part or all of an adapter (or a scrambler) may be a separate enclosure, such asadapter 352 shown inview 350 inFIG. 35 . Theadapter 352 includes a Type-A receptacle 343 c, which may mate with theA-Type plug 344 of theflash drive 342, and anA-Type plug 344 a which mates with the Type-A receptacle 343 b of thelaptop 341. View 350 a is a close view of theadapter 352 and its connections. Using such anadapter 352 may allow the use ofunchanged laptop 341 andflash drive 342, yet providing encryption or scrambling as described herein. Further, the data stored in the flash drive 342 (via the adapter 352) is easily secured by separating by separating thedrive 342 and theadapter 352, and can easily be retrieved by connecting them together. Such connection is shown inview 351 inFIG. 35a , where the flash drive is inserted to theadapter 352, which is inserted to thelaptop 341. Theadapter 352 may be mechanically attached or secured, and electrically connected to,laptop 341, as shown inview 354 inFIG. 35b . Assuming a unique scrambling (or encryption) scheme in theadapter 352, once data is written via theadapter 352 in theflash drive 342, such data may be read only by connecting theflash drive 342 to thelaptop 341 via theadapter 352 port. View 354 a is a close view of theadapter 352 and its connections. Alternatively or in addition, theadapter 352 may be mechanically attached (and electrically connected) to theflash drive 342, and the combined set (adapter 352 and the flash drive 342) may be plugged into any USB port (of any computer), while encrypting data stored on thedrive 342. View 355 a is a close view of theadapter 352 and its connections. - Referring now to
FIG. 36 , showing aview 360 of anHDD 361 connected viabus power cable 366 andbus data cable 367 to themotherboard 362, which may correspond to thecomputer 140 shown inFIG. 13 . Thebus power cable 366 includes two wires, and terminates withpower connectors power connector 363 a and theHDD power connector 363 b. Thedata power cable 367 includes 5 wires, and terminates withdata connectors data connector 364 a and theHDD power connector 364 b. TheHDD 361 connected via thepower cable 366 and thedata cable 367 to themotherboard 362 is shown inview 365 inFIG. 36a . For example, the bus may be SATA bus. In this example, thedata cable 367 is a SATA data cable having 7 conductors (instead of the 5 shown), 3 grounds and 4 active data lines arranged in two pairs (each carrying differential signaling).Connectors SATA data connectors power cable 366 is a SATA power cable having 5 conductors (instead of the 2 shown), and carrying 3.3 VDC, 5 VDC and 12 VDC.Connectors SATA power connectors - An adapter (or a scrambler) described herein may be used for encrypting digital data stored in the
HDD 361. Such an adapter (or a scrambler) may be in full or in part integrated onto themotherboard 362, or to theHDD 361. Further, part or all of an adapter (or a scrambler) may be a separate enclosure, such as the box-shapedadapter 371 shown inview 370 inFIG. 37 , connected between themotherboard 362 and theHDD 361. Apower cable 366 a is terminated with thecable power connectors mating power connector 363 a in themotherboard 362 and themating power connector 363 c in theadapter 371. Apower cable 366 b is terminated with thecable power connectors adapter 371 and themating power connector 363 b in theHDD 361. Adata cable 367 a is terminated with thecable data connectors mating data connector 364 a in themotherboard 362 and the mating data connector in theadapter 371. Adata cable 367 b is terminated with thecable data connectors adapter 371 and themating data connector 364 b in theHDD 361. Theadapter 371 connected between themotherboard 362 and theHDD 361 is shown inview 375 inFIG. 37 a. - Similarly,
FIG. 38 shows aview 380 of acellular telephone handset 381 having aslot 383, mating to receive amemory card 382, and view 380 a shows thecard 382 installed with thehandset 381. Thememory card 382 may include sensitive, private, confidential, or information that needs to be stored in as encrypted. For example, thecard 382 may be a subscriber identity module or Subscriber Identification Module (SIM) that stores in a non-volatile memory the International Mobile Subscriber Identity (IMSI) and the related key used to identify and authenticate the subscriber on mobile telephony devices (such as mobile phones and computers). A SIM card may be in accordance with ISO/IEC 7810—Identification cards standard. Thememory card 382 may further store a Personal Identification Number (PIN), which is a secret alpha-numeric password shared between a user and a system that can be used to authenticate the user to the system. Typically, the user is required to provide a non-confidential user identifier or token (the user ID) and a confidential PIN to gain access to the system. Upon receiving the user ID and PIN, the system looks up the PIN based upon the user ID and compares the looked-up PIN with the received PIN. The user is granted access only when the number entered matches with the number stored in the system. - Referring now to
FIG. 39a showing inview 390 anadapter 391, which correspond to an adapter or a scrambler described herein. Theadapter 391 is shaped to fit into theslot 383 similar to thememory card 382, as shown inview 390 a. Further, theadapter 391 provides a slot capable of receiving thememory card 382, as shown inview 395 inFIG. 39a . View 395 a inFIG. 39a shows the adapter 391 (with the inserted memory card 382) inserted inslot 383 of thecellular handset 381. - View 400 in
FIG. 40 shows anHDD 401 and anadapter 402 shaped as plug-in PC card, mating to be inserted into theslot 403 ofHDD 401. Theadapter 402 installed inHDD 401 is shown inview 400 a. Upon insertion of theadapter 402, information is stored encrypted in theHDD 401. When theadapter 402 is removed from theHDD 401, the stored information cannot be read, and thus is secured. - Referring now to
FIG. 41 showing anadapter 410, which correspond to any adapter or a scrambler described herein. Theadapter 410 is shaped as a plug-in unit based on a PCB and components mounted thereon, and using anedge card connector 411. Theadapter 410 may correspond to theaddress scrambler 191 shown inFIG. 19 or to thedata scrambler 211 shown inFIG. 21 , where the scrambling is based on swapping, re-arranging or otherwise changing the bus connections. The scrambling may be implemented using the miniature rotary switches 412 a-h shown as part of theadapter 410. The rotary switches 412 a-h shown are each operated by mechanical rotation of the shaft by a human user, and has a single pole and 8 positions or states, selected upon the shaft position. For example,rotary switch 412 a center may be connected to A7address line 176 a shown inFIG. 19 , and may be connected to any of theA 7 182 a to A0 182 h lines connected to thememory 171. Similarly, therotary switch 412 b center may be connected to A6address line 176 b, therotary switch 412 c center may be connected to A5address line 176 c, therotary switch 412 d center may be connected to A4address line 176 d, therotary switch 412 e center may be connected to A3address line 176 d, therotary switch 412 f center may be connected to A2address line 176 f, therotary switch 412 g center may be connected to A1address line 176 g, and therotary switch 412 h center may be connected to A0address line 176 h. Each of the switches 412 a-h may connect to one of thelines 182 a-h connecting to thememory 171, thus implementing a unique, user selected, scrambling scheme. View 415 inFIG. 41a shows theadapter 410 connected (and mechanically attached) to amotherboard 413.FIG. 42 shows a non-limiting example where the miniature rotary switches 412 a-h implementing a scrambler (data or address) are mounted as part of amotherboard 420. - Adapters (or scramblers) may be implemented, manufactured or otherwise provided as a set containing multiple units. Preferably, all the units in such a set share the same scrambling scheme (or any other encryption method), such that any encryption (such as scrambling) via one of the units in the set, may be decrypted (such as descrambled) via any other one of the other units in the set.
FIG. 43 shows aview 430 of a pair ofUSB adapters USB adapter 352 shown inFIG. 35 above. TheUSB adapters perforation line 432, making the mechanical attachment easily breakable along theperforation line 432 by applying reasonable human force. View 430 a shows theUSB adapters view 440 inFIG. 44 shows a set of 4SIM adapters breakable perforation lines SIM adapters adapter 391 shown inFIG. 39 above. View 440 a shows theadapters - Digital Rights Management (DRM) refers to access control technologies used to limit the use of digital content and devices. DRM is typically used by hardware manufacturers, publishers, copyright holders and others for protecting the copyrights (or other rights) of data circulated via the Internet or other via other digital media, by enabling secure distribution or usage and/or disabling illegal distribution or usage of the data. In some cases, a DRM mechanism protects intellectual property by either encrypting the data so that it can only be accessed by authorized users or marking the content with a digital watermark or similar method, so that the content may not be freely distributed. The arrangements, methods and systems described herein may be used as an alternative or in addition to other DRM mechanisms.
- In one example, the adapter described above is used for the purpose of copy protection or authentication. A software file (which may be a program, data or both) in the form of scrambled (or otherwise encrypted) data may be distributed in various forms, such as downloaded via the Internet or from a server, as an optical disk (e.g., DVD-ROM), residing in a storage USB adapter, or stored in any type of memory. Being scrambled, the software cannot be deciphered without the use of the appropriate adapter, suitable to the specific scrambling scheme used for the specific copy of the software. For example, if the scrambled software is stored in the
USB adapter 342 shown inFIG. 35 above, asuitable adapter 352 need to be used in order to properly access or use the data in theadapter 342. - While some of the preceding examples have been presented with respect to scrambling or encrypting relating to a processor writing to or reading from a memory, using scrambling may be equally applied to any digital data communication. In such a case, a message to be sent (such as packet payload) is converted using scrambling. For example, the message may be segmented into groups of equal length of bits such as 8 bits (bytes), 10 bits, 11 bits or any other length. Each group is then converted to another group of bits, according to a one-to-one mapping scheme known to the sender and to the receiver. The receiver applies the inverse mapping scheme to reconstruct the original message. Further, in the case of two way communication, each direction may use the same, similar, or different scrambling scheme.
- In one example, multiple memories are used for cooperatively storing information.
FIG. 45 shows inarrangement 450 3memories buses FIGS. 25-27 above. The memories may be included in the same physical device or in the same enclosure, such as different sectors in an HDD, or may preferably be distinct physical entities, such as 3 HDDs. Further, the memories may be the same type or using the same type of medium, or each memory may be of different type, such thatmemory 171 a may be an HDD, whilememory 171 b may be a Flash-based memory, andmemory 171 c may be an optical drive. Similarly, the buses may be of the same type, of similar types, or of different types. Thememories adapters such adapter 226 corresponds to the adapters described above. The adapters may be of the same type and may use the same scheme. Alternatively, the adapters may be of different types (such as address and data scramblers), or use the same, similar, or different scrambling schemes. Thememories combiner block 451, via therespective buses combiner 451 may be powered by any one of the power schemes described above, or any combination thereof. Further, part or all of the adapters and the splitter/combiner 451 may be housed together or separately, and may further be integrated with each other, integrated with any of the memories or with theprocessor 163. In another example shown inarrangement 455 inFIG. 45a , noadapters 226 are used, and thememories 171 are connected via their respective buses directly to the splitter/combiner 451. While exampled inFIG. 45 with 3 memories, any number of memories may be equally used. - The information to be stored is received in the splitter/
combiner 451, for example fromprocessor 163 viabus 262 a. The splitter/combiner 451 splits the information into information portions, and then the portions are written in one or more of thememories 171 according to a splitting scheme. When information is to be read, for example toprocessor 163 viabus 262 a, the splitter/combiner 451 combine the information from thememories 171, using a combining scheme which is the inverse of the splitting scheme. Preferably, the splitting and combining are transparent to theprocessor 163, and are performed autonomously (without the intervention of processor 163) by the splitter/combiner 451. Preferably, the information is stored inmemories 171 as partitioned, encrypted, scrambled, or any combination thereof. In order to reconstruct (or decipher) part or all the stored information, all memories need to be accessed, as well as the splitter/combiner 451 (or the splitting or combining schemes). An attacker having access to the content of one or more of the memories may not be able to eligible access part or all of the information stored. An attacker having access to all memories may need the splitter/combiner 451 or information about the splitting scheme in order to eligibly reconstruct the stored information. - The splitting of the information to be stored between the memories may be overlapping or non-overlapping. In the case of non-overlapping splitting, each portion of the information to be stored is stored in only one of the memories. For example, if the information to be stored (e.g., a file) may be split into three non-overlapping parts referred to as ‘A’, ‘B’ and ‘C’, then the splitter/
combiner 451 may split the information such that part ‘A’ is stored inmemory 171 a, part ‘B’ is stored inmemory 171 b, and part ‘C’ is stored inmemory 171 c. In the case of overlapping splitting, each portion of the information to be stored is stored in one or more of the memories. For example, if the information to be stored (e.g., a file) may be split into three non-overlapping parts referred to as ‘A’, ‘B’ and ‘C’, then the splitter/combiner 451 may split the information such that the parts ‘A’ and ‘B’ are stored inmemory 171 a, parts ‘B’ and ‘C’ are stored inmemory 171 b, and parts ‘C’ and ‘A’ are stored inmemory 171 c. As such, in the case of a failure in one of the memories, the full information may be restored from the remaining memories. Similar to the adapters described above, many specific splitting schemes may be used, and information stored using a specific splitter/combiner 451 implementing a specific splitting scheme, need to be read using a mating combining scheme, or by using the same splitter/combiner 451 used for the splitting. The techniques described above regarding the scrambling schemes or slicing schemes equally apply to splitting schemes. - The splitting of the splitter/
combiner 451 may use address space splitting, where the address space ‘seen’ by theprocessor 163 is translated to various addresses (locations) in thememories 171, based on an address mapping. In one example, the mapping is sequentially based, where sequential addresses of theprocessor 163 are translated to sequential addresses in thememories 171. For example, processor related address ‘0’ will be translated to address ‘0’ ofmemory 171 a, processor related address ‘1’ will be translated to address ‘0’ ofmemory 171 b, processor related address ‘2’ will be translated to address ‘0’ ofmemory 171 c, processor related address ‘3’ will be translated to address ‘1’ ofmemory 171 a, processor related address ‘4’ will be translated to address ‘1’ ofmemory 171 b, and so forth. Similarly, sequential group mapping may be used, where processor related address group ‘0’ to ‘9’ will be translated to address group ‘0’ to ‘9’ ofmemory 171 a, processor related address group ‘0’ to ‘19’ will be translated to address group ‘0’ to ‘9’ ofmemory 171 b, processor related address group ‘20’ to ‘29’ will be translated to address group ‘0’ to ‘9’ ofmemory 171 c, processor related address group ‘30’ to ‘39’ will be translated to address group ‘10’ to ‘19’ ofmemory 171 a, processor related address group ‘40’ to ‘49’ will be translated to address group ‘10’ to ‘19’ ofmemory 171 b, and so forth. - Preferably, a non-sequential address mapping is used, which may be based on a table or logic implemented by the splitter/
combiner 451. For example, the processor related address group ‘0’ to ‘8’ may be mapped according to arbitrarily one specific non-overlapping splitting scheme to the first 3 addresses of each of thememories 171 addresses ‘0’ to ‘2’ as follows: Processor related address ‘0’ will be translated to address ‘2’ ofmemory 171 c, processor related address ‘1’ will be translated to address ‘0’ ofmemory 171 b, processor related address ‘2’ will be translated to address ‘1’ ofmemory 171 a, processor related address ‘3’ will be translated to address ‘2’ ofmemory 171 b, processor related address ‘4’ will be translated to address ‘1’ ofmemory 171 c, processor related address ‘5’ will be translated to address ‘2’ ofmemory 171 a, processor related address ‘6’ will be translated to address ‘0’ ofmemory 171 c, processor related address ‘7’ will be translated to address ‘0’ ofmemory 171 a, and processor related address ‘8’ will be translated to address ‘1’ ofmemory 171 b. The next 9 processor related addresses (‘9’ to ‘17’) will be similarly allocated to the address ‘3’ to ‘5’ of thememories 171. While exampled using groups having 9 addresses, any size of groups may be equally used. For example, a group of 300 addresses may be used as split into three groups of 100 addresses, each allocated to 100 addresses in the 3memories 171. Larger group size makes it harder for an attacker to reconstruct the information without knowledge of the splitting scheme or having the splitter/combiner itself. - The splitting of the splitter/
combiner 451 may use data word splitting, where the data word to be written into a memory is split into parts, where each part is stored in one or more of the memories, according to a splitting scheme. The splitting may be non-overlapping, where each part is stored in a single memory, or may be overlapping, where a part is stored in two (or more) memories. The data word splitting may be used in addition to the address space splitting. - An example of a data word splitting is shown in
arrangement 465 shown inFIG. 46 , which may be based onFIG. 22 above. Threememories data buses memories 171 are connected to thedata bus 202 of thedata scrambler 201 via the splitter/combiner 461, implementing a specific data word splitting scheme. The splitter/combiner 461 connects D7 ofbus 202 to line D1 ofmemory 171 a, line D6 ofbus 202 to line D7 ofmemory 171 c, line D5 ofbus 202 to line D1 ofmemory 171 b, line D4 ofbus 202 to line D6 ofmemory 171 a, line D3 ofbus 202 to line D4 ofmemory 171 b, line D2 ofbus 202 to line D0 ofmemory 171 c, line D1 ofbus 202 to line D7 ofmemory 171 b, and line D0 ofbus 202 to line D5 ofmemory 171 c. Random data may be used in storage locations not actually used for storing the actual data, in order to further the security of the data stored in thememories 171. Such an example ofarrangement 465 is shown inFIG. 46a , where the random number generator 219 (which may be part of, or integrated with, the splitter/combiner 461) outputs are connected to data lines D7 and D2 ofmemory 171 a, and to D5 and D2 ofmemory 171 b. Similarly, all or part of the lines not connected to carry real data may be connected to therandom number generator 219. - All publications, standards, patents, and patent applications cited in this specification are herein incorporated by reference as if each individual publication, patent, or patent application were specifically and individually indicated to be incorporated by reference and set forth in its entirety herein.
- Discussions herein utilizing terms such as, for example, “processing,” “computing,” “calculating,” “determining,” “establishing”, “analyzing”, “checking”, or the like, may refer to operation(s) and/or process(es) of a computer, a computing platform, a computing system, or other electronic computing device, that manipulate and/or transform data represented as physical (e.g., electronic) quantities within the computer's registers and/or memories into other data similarly represented as physical quantities within the computer's registers and/or memories or other information storage medium that may store instructions to perform operations and/or processes.
- Throughout the description and claims of this specification, the word “comprise” and variations of that word such as “comprises” and “comprising”, means “including, but not limited to . . . ”, and is not intended to exclude other additives, components, integers or steps. Throughout the description and claims of this specification, the word “couple’ and variations of that word such as “coupling”, “coupled” and “couplable” refers to an electrical connection (such as a copper wire or soldered connection), a logical connection (such as through logical devices of a semiconductor device), a virtual connection (such as through randomly assigned memory locations of a memory device) or any other suitable direct or indirect connections, for example for allowing for the transfer of power, signal or data. The terms “plurality” and “a plurality” as used herein includes, for example, “multiple” or “two or more”. For example, “a plurality of items” includes two or more items.
- The arrangements and methods described herein may be implemented using hardware, software or a combination of both. The term “software integration” or any other reference to the integration of two programs or processes herein refers to software components (e.g. programs, modules, functions, processes etc.) that are (directly or via another component) combined, working or functioning together or form a whole, commonly for sharing a common purpose or set of objectives. Such software integration can take the form of sharing the same program code, exchanging data, being managed by the same manager program, executed by the same processor, stored on the same medium, sharing the same GUI or other user interface, sharing peripheral hardware (such as a monitor, printer, keyboard and memory), sharing data or a database, or being part of a single package. The term “hardware integration” or integration of hardware components herein refers to hardware components that are (directly or via another component) combined, working or functioning together or form a whole, commonly for sharing a common purpose or set of objectives. Such hardware integration can take the form of sharing the same power source (or power supply) or sharing other resources, exchanging data or control (e.g. by communicating), being managed by the same manager, physically connected or attached, sharing peripheral hardware connection (such as a monitor, printer, keyboard and memory), being part of a single package or mounted in a single enclosure (or any other physical collocating), sharing a communication port, or used or controlled with the same software or hardware. The term “integration” herein refers (as applicable) to a software integration, a hardware integration or a combination.
- The term “message” is used generically herein to describe at least an ordered series of characters or bits intended to convey a package of information (or a portion thereof), which may be transferred from one point to another, such as by using communication via one or more communication mechanisms or by transferring among processes. The term “port” refers to a place of access to a device, electrical circuit or network, where energy or signal may be supplied or withdrawn. The term “interface” of a networked device refers to a physical interface, a logical interface (e.g., a portion of a physical interface or sometimes referred to in industry as a sub-interface—for example, such as, but not limited to a particular VLAN associated with a network interface), and/or a virtual interface (e.g., traffic grouped together based on some characteristic—for example, such as, but not limited to, a tunnel interface).
- As used herein, the term “Integrated Circuit” (IC) shall include any type of integrated device of any function where the electronic circuit is manufactured by the patterned diffusion of trace elements into the surface of a thin substrate of semiconductor material (e.g., silicon), whether single or multiple die, or small or large scale of integration, and irrespective of process or base materials (including, without limitation Si, SiGe, CMOS and GAs) including without limitation applications specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital processors (e.g., DSPs, CISC microprocessors, or RISC processors), so-called “system-on-a-chip” (SoC) devices, memory (e.g., DRAM, SRAM, flash memory, ROM), mixed-signal devices, and analog ICs. The circuits in an IC are typically contained in a silicon piece or in a semiconductor wafer, and commonly packaged as a unit. The solid-state circuits commonly include interconnected active and passive devices, diffused into a single silicon chip. Integrated circuits can be classified into analog, digital and mixed signal (both analog and digital on the same chip). Digital integrated circuits commonly contain many of logic gates, flip-flops, multiplexers, and other circuits in a few square millimeters. The small size of these circuits allows high speed, low power dissipation, and reduced manufacturing cost compared with board-level integration. Further, a multi-chip module (MCM) may be used, where multiple integrated circuits (ICs), semiconductor dies or other discrete components are packaged onto a unifying substrate, facilitating their use as a single component (as though a larger IC).
- The term “computer” is used generically herein to describe any number of computers, including, but not limited to personal computers, embedded processing elements and systems, control logic, ASICs, chips, workstations, mainframes, etc. Any computer herein may consist of, or be part of, a handheld computer, including any portable computer which is small enough to be held and operated while holding in one hand or fit into a pocket. Such a device, also referred to as a mobile device, typically has a display screen with touch input and/or miniature keyboard. Non-limiting examples of such devices include Digital Still Camera (DSC), Digital video Camera (DVC or digital camcorder), Personal Digital Assistant (PDA), and mobile phones and smartphones. The mobile devices may combine video, audio and advanced communication capabilities, such as PAN and WLAN. A mobile phone (also known as a cellular phone, cell phone and a hand phone) is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area, by connecting to a cellular network provided by a mobile network operator. The calls are to and from the public telephone network which includes other mobiles and fixed-line phones across the world. The smartphones may combine the functions of a personal digital assistant (PDA), and may serve as portable media players and camera phones with high-resolution touch-screens, web browsers that can access, and properly display, standard web pages rather than just mobile-optimized sites, GPS navigation, Wi-Fi and mobile broadband access. In addition to telephony, the smartphones may support a wide variety of other services such as text messaging, MMS, email, Internet access, short-range wireless communications (infrared, Bluetooth), business applications, gaming and photography.
- Some embodiments may be used in conjunction with various devices and systems, for example, a Personal Computer (PC), a desktop computer, a mobile computer, a laptop computer, a notebook computer, a tablet computer, a server computer, a handheld computer, a handheld device, a Personal Digital Assistant (PDA) device, a cellular handset, a handheld PDA device, an on-board device, an off-board device, a hybrid device, a vehicular device, a non-vehicular device, a mobile or portable device, a non-mobile or non-portable device, a wireless communication station, a wireless communication device, a wireless Access Point (AP), a wired or wireless router, a wired or wireless modem, a wired or wireless network, a Local Area Network (LAN), a Wireless LAN (WLAN), a Metropolitan Area Network (MAN), a Wireless MAN (WMAN), a Wide Area Network (WAN), a Wireless WAN (WWAN), a Personal Area Network (PAN), a Wireless PAN (WPAN), devices and/or networks operating substantially in accordance with existing IEEE 802.11, 802.11a, 802.11b, 802.11g, 802.11k, 802.11n, 802.11r, 802.16, 802.16d, 802.16e, 802.20, 802.21 standards and/or future versions and/or derivatives of the above standards, units and/or devices which are part of the above networks, one way and/or two-way radio communication systems, cellular radio-telephone communication systems, a cellular telephone, a wireless telephone, a Personal Communication Systems (PCS) device, a PDA device which incorporates a wireless communication device, a mobile or portable Global Positioning System (GPS) device, a device which incorporates a GPS receiver or transceiver or chip, a device which incorporates an RFID element or chip, a Multiple Input Multiple Output (MIMO) transceiver or device, a Single Input Multiple Output (SIMO) transceiver or device, a Multiple Input Single Output (MISO) transceiver or device, a device having one or more internal antennas and/or external antennas, Digital Video Broadcast (DVB) devices or systems, multi-standard radio devices or systems, a wired or wireless handheld device (e.g., BlackBerry, Palm Treo), a Wireless Application Protocol (WAP) device, or the like.
- As used herein, the terms “program”, “programmable”, and “computer program” are meant to include any sequence or human or machine cognizable steps which perform a function. Such programs are not inherently related to any particular computer or other apparatus, and may be rendered in virtually any programming language or environment including, for example, C/C++, Fortran, COBOL, PASCAL, assembly language, markup languages (e.g., HTML, SGML, XML, VoXML), and the likes, as well as object-oriented environments such as the Common Object Request Broker Architecture (CORBA), Java™ (including J2ME, Java Beans, etc.) and the like, as well as in firmware or other implementations. Generally, program modules include routines, programs, objects, components, data structures, etc., that performs particular tasks or implement particular abstract data types.
- The terms “task” and “process” are used generically herein to describe any type of running programs, including, but not limited to a computer process, task, thread, executing application, operating system, user process, device driver, native code, machine or other language, etc., and can be interactive and/or non-interactive, executing locally and/or remotely, executing in foreground and/or background, executing in the user and/or operating system address spaces, a routine of a library and/or standalone application, and is not limited to any particular memory partitioning technique. The steps, connections, and processing of signals and information illustrated in the figures, including, but not limited to any block and flow diagrams and message sequence charts, may typically be performed in the same or in a different serial or parallel ordering and/or by different components and/or processes, threads, etc., and/or over different connections and be combined with other functions in other embodiments, unless this disables the embodiment or a sequence is explicitly or implicitly required (e.g., for a sequence of read the value, process the value—the value must be obtained prior to processing it, although some of the associated processing may be performed prior to, concurrently with, and/or after the read operation). Where certain process steps are described in a particular order or where alphabetic and/or alphanumeric labels are used to identify certain steps, the embodiments of the invention are not limited to any particular order of carrying out such steps. In particular, the labels are used merely for convenient identification of steps, and are not intended to imply, specify or require a particular order for carrying out such steps. Furthermore, other embodiments may use more or less steps than those discussed herein. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- As used herein, the terms “network”, “communication link” and “communications mechanism” are used generically herein to describe one or more networks, communications media or communications systems, including, but not limited to, the Internet, private or public telephone, cellular, wireless, satellite, cable, data networks. Data networks include, but not limited to, Metropolitan Area Networks (MANs), Wide Area Networks (WANs), Local Area Networks (LANs), Personal Area networks (PANs), WLANs (Wireless LANs), Internet, internets, NGN, intranets, Hybrid Fiber Coax (HFC) networks, satellite networks, and telco networks. Communication media include, but not limited to, a cable, an electrical connection, a bus, and internal communications mechanisms such as message passing, interprocess communications, and shared memory. Such networks or portions thereof may utilize any one or more different topologies (e.g., ring, bus, star, loop, etc.), transmission media (e.g., wired/RF cable, RF wireless, millimeter wave, optical, etc.) and/or communications or networking protocols (e.g., SONET, DOCSIS, IEEE Std. 8023, ATM, X25, Frame Relay, 3GPP, 3GPP2, WAP, SIP, UDP, FTP, RTP/RTCP, H.323, etc.). While exampled herein with regard to secured communication between a pair of network endpoint devices (host-to-host), the described method can equally be used to protect the data flow between a pair of gateways or any other networking-associated devices (network-to-network), or between a network device (e.g., security gateway) and a host (network-to-host).
- Some embodiments may be used in conjunction with one or more types of wireless communication signals and/or systems, for example, Radio Frequency (RF), Infra Red (IR), Frequency-Division Multiplexing (FDM), Orthogonal FDM (OFDM), Time-Division Multiplexing (TDM), Time-Division Multiple Access (TDMA), Extended TDMA (E-TDMA), General Packet Radio Service (GPRS), extended GPRS, Code-Division Multiple Access (CDMA), Wideband CDMA (WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA, Multi-Carrier Modulation (MDM), Discrete Multi-Tone (DMT), Bluetooth (RTM), Global Positioning System (GPS), Wi-Fi, Wi-Max, ZigBee™, Ultra-Wideband (UWB), Global System for Mobile communication (GSM), 2G, 2.5G, 3G, 3.5G, Enhanced Data rates for GSM Evolution (EDGE), or the like. Further, a wireless communication may be based on wireless technologies that are described in Chapter 20: “Wireless Technologies” of the publication number 1-587005-001-3 by Cisco Systems, Inc. (July 1999) titled: “Internetworking Technologies Handbook”, which is incorporated in its entirety for all purposes as if fully set forth herein.
- To allow communications between the general purpose computing devices, a computing or networking device preferably includes a network interface or an adapter, such as
communication interface 141. While the preferred embodiment contemplates that communications will be exchanged primarily via Ethernet, Internet or a broadband network, other means of exchanging communications are also contemplated. For example, a wireless access interface that receives and processes information exchanged via a wireless communications medium, such as, cellular communication technology, satellite communication technology, Bluetooth technology, WAP (Wireless Access Point) technology, or similar means of wireless communication can be utilized by the general purpose computing devices. Such an interface commonly includes a connector for wired or conductive medium, an antenna for over-the-air radio-frequency based communication and fiber-optic connector for fiber-optic cable based medium. A transceiver (transmitter/receiver set) is coupled to the connector or antenna, for transmitting to, and receiving from, the communication medium. A transmitter may be capable of operating at serial bit rates above 1 Gigabit/second, and a wired transmitter commonly use differential signaling and low voltages for faster switching, such as MOS Current Mode Logic (MCML) based technology. The transmitter may use pre-emphasis or de-emphasis to shape the transmitted signal to compensate for expected losses and distortion. The line-code may employ self-clocking and other encoding schemes, and control information is transmitted along with the data for error detection, alignment, clock correction, and channel bonding. Some popular encoding schemes are 8B/10B, 64B/66B, and 64B/67B. A receiver is commonly designed to mate with the corresponding transmitter and to recover the data and clock from the received signals, and commonly use equalization, and may further include impedance matching termination. PLLs (Phase Locked Loops) are commonly used for clock reconstruction and for achieving a serial clock that is an exact multiple of the parallel data. The receiver commonly decodes the received signal, and detects encoding-based errors. The byte boundaries and other alignment schemes may also be performed by the receivers. A transceiver may include a modem (MOdulator—DEModulator). - Any networking protocol may be utilized for exchanging information between the partners (e.g., the source computer, the ultimate destination computer and the relay servers) within the network (such as the Internet). For example, it is contemplated that communications can be performed using TCP/IP. Generally, HTTP and HTTPS are utilized on top of TCP/IP as the message transport envelope. These two protocols are able to deal with firewall technology better than other message management techniques. However, partners may choose to use a message-queuing system instead of HTTP and HTTPS if greater communications reliability is needed. A non-limiting example of a message queuing system is IBM's MQ-Series or the Microsoft Message Queue (MSMQ). The system described hereinafter is suited for both HTTP/HTTPS, message-queuing systems, and other communications transport protocol technologies. Furthermore, depending on the differing business and technical requirements of the various partners within the network, the physical network may embrace and utilize multiple communication protocol technologies.
- The corresponding structures, materials, acts, and equivalents of all means plus function elements in the claims below are intended to include any structure, or material, for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. The present invention should not be considered limited to the particular embodiments described above, but rather should be understood to cover all aspects of the invention as fairly set out in the attached claims. Various modifications, equivalent processes, as well as numerous structures to which the present invention may be applicable, will be readily apparent to those skilled in the art to which the present invention is directed upon review of the present disclosure. The claims are intended to cover such modifications and equivalents.
Claims (51)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/685,410 US11876785B2 (en) | 2010-12-22 | 2022-03-03 | System and method for routing-based internet security |
US18/545,489 US20240171549A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
US18/545,459 US20240137345A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IL210169A IL210169A0 (en) | 2010-12-22 | 2010-12-22 | System and method for routing-based internet security |
IL210169 | 2010-12-22 | ||
US201161430275P | 2011-01-06 | 2011-01-06 | |
US13/325,438 US9177157B2 (en) | 2010-12-22 | 2011-12-14 | System and method for routing-based internet security |
US14/492,551 US9762547B2 (en) | 2010-12-22 | 2014-09-22 | System and method for routing-based internet security |
US15/679,185 US10652214B2 (en) | 2010-12-22 | 2017-08-17 | System and method for routing-based internet security |
US16/807,757 US11303612B2 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
US17/685,410 US11876785B2 (en) | 2010-12-22 | 2022-03-03 | System and method for routing-based internet security |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/807,757 Continuation US11303612B2 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/545,489 Continuation US20240171549A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
US18/545,459 Continuation US20240137345A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
Publications (2)
Publication Number | Publication Date |
---|---|
US20220191176A1 true US20220191176A1 (en) | 2022-06-16 |
US11876785B2 US11876785B2 (en) | 2024-01-16 |
Family
ID=44718333
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/325,438 Active 2034-03-06 US9177157B2 (en) | 2010-12-22 | 2011-12-14 | System and method for routing-based internet security |
US14/492,551 Active 2032-08-20 US9762547B2 (en) | 2010-12-22 | 2014-09-22 | System and method for routing-based internet security |
US14/872,165 Active US9634995B2 (en) | 2010-12-22 | 2015-10-01 | System and method for routing-based internet security |
US15/679,185 Active 2032-03-28 US10652214B2 (en) | 2010-12-22 | 2017-08-17 | System and method for routing-based internet security |
US16/807,757 Active 2032-01-19 US11303612B2 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
US16/807,830 Pending US20200204522A1 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
US17/685,410 Active 2032-01-18 US11876785B2 (en) | 2010-12-22 | 2022-03-03 | System and method for routing-based internet security |
US18/545,489 Pending US20240171549A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
US18/545,459 Pending US20240137345A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/325,438 Active 2034-03-06 US9177157B2 (en) | 2010-12-22 | 2011-12-14 | System and method for routing-based internet security |
US14/492,551 Active 2032-08-20 US9762547B2 (en) | 2010-12-22 | 2014-09-22 | System and method for routing-based internet security |
US14/872,165 Active US9634995B2 (en) | 2010-12-22 | 2015-10-01 | System and method for routing-based internet security |
US15/679,185 Active 2032-03-28 US10652214B2 (en) | 2010-12-22 | 2017-08-17 | System and method for routing-based internet security |
US16/807,757 Active 2032-01-19 US11303612B2 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
US16/807,830 Pending US20200204522A1 (en) | 2010-12-22 | 2020-03-03 | System and method for routing-based internet security |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/545,489 Pending US20240171549A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
US18/545,459 Pending US20240137345A1 (en) | 2010-12-22 | 2023-12-19 | System and method for routing-based internet security |
Country Status (3)
Country | Link |
---|---|
US (9) | US9177157B2 (en) |
IL (1) | IL210169A0 (en) |
WO (1) | WO2012085908A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11915552B2 (en) | 2012-06-14 | 2024-02-27 | Lnw Gaming, Inc. | Methods for augmented reality gaming |
US12093355B2 (en) | 2022-09-07 | 2024-09-17 | Bank Of America Corporation | Secure data transfer in a virtual environment using blockchain |
Families Citing this family (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306021B2 (en) | 2008-04-02 | 2012-11-06 | Twilio, Inc. | System and method for processing telephony sessions |
US8837465B2 (en) | 2008-04-02 | 2014-09-16 | Twilio, Inc. | System and method for processing telephony sessions |
CN102227904A (en) | 2008-10-01 | 2011-10-26 | 特维里奥公司 | Telephony web event system and method |
US9692713B2 (en) * | 2008-11-12 | 2017-06-27 | Teloip Inc. | System, apparatus and method for providing a virtual network edge and overlay |
CA2789942C (en) | 2009-03-02 | 2017-05-23 | Jeffrey Lawson | Method and system for a multitenancy telephone network |
US8135912B2 (en) | 2009-05-18 | 2012-03-13 | Hola Networks, Ltd. | System and method of increasing cache size |
US9210275B2 (en) | 2009-10-07 | 2015-12-08 | Twilio, Inc. | System and method for running a multi-module telephony application |
US8560604B2 (en) | 2009-10-08 | 2013-10-15 | Hola Networks Ltd. | System and method for providing faster and more efficient data communication |
WO2011072274A1 (en) | 2009-12-11 | 2011-06-16 | Juniper Networks, Inc. | Media access control address translation in virtualized environments |
US8701155B2 (en) * | 2010-02-23 | 2014-04-15 | Microsoft Corporation | Communicating using a cloud infrastructure |
WO2011114373A1 (en) * | 2010-03-17 | 2011-09-22 | 富士通株式会社 | Communication device, program, and method |
GB201008888D0 (en) * | 2010-05-27 | 2010-07-14 | Qinetiq Ltd | Network security |
US20120208495A1 (en) | 2010-06-23 | 2012-08-16 | Twilio, Inc. | System and method for monitoring account usage on a platform |
US8838707B2 (en) | 2010-06-25 | 2014-09-16 | Twilio, Inc. | System and method for enabling real-time eventing |
US8594727B2 (en) * | 2010-09-13 | 2013-11-26 | Ricoh Co., Ltd. | Mobile device input/output interface expansion device and system having the same |
CA2716544C (en) * | 2010-10-08 | 2014-05-20 | Traffix Communication Systems Ltd. | Method and system for providing network services |
IL210169A0 (en) * | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US9021198B1 (en) * | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
WO2012102203A1 (en) * | 2011-01-24 | 2012-08-02 | 日本電信電話株式会社 | Confidential product-sum computation method, confidential product-sum computation system, computation apparatus, and program for same |
US9215473B2 (en) * | 2011-01-26 | 2015-12-15 | Qualcomm Incorporated | Sub-slices in video coding |
US8649268B2 (en) | 2011-02-04 | 2014-02-11 | Twilio, Inc. | Method for processing telephony sessions of a network |
US9398622B2 (en) | 2011-05-23 | 2016-07-19 | Twilio, Inc. | System and method for connecting a communication to a client |
US20140044123A1 (en) | 2011-05-23 | 2014-02-13 | Twilio, Inc. | System and method for real time communicating with a client application |
US9648006B2 (en) * | 2011-05-23 | 2017-05-09 | Twilio, Inc. | System and method for communicating with a client application |
US9021123B2 (en) * | 2011-08-23 | 2015-04-28 | Oracle International Corporation | Method and system for responder side cut through of received data |
US8879579B2 (en) | 2011-08-23 | 2014-11-04 | Oracle International Corporation | Method and system for requester virtual cut through |
US9658892B2 (en) | 2011-08-31 | 2017-05-23 | International Business Machines Corporation | Management of storage cluster performance with hybrid workloads |
US20130070403A1 (en) * | 2011-09-21 | 2013-03-21 | Lintes Technology Co., Ltd. | Electronic device and information processing assembly comprising the same |
US10182147B2 (en) | 2011-09-21 | 2019-01-15 | Twilio Inc. | System and method for determining and communicating presence information |
US8554175B2 (en) * | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications on a mobile device |
US9497688B2 (en) | 2011-09-23 | 2016-11-15 | Certicom Corp. | Managing mobile device applications in a wireless network |
US8554179B2 (en) | 2011-09-23 | 2013-10-08 | Blackberry Limited | Managing mobile device applications |
US9077998B2 (en) | 2011-11-04 | 2015-07-07 | Qualcomm Incorporated | Padding of segments in coded slice NAL units |
US9124895B2 (en) | 2011-11-04 | 2015-09-01 | Qualcomm Incorporated | Video coding with network abstraction layer units that include multiple encoded picture partitions |
JP2013115802A (en) * | 2011-12-01 | 2013-06-10 | Alaxala Networks Corp | Signal transmission system and signal transmission method |
US9495227B2 (en) | 2012-02-10 | 2016-11-15 | Twilio, Inc. | System and method for managing concurrent events |
US8671208B2 (en) * | 2012-03-06 | 2014-03-11 | Blackberry Limited | System and method for adaptively routing peer-to-peer (P2P) communications |
US20130250802A1 (en) * | 2012-03-26 | 2013-09-26 | Praveen Yalagandula | Reducing cabling costs in a datacenter network |
US20160105399A1 (en) * | 2012-04-05 | 2016-04-14 | Peter Rung | Systems and Methods for Cloaking Communications |
US9602586B2 (en) | 2012-05-09 | 2017-03-21 | Twilio, Inc. | System and method for managing media in a distributed communication network |
US9027102B2 (en) | 2012-05-11 | 2015-05-05 | Sprint Communications Company L.P. | Web server bypass of backend process on near field communications and secure element chips |
US9755852B2 (en) * | 2012-05-11 | 2017-09-05 | Fsr Inc. | Power over ethernet to USB adapter |
KR101633073B1 (en) * | 2012-06-06 | 2016-06-23 | 쿠앙-치 이노베이티브 테크놀로지 리미티드 | Handshake synchronization method and system based on visible light communication |
CN104380690B (en) * | 2012-06-15 | 2018-02-02 | 阿尔卡特朗讯 | Framework for the intimacy protection system of recommendation service |
US9247062B2 (en) | 2012-06-19 | 2016-01-26 | Twilio, Inc. | System and method for queuing a communication session |
US9282898B2 (en) | 2012-06-25 | 2016-03-15 | Sprint Communications Company L.P. | End-to-end trusted communications infrastructure |
US8737962B2 (en) | 2012-07-24 | 2014-05-27 | Twilio, Inc. | Method and system for preventing illicit use of a telephony platform |
US9032071B2 (en) * | 2012-07-24 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Systems and methods for representing a SAS fabric |
US9183412B2 (en) | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
EP2885739B1 (en) * | 2012-08-18 | 2019-10-02 | Fugue, Inc. | System and method for providing a secure computational environment |
US8938053B2 (en) | 2012-10-15 | 2015-01-20 | Twilio, Inc. | System and method for triggering on platform usage |
CN102882885B (en) * | 2012-10-17 | 2015-07-01 | 北京卓微天成科技咨询有限公司 | Method and system for improving cloud computing data security |
TWI573448B (en) | 2012-11-21 | 2017-03-01 | 財團法人工業技術研究院 | Streaming connection management method and system |
US9491795B2 (en) * | 2012-12-19 | 2016-11-08 | Gainspan Corporation | Extended connectivity based on wireless paths between stations of a wireless local area network (WLAN) |
US9256566B1 (en) | 2013-01-24 | 2016-02-09 | Seagate Technology Llc | Managed reliability of data storage |
CN203085207U (en) * | 2013-02-05 | 2013-07-24 | 中怡(苏州)科技有限公司 | Signal transmission cable and data line |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US8856330B2 (en) * | 2013-03-04 | 2014-10-07 | Fmr Llc | System for determining whether to block internet access of a portable system based on its current network configuration |
US9712608B2 (en) * | 2013-03-14 | 2017-07-18 | Microsoft Technology Licensing, Llc | Elastically scalable document-oriented storage services |
US9282124B2 (en) | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9838869B1 (en) | 2013-04-10 | 2017-12-05 | Sprint Communications Company L.P. | Delivering digital content to a mobile device via a digital rights clearing house |
JP6119407B2 (en) * | 2013-05-02 | 2017-04-26 | 富士通株式会社 | Information processing apparatus, information processing method, and information processing program |
US9104384B2 (en) * | 2013-05-13 | 2015-08-11 | International Microsystems, Inc. | Portable USB mass storage device |
US9560519B1 (en) | 2013-06-06 | 2017-01-31 | Sprint Communications Company L.P. | Mobile communication device profound identity brokering framework |
CN105594144B (en) * | 2013-06-11 | 2018-01-30 | 瑞典爱立信有限公司 | Security monitoring device, system and method for optical-fiber network |
US9240966B2 (en) | 2013-06-19 | 2016-01-19 | Twilio, Inc. | System and method for transmitting and receiving media messages |
US9225840B2 (en) | 2013-06-19 | 2015-12-29 | Twilio, Inc. | System and method for providing a communication endpoint information service |
EP2830274A1 (en) * | 2013-07-23 | 2015-01-28 | Knightsbridge Portable Communications SP | Method for electronic transmission of a message and proxy device therefore |
US9578401B2 (en) * | 2013-07-24 | 2017-02-21 | Commscope Technologies Llc | Systems and methods for detecting component rotation within a communication assembly |
US9231921B2 (en) * | 2013-08-20 | 2016-01-05 | Janus Technologies, Inc. | System and architecture for secure computer devices |
US9384150B2 (en) * | 2013-08-20 | 2016-07-05 | Janus Technologies, Inc. | Method and apparatus for performing transparent mass storage backups and snapshots |
US9241044B2 (en) * | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US9069486B2 (en) * | 2013-09-11 | 2015-06-30 | Kabushiki Kaisha Toshiba | Data transfer control device and data storage device |
KR102115914B1 (en) * | 2013-09-17 | 2020-05-27 | 삼성전자주식회사 | Method for transmitting anonymous message and Message transmission system thereof |
US9274858B2 (en) | 2013-09-17 | 2016-03-01 | Twilio, Inc. | System and method for tagging and tracking events of an application platform |
US9137127B2 (en) | 2013-09-17 | 2015-09-15 | Twilio, Inc. | System and method for providing communication platform metadata |
US9325624B2 (en) * | 2013-11-12 | 2016-04-26 | Twilio, Inc. | System and method for enabling dynamic multi-modal communication |
US9553799B2 (en) | 2013-11-12 | 2017-01-24 | Twilio, Inc. | System and method for client communication in a distributed telephony network |
US10410244B2 (en) | 2013-11-13 | 2019-09-10 | Bi Science (2009) Ltd | Behavioral content discovery |
US9058881B1 (en) * | 2013-12-05 | 2015-06-16 | Sandisk Technologies Inc. | Systems and methods for partial page programming of multi level cells |
CN104969491B (en) * | 2013-12-20 | 2017-08-04 | 华为技术有限公司 | A kind of adjustable optical module of bandwidth and system |
US9509604B1 (en) * | 2013-12-31 | 2016-11-29 | Sanmina Corporation | Method of configuring a system for flow based services for flash storage and associated information structure |
US20150205541A1 (en) * | 2014-01-20 | 2015-07-23 | Samya Systems, Inc. | High-capacity solid state disk drives |
CN104810034B (en) * | 2014-01-23 | 2018-07-06 | 联发科技(新加坡)私人有限公司 | RW system and carving method |
US9621586B2 (en) * | 2014-02-08 | 2017-04-11 | International Business Machines Corporation | Methods and apparatus for enhancing business services resiliency using continuous fragmentation cell technology |
TWI512527B (en) * | 2014-02-13 | 2015-12-11 | Univ Nat Taipei Technology | Bilateral firewall traversal method for advanced domain name system |
US9344573B2 (en) | 2014-03-14 | 2016-05-17 | Twilio, Inc. | System and method for a work distribution service |
US9942262B1 (en) | 2014-03-19 | 2018-04-10 | University Of Virginia Patent Foundation | Cyber-physical system defense |
US9680798B2 (en) | 2014-04-11 | 2017-06-13 | Nant Holdings Ip, Llc | Fabric-based anonymity management, systems and methods |
US9226217B2 (en) | 2014-04-17 | 2015-12-29 | Twilio, Inc. | System and method for enabling multi-modal communication |
US9633547B2 (en) | 2014-05-20 | 2017-04-25 | Ooma, Inc. | Security monitoring and control |
US10769931B2 (en) | 2014-05-20 | 2020-09-08 | Ooma, Inc. | Network jamming detection and remediation |
US10553098B2 (en) | 2014-05-20 | 2020-02-04 | Ooma, Inc. | Appliance device integration with alarm systems |
US11474767B1 (en) * | 2014-05-28 | 2022-10-18 | Amazon Technologies, Inc. | Print from web services platform to local printer |
US9424181B2 (en) | 2014-06-16 | 2016-08-23 | Empire Technology Development Llc | Address mapping for solid state devices |
US9311504B2 (en) | 2014-06-23 | 2016-04-12 | Ivo Welch | Anti-identity-theft method and hardware database device |
US9584492B2 (en) * | 2014-06-23 | 2017-02-28 | Vmware, Inc. | Cryptographic proxy service |
US9729438B2 (en) * | 2014-06-25 | 2017-08-08 | International Business Machines Corporation | Cloud-based anonymous routing |
US9246694B1 (en) | 2014-07-07 | 2016-01-26 | Twilio, Inc. | System and method for managing conferencing in a distributed communication network |
US9251371B2 (en) | 2014-07-07 | 2016-02-02 | Twilio, Inc. | Method and system for applying data retention policies in a computing platform |
US9774687B2 (en) | 2014-07-07 | 2017-09-26 | Twilio, Inc. | System and method for managing media and signaling in a communication platform |
US9516101B2 (en) | 2014-07-07 | 2016-12-06 | Twilio, Inc. | System and method for collecting feedback in a multi-tenant communication platform |
US11330100B2 (en) | 2014-07-09 | 2022-05-10 | Ooma, Inc. | Server based intelligent personal assistant services |
JP6298534B2 (en) * | 2014-08-05 | 2018-03-20 | 株式会社アキブシステムズ | ROUTE CONTROL DEVICE, ROUTE CONTROL METHOD, COMPUTER SYSTEM, PROGRAM, AND STORAGE MEDIUM CONTAINING PROGRAM |
US9709757B2 (en) * | 2014-10-17 | 2017-07-18 | Commscope Technologies Llc | Systems and methods for port mapping |
WO2016065080A1 (en) | 2014-10-21 | 2016-04-28 | Twilio, Inc. | System and method for providing a miro-services communication platform |
CN105592281B (en) * | 2014-10-22 | 2018-07-06 | 中国电信股份有限公司 | MPEG video processing method, device and system |
US9692752B2 (en) | 2014-11-17 | 2017-06-27 | Bank Of America Corporation | Ensuring information security using one-time tokens |
JP2016116029A (en) * | 2014-12-12 | 2016-06-23 | 富士通株式会社 | Network monitoring method, relay device, and network monitoring system |
US9779232B1 (en) | 2015-01-14 | 2017-10-03 | Sprint Communications Company L.P. | Trusted code generation and verification to prevent fraud from maleficent external devices that capture data |
US11627639B2 (en) | 2015-01-26 | 2023-04-11 | Ievgen Verzun | Methods and apparatus for HyperSecure last mile communication |
US11277390B2 (en) * | 2015-01-26 | 2022-03-15 | Listat Ltd. | Decentralized cybersecure privacy network for cloud communication, computing and global e-commerce |
US9998434B2 (en) * | 2015-01-26 | 2018-06-12 | Listat Ltd. | Secure dynamic communication network and protocol |
US9838868B1 (en) * | 2015-01-26 | 2017-12-05 | Sprint Communications Company L.P. | Mated universal serial bus (USB) wireless dongles configured with destination addresses |
US9477975B2 (en) | 2015-02-03 | 2016-10-25 | Twilio, Inc. | System and method for a media intelligence platform |
WO2016145071A1 (en) * | 2015-03-09 | 2016-09-15 | Vadium Technology Corporation | Secure message transmission using dynamic segmentation and encryption |
US10484339B2 (en) | 2015-03-24 | 2019-11-19 | Global Data Sentinel, Inc. | Pervasive data security |
US10135626B2 (en) * | 2015-04-14 | 2018-11-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power coupling circuits for single-pair ethernet with automotive applications |
US10063590B1 (en) * | 2015-04-23 | 2018-08-28 | Amazon Technologies, Inc. | Secure message protocol |
US11350254B1 (en) | 2015-05-05 | 2022-05-31 | F5, Inc. | Methods for enforcing compliance policies and devices thereof |
US9924245B2 (en) * | 2015-05-06 | 2018-03-20 | Crystal Instruments Corporation | Synchronized measurement device using local area network with ethernet messaging |
US11171875B2 (en) | 2015-05-08 | 2021-11-09 | Ooma, Inc. | Systems and methods of communications network failure detection and remediation utilizing link probes |
US10009286B2 (en) * | 2015-05-08 | 2018-06-26 | Ooma, Inc. | Communications hub |
US10911368B2 (en) | 2015-05-08 | 2021-02-02 | Ooma, Inc. | Gateway address spoofing for alternate network utilization |
US10158394B2 (en) * | 2015-05-11 | 2018-12-18 | Cohere Technologies, Inc. | Systems and methods for symplectic orthogonal time frequency shifting modulation and transmission of data |
US9934475B2 (en) | 2015-05-13 | 2018-04-03 | Bank Of America Corporation | Managing enterprise data movement using a heuristic data movement detection engine |
US9948703B2 (en) | 2015-05-14 | 2018-04-17 | Twilio, Inc. | System and method for signaling through data storage |
US11057446B2 (en) | 2015-05-14 | 2021-07-06 | Bright Data Ltd. | System and method for streaming content from multiple servers |
US10419891B2 (en) | 2015-05-14 | 2019-09-17 | Twilio, Inc. | System and method for communicating through multiple endpoints |
US10922252B2 (en) | 2015-06-22 | 2021-02-16 | Qualcomm Incorporated | Extended message signaled interrupts (MSI) message data |
WO2016207875A1 (en) | 2015-06-22 | 2016-12-29 | Photomyne Ltd. | System and method for detecting objects in an image |
US9946681B1 (en) * | 2015-06-29 | 2018-04-17 | Western Digital Technologies, Inc. | Host configured multi serial interface device |
US10657274B2 (en) | 2015-06-29 | 2020-05-19 | Samsng Electronics Co., Ltd. | Semiconductor device including memory protector |
US9819679B1 (en) | 2015-09-14 | 2017-11-14 | Sprint Communications Company L.P. | Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers |
WO2017046789A1 (en) | 2015-09-15 | 2017-03-23 | Gatekeeper Ltd. | System and method for securely connecting to a peripheral device |
US10326702B2 (en) * | 2015-09-17 | 2019-06-18 | Facebook, Inc. | Data service levels |
US11232453B2 (en) * | 2015-09-30 | 2022-01-25 | Mastercard International Incorporated | Method and system for authentication data collection and reporting |
US10341194B2 (en) | 2015-10-05 | 2019-07-02 | Fugue, Inc. | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
TW201716921A (en) * | 2015-11-10 | 2017-05-16 | 緯創資通股份有限公司 | Power control system and related method of transmitting power management bus to server |
US10282719B1 (en) | 2015-11-12 | 2019-05-07 | Sprint Communications Company L.P. | Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit |
US9817992B1 (en) | 2015-11-20 | 2017-11-14 | Sprint Communications Company Lp. | System and method for secure USIM wireless network access |
US11757946B1 (en) | 2015-12-22 | 2023-09-12 | F5, Inc. | Methods for analyzing network traffic and enforcing network policies and devices thereof |
KR101995056B1 (en) * | 2015-12-30 | 2019-07-02 | 한국전자통신연구원 | Distributed file system and method for operating the same |
US11178150B1 (en) | 2016-01-20 | 2021-11-16 | F5 Networks, Inc. | Methods for enforcing access control list based on managed application and devices thereof |
US10157153B2 (en) * | 2016-02-03 | 2018-12-18 | Qualcomm Incorporated | Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems |
US10659349B2 (en) | 2016-02-04 | 2020-05-19 | Twilio Inc. | Systems and methods for providing secure network exchanged for a multitenant virtual private cloud |
US9923956B2 (en) * | 2016-03-17 | 2018-03-20 | Webtext Holdings Limited | Message transfer system, method of transferring messages and software product |
US10291065B2 (en) * | 2016-04-04 | 2019-05-14 | Computime, Ltd. | Robust and high current smart-plug |
TWI620068B (en) * | 2016-05-13 | 2018-04-01 | 景相科技股份有限公司 | Universal serial bus hub with multiple hosts supported and automobile head unit using the same |
US10686902B2 (en) | 2016-05-23 | 2020-06-16 | Twilio Inc. | System and method for a multi-channel notification service |
US10063713B2 (en) | 2016-05-23 | 2018-08-28 | Twilio Inc. | System and method for programmatic device connectivity |
CN107659845B (en) * | 2016-07-25 | 2021-08-03 | 中兴通讯股份有限公司 | Method and device for monitoring user state of Internet Protocol Television (IPTV) |
US10382251B2 (en) * | 2016-07-29 | 2019-08-13 | Sap Se | Transaction execution in multi-tier computing environments |
EP3293933A1 (en) * | 2016-09-09 | 2018-03-14 | Koninklijke KPN N.V. | Communication content protection |
US10348698B2 (en) * | 2016-09-15 | 2019-07-09 | Nagravision S.A. | Methods and systems for link-based enforcement of routing of communication sessions via authorized media relays |
US10505792B1 (en) | 2016-11-02 | 2019-12-10 | F5 Networks, Inc. | Methods for facilitating network traffic analytics and devices thereof |
WO2018106682A1 (en) | 2016-12-07 | 2018-06-14 | Integrated Device Technology, Inc. | Time slotted bus system for multiple coupled digital phase-locked loops |
US10437708B2 (en) | 2017-01-26 | 2019-10-08 | Bank Of America Corporation | System for refreshing and sanitizing testing data in a low-level environment |
US10082975B1 (en) * | 2017-03-02 | 2018-09-25 | Micron Technology, Inc. | Obfuscation-enhanced memory encryption |
US10198381B2 (en) | 2017-03-10 | 2019-02-05 | Toshiba Memory Corporation | Circuitry to alleviate printed circuit board routing congestion |
US10812266B1 (en) | 2017-03-17 | 2020-10-20 | F5 Networks, Inc. | Methods for managing security tokens based on security violations and devices thereof |
ES2881504T3 (en) * | 2017-04-04 | 2021-11-29 | Abb Spa | A computer-implemented method of setting up an electronic relay |
CN108733311B (en) * | 2017-04-17 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | Method and apparatus for managing storage system |
US10834177B2 (en) * | 2017-05-08 | 2020-11-10 | International Business Machines Corporation | System and method for dynamic activation of real-time streaming data overflow paths |
US11343237B1 (en) | 2017-05-12 | 2022-05-24 | F5, Inc. | Methods for managing a federated identity environment using security and access control data and devices thereof |
US11122042B1 (en) | 2017-05-12 | 2021-09-14 | F5 Networks, Inc. | Methods for dynamically managing user access control and devices thereof |
US10592285B2 (en) * | 2017-05-31 | 2020-03-17 | Dell Products, Lp | System and method for information handling system input/output resource management |
US10231116B2 (en) * | 2017-06-21 | 2019-03-12 | International Business Machines Corporation | Communication access services for mobile phones |
US10499249B1 (en) | 2017-07-11 | 2019-12-03 | Sprint Communications Company L.P. | Data link layer trust signaling in communication network |
EP3767494B1 (en) | 2017-08-28 | 2023-02-15 | Bright Data Ltd. | Method for improving content fetching by selecting tunnel devices |
US11190374B2 (en) | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
FR3072238B1 (en) * | 2017-10-10 | 2019-09-27 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | DEVICE AND METHOD FOR DATA TRANSMISSION |
CN108182371A (en) * | 2017-12-22 | 2018-06-19 | 杭州中天微系统有限公司 | The chip external memory address scrambling apparatus and method of a kind of system on chip |
US10841086B2 (en) | 2018-02-06 | 2020-11-17 | Wickr, Inc. | Facilitating communications using hybrid cryptography |
US10819510B2 (en) * | 2018-02-06 | 2020-10-27 | Wickr Inc. | Facilitating communications using hybrid cryptography |
US10970239B2 (en) * | 2018-03-16 | 2021-04-06 | Intel Corporation | Hub circuit for a DIMM having multiple components that communicate with a host |
US11009864B2 (en) | 2018-04-06 | 2021-05-18 | Bently Nevada, Llc | Gated asynchronous multipoint network interface monitoring system |
US10928440B2 (en) | 2018-04-06 | 2021-02-23 | Bently Nevada, Llc | Monitoring system with bridges for interconnecting system elements |
FR3080510A1 (en) * | 2018-04-23 | 2019-10-25 | Orange | METHOD FOR PRODUCING RELAY UTILIZATION DATA USED DURING COMMUNICATION BETWEEN TWO APPARATUSES, SEARCH FOR SAID DATA, AND ASSOCIATED APPARATUSES. |
US10282553B1 (en) | 2018-06-11 | 2019-05-07 | Grey Market Labs, PBC | Systems and methods for controlling data exposure using artificial-intelligence-based modeling |
US11068605B2 (en) | 2018-06-11 | 2021-07-20 | Grey Market Labs, PBC | Systems and methods for controlling data exposure using artificial-intelligence-based periodic modeling |
US11989328B2 (en) * | 2018-06-11 | 2024-05-21 | Grey Market Labs, PBC | Embedded device for control of data exposure |
WO2020001743A1 (en) * | 2018-06-26 | 2020-01-02 | Telefonaktiebolaget Lm Ericsson (Publ) | A proxy network with self-erasing processing elements |
US10601589B1 (en) | 2018-07-16 | 2020-03-24 | Banuba Limited | Computer systems designed for instant message communications with computer-generated imagery communicated over decentralised distributed networks and methods of use thereof |
US11805418B2 (en) * | 2018-09-13 | 2023-10-31 | Sophos Limited | System and method for location-based endpoint security |
US11108127B2 (en) | 2018-09-25 | 2021-08-31 | Micron Technology, Inc. | Rectangular waveguide communication between memory and processor |
US11425170B2 (en) * | 2018-10-11 | 2022-08-23 | Honeywell International Inc. | System and method for deploying and configuring cyber-security protection solution using portable storage device |
US10764211B2 (en) * | 2018-10-19 | 2020-09-01 | Avago Technologies International Sales Pte. Limited | Flexible switch logic |
CN109152065B (en) * | 2018-10-31 | 2022-03-25 | 重庆邮电大学 | IPv 6-based industrial wireless network multi-node secure network access method |
CN109521996B (en) * | 2018-11-16 | 2021-08-24 | 武汉华芯纳磁科技有限公司 | Multi-state true random number generator based on electron spin |
US10866917B2 (en) * | 2018-12-03 | 2020-12-15 | Ati Technologies Ulc | Inter device data exchange via external bus by utilizing communication port |
US11070527B2 (en) | 2018-12-07 | 2021-07-20 | Intel Corporation | Securing platform link with encryption |
CN109445876B (en) * | 2018-12-12 | 2023-04-11 | 北京时代奥视科技有限公司 | Method and monitor for loading LUT data |
CN109739765B (en) * | 2018-12-29 | 2021-12-31 | 杭州复杂美科技有限公司 | Test system |
US11265300B1 (en) | 2018-12-29 | 2022-03-01 | Whatsapp Llc | Methods and systems for transmitting anonymized information |
US11032352B2 (en) | 2019-01-31 | 2021-06-08 | Salesforce.Com, Inc. | Conveying encrypted electronic data from a device outside a multitenant system via the multitenant system to a recipient device that is a tenant device associated with the multitenant system |
US11159499B2 (en) * | 2019-01-31 | 2021-10-26 | Salesforce.Com, Inc. | Conveying encrypted electronic data |
KR102617715B1 (en) * | 2019-02-01 | 2023-12-27 | 삼성전자주식회사 | Electronic device and controlling method of electronic device |
EP4075304B1 (en) | 2019-02-25 | 2023-06-28 | Bright Data Ltd. | System and method for url fetching retry mechanism |
US11743240B2 (en) | 2019-03-08 | 2023-08-29 | Intel Corporation | Secure stream protocol for serial interconnect |
US11856073B1 (en) * | 2019-03-22 | 2023-12-26 | Amazon Technologies, Inc. | Message batching for communication protocols |
US11411922B2 (en) | 2019-04-02 | 2022-08-09 | Bright Data Ltd. | System and method for managing non-direct URL fetching service |
US10979399B2 (en) | 2019-05-24 | 2021-04-13 | Sierra Nevada Corporation | Unified communication gateway systems |
US11435534B2 (en) * | 2019-06-11 | 2022-09-06 | Clearfield, Inc. | Flexible optical fiber connectors and assemblies |
US10839918B1 (en) * | 2019-06-24 | 2020-11-17 | Sandisk Technologies Llc | Boost converter in memory chip |
RU2739862C2 (en) * | 2019-06-28 | 2020-12-29 | Акционерное общество "Лаборатория Касперского" | Method for adaptive selection of user data transmission paths |
US11347884B2 (en) * | 2019-07-02 | 2022-05-31 | Bank Of America Corporation | Data security tool |
CN112217733B (en) * | 2019-07-09 | 2024-02-02 | 中兴通讯股份有限公司 | Message processing method and related device |
US11379571B2 (en) | 2019-07-12 | 2022-07-05 | Hewlett Packard Enterprise Development Lp | Presence terminal-based side channel communications |
CN110391984B (en) * | 2019-07-26 | 2022-01-25 | 新华三大数据技术有限公司 | Message forwarding method and device |
US11303653B2 (en) | 2019-08-12 | 2022-04-12 | Bank Of America Corporation | Network threat detection and information security using machine learning |
CN110730391B (en) * | 2019-09-11 | 2022-03-01 | 浙江大华技术股份有限公司 | Method, system, equipment and storage medium for video transmission based on mesh networking |
US11947663B2 (en) | 2019-09-24 | 2024-04-02 | The Trustees Of Columbia University In The City Of New York | Control flow protection based on phantom addressing |
WO2021056094A1 (en) * | 2019-09-24 | 2021-04-01 | Genetec Inc. | Intermediary device for daisy chain and tree configuration in hybrid data/power connection |
WO2021062193A1 (en) * | 2019-09-26 | 2021-04-01 | Commscope Technologies Llc | Passive backplane architecture for master unit of distributed antenna system |
CN110690765B (en) * | 2019-10-11 | 2023-03-24 | 哈尔滨工业大学 | High-speed full-duplex wireless energy data synchronous transmission system based on frequency division multiplexing |
US10986494B1 (en) * | 2019-10-18 | 2021-04-20 | Capital One Services, Llc | Multi cell phone tower information transfer security |
US11323473B2 (en) | 2020-01-31 | 2022-05-03 | Bank Of America Corporation | Network threat prevention and information security using machine learning |
US11223470B1 (en) | 2020-03-06 | 2022-01-11 | Wells Fargo Bank, N.A. | Post-quantum cryptography side chain |
US11995194B1 (en) | 2020-03-06 | 2024-05-28 | Wells Fargo Bank, N.A. | Self-contained encrypted data and decryption application for third party data storage and data dissemination |
EP3879762A1 (en) * | 2020-03-11 | 2021-09-15 | Rohde & Schwarz GmbH & Co. KG | Data communication system and method of communicating data |
US11770155B2 (en) | 2020-05-19 | 2023-09-26 | Genetec Inc. | Power distribution and data routing in a network of devices interconnected by hybrid data/power links |
RU2754967C1 (en) * | 2020-06-19 | 2021-09-08 | Акционерное общество "Лаборатория Касперского" | Method of transferring anonymous data to an untrusted party |
CN111858407B (en) * | 2020-07-14 | 2021-12-07 | 中航航空电子有限公司 | Communication method in high-speed peripheral equipment interconnection system and high-speed peripheral equipment interconnection system |
US20220245443A1 (en) | 2020-07-17 | 2022-08-04 | Pacaso Inc. | Utilizing a learning engine in predicting physical resource utilization |
CN112036932B (en) * | 2020-08-03 | 2023-02-03 | 华人运通(上海)云计算科技有限公司 | Operation recommendation method, device, equipment and storage medium based on user behaviors |
CN112751619B (en) * | 2020-12-31 | 2022-04-05 | 武汉光迅科技股份有限公司 | Photoelectric composite optical module |
CN115088232A (en) * | 2021-01-20 | 2022-09-20 | 华为技术有限公司 | Data encryption method, data transmission method, related device and equipment |
TWI773106B (en) | 2021-01-28 | 2022-08-01 | 華邦電子股份有限公司 | Memory apparatus embedded with computing function and operation method thereof |
US12063207B2 (en) * | 2021-09-28 | 2024-08-13 | Fortinet, Inc. | Non-interfering access layer end-to-end encryption for IOT devices over a data communication network |
JP2023063948A (en) * | 2021-10-25 | 2023-05-10 | キヤノン株式会社 | Image processing apparatus, control method, and program |
US12095749B2 (en) | 2021-12-09 | 2024-09-17 | Netflow, UAB | Distributed trust-based communication |
US20230188512A1 (en) * | 2021-12-09 | 2023-06-15 | Netflow, UAB | Distributed Trust-Based Communication |
CN114048515B (en) * | 2022-01-11 | 2022-03-22 | 四川大学 | Medical big data sharing method based on federal learning and block chain |
US11803924B2 (en) | 2022-01-27 | 2023-10-31 | Pacaso Inc. | Secure system utilizing a learning engine |
CN116680066A (en) * | 2022-02-23 | 2023-09-01 | 戴尔产品有限公司 | Managing hyper-converged infrastructure (HCI) device nodes and clusters with DHCP-based resources |
US20240045942A1 (en) * | 2022-08-04 | 2024-02-08 | Rovi Guides, Inc. | Systems and methods for using occluded 3d objects for mixed reality captcha |
CN116938596A (en) * | 2023-09-12 | 2023-10-24 | 四川科瑞软件有限责任公司 | Data security transmission method of heterogeneous network |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359626A (en) * | 1992-09-02 | 1994-10-25 | Motorola, Inc. | Serial interface bus system for transmitting and receiving digital audio information |
US5892826A (en) * | 1996-01-30 | 1999-04-06 | Motorola, Inc. | Data processor with flexible data encryption |
US20020161973A1 (en) * | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Programmable data path accelerator |
US6622230B1 (en) * | 2000-11-28 | 2003-09-16 | Advanced Micro Devices, Inc. | Multi-set block erase |
US20030200451A1 (en) * | 2002-04-18 | 2003-10-23 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
US20050010954A1 (en) * | 2003-07-09 | 2005-01-13 | Serconet Ltd. | Modular outlet |
US6876696B1 (en) * | 1999-09-24 | 2005-04-05 | Adtran, Inc. | Timing device and method using a timing equalizer filter for a digital communications systems |
US20080052497A1 (en) * | 2006-08-21 | 2008-02-28 | Renesas Technology Corp. | Parallel operation device allowing efficient parallel operational processing |
US20090016532A1 (en) * | 2005-05-12 | 2009-01-15 | Michael Baldischweiler | Portable data carrier featuring secure data processing |
US20100167822A1 (en) * | 2000-10-17 | 2010-07-01 | Igt | Multi-system gaming terminal communication device |
US20160065368A1 (en) * | 2014-08-29 | 2016-03-03 | The Boeing Company | Address-dependent key generator by xor tree |
Family Cites Families (343)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1447241A (en) * | 1973-03-26 | 1976-08-25 | Secr Defence | Data signal switching apparatus |
US3962539A (en) | 1975-02-24 | 1976-06-08 | International Business Machines Corporation | Product block cipher system for data security |
US4168396A (en) | 1977-10-31 | 1979-09-18 | Best Robert M | Microprocessor for executing enciphered programs |
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
US4529870A (en) | 1980-03-10 | 1985-07-16 | David Chaum | Cryptographic identification, financial transaction, and credential device |
US4759063A (en) | 1983-08-22 | 1988-07-19 | Chaum David L | Blind signature systems |
US4947430A (en) | 1987-11-23 | 1990-08-07 | David Chaum | Undeniable signature systems |
US4598170A (en) | 1984-05-17 | 1986-07-01 | Motorola, Inc. | Secure microprocessor |
US4853884A (en) | 1987-09-11 | 1989-08-01 | Motorola, Inc. | Random number generator with digital feedback |
US4914698A (en) | 1988-03-16 | 1990-04-03 | David Chaum | One-show blind signature systems |
US4937781A (en) * | 1988-05-13 | 1990-06-26 | Dallas Semiconductor Corporation | Dual port ram with arbitration status register |
US4905176A (en) | 1988-10-28 | 1990-02-27 | International Business Machines Corporation | Random number generator circuit |
US4991210A (en) | 1989-05-04 | 1991-02-05 | David Chaum | Unpredictable blind signature systems |
JP2831703B2 (en) | 1989-06-23 | 1998-12-02 | 株式会社東芝 | Automatic floor plan calculation device |
US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
DE69031614T2 (en) | 1990-01-29 | 1998-05-07 | Security Techn Corp | Optionally moderated transaction systems |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5245320A (en) * | 1992-07-09 | 1993-09-14 | Thrustmaster, Inc. | Multiport game card with configurable address |
US5341415A (en) | 1992-09-22 | 1994-08-23 | Paul Baran | Method and apparatus for sharing of common in-house wiring to permit multiple telephone carriers to serve the same customer |
US5373558A (en) | 1993-05-25 | 1994-12-13 | Chaum; David | Desinated-confirmer signature systems |
US5485520A (en) | 1993-10-07 | 1996-01-16 | Amtech Corporation | Automatic real-time highway toll collection from moving vehicles |
US5666516A (en) * | 1993-12-16 | 1997-09-09 | International Business Machines Corporation | Protected programmable memory cartridge having selective access circuitry |
US5712913A (en) | 1994-02-08 | 1998-01-27 | Digicash Incorporated | Limited-traceability systems |
US5493614A (en) | 1994-05-03 | 1996-02-20 | Chaum; David | Private signature and proof systems |
US5715174A (en) | 1994-11-15 | 1998-02-03 | Absolute Software Corporation | Security apparatus and method |
US5646997A (en) * | 1994-12-14 | 1997-07-08 | Barton; James M. | Method and apparatus for embedding authentication information within digital data |
JPH0954761A (en) * | 1995-08-15 | 1997-02-25 | Sony Corp | Digital signal processor and information processing system |
US5724027A (en) | 1995-09-28 | 1998-03-03 | Intel Corporation | Method and apparatus for providing system security to personal computer systems using transparent system interrupt |
US5946469A (en) | 1995-11-15 | 1999-08-31 | Dell Computer Corporation | Computer system having a controller which emulates a peripheral device during initialization |
US6473609B1 (en) | 1995-12-11 | 2002-10-29 | Openwave Systems Inc. | Method and architecture for interactive two-way communication devices to interact with a network |
KR0174978B1 (en) | 1995-12-30 | 1999-04-01 | 김광호 | Hardware-implemented digital computer system security device |
US6975351B2 (en) * | 1996-04-26 | 2005-12-13 | Canon Kabushiki Kaisha | Apparatus and system for camera head determination in an image sensing system |
US6173330B1 (en) * | 1996-09-17 | 2001-01-09 | Motorola, Inc. | Delivery and acquisition of data segments with optimized inter-arrival time |
US6012144A (en) | 1996-10-08 | 2000-01-04 | Pickett; Thomas E. | Transaction security method and apparatus |
US6005939A (en) | 1996-12-06 | 1999-12-21 | International Business Machines Corporation | Method and apparatus for storing an internet user's identity and access rights to world wide web resources |
US5873101A (en) | 1997-02-10 | 1999-02-16 | Oracle Corporation | Database backup/restore and bulk data transfer |
IL121071A0 (en) | 1997-03-27 | 1997-11-20 | El Mar Software Ltd | Automatic conversion server |
US6266704B1 (en) | 1997-05-30 | 2001-07-24 | The United States Of America As Represented By The Secretary Of The Navy | Onion routing network for securely moving data through communication networks |
US6088802A (en) | 1997-06-04 | 2000-07-11 | Spyrus, Inc. | Peripheral device with integrated security functionality |
US6061794A (en) | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6304860B1 (en) | 1997-10-03 | 2001-10-16 | Joseph B. Martin, Jr. | Automated debt payment system and method using ATM network |
US6345359B1 (en) | 1997-11-14 | 2002-02-05 | Raytheon Company | In-line decryption for protecting embedded software |
JPH11175607A (en) | 1997-12-05 | 1999-07-02 | Hitachi Ltd | System for sending document and method therefor |
US5943283A (en) | 1997-12-05 | 1999-08-24 | Invox Technology | Address scrambling in a semiconductor memory |
JP3971032B2 (en) * | 1997-12-10 | 2007-09-05 | 富士通株式会社 | SEMICONDUCTOR MEMORY DEVICE, SEMICONDUCTOR MEMORY DEVICE DATA READING METHOD, AND DATA STORAGE DEVICE |
US6453446B1 (en) | 1997-12-24 | 2002-09-17 | Magma Design Automation, Inc. | Timing closure methodology |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6243851B1 (en) | 1998-03-27 | 2001-06-05 | Xilinx, Inc. | Heterogeneous method for determining module placement in FPGAs |
US6122743A (en) | 1998-03-31 | 2000-09-19 | Siemens Information And Communication Networks, Inc. | System for providing enhanced security for transactions transmitted through a distributed network |
US6345330B2 (en) * | 1998-05-01 | 2002-02-05 | Acqis Technology, Inc. | Communication channel and interface devices for bridging computer interface buses |
WO2000018078A1 (en) | 1998-09-17 | 2000-03-30 | Sopuch David J | Secure message exchange method using intermediaries |
US6574239B1 (en) | 1998-10-07 | 2003-06-03 | Eric Morgan Dowling | Virtual connection of a remote unit to a server |
US6070154A (en) | 1998-11-27 | 2000-05-30 | Activepoint Ltd. | Internet credit card security |
US6546491B1 (en) | 1999-03-19 | 2003-04-08 | International Business Machines Corporation | Securing mobile computer systems in a corporate environment |
US7225333B2 (en) | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US7730300B2 (en) | 1999-03-30 | 2010-06-01 | Sony Corporation | Method and apparatus for protecting the transfer of data |
US7565546B2 (en) | 1999-03-30 | 2009-07-21 | Sony Corporation | System, method and apparatus for secure digital content transmission |
US8479251B2 (en) * | 1999-03-31 | 2013-07-02 | Microsoft Corporation | System and method for synchronizing streaming content with enhancing content using pre-announced triggers |
US7023868B2 (en) * | 1999-04-13 | 2006-04-04 | Broadcom Corporation | Voice gateway with downstream voice synchronization |
DE19922155A1 (en) | 1999-05-12 | 2000-11-23 | Giesecke & Devrient Gmbh | Memory arrangement and memory access procedure for microcomputers has an additional scrambling step to increase data security, for use in financial applications etc. |
US6718415B1 (en) * | 1999-05-14 | 2004-04-06 | Acqis Technology, Inc. | Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
GB2353155A (en) | 1999-08-05 | 2001-02-14 | Mitsubishi Electric Inf Tech | A random binary signal generator with a narrowed autocorrelation function |
US6801499B1 (en) | 1999-08-10 | 2004-10-05 | Texas Instruments Incorporated | Diversity schemes for packet communications |
US6657994B1 (en) | 1999-08-25 | 2003-12-02 | Covad Communications Group, Inc. | Uninterrupted transfer of voice telephony service to derived voice technology |
CN1296846C (en) | 1999-08-27 | 2007-01-24 | 索尼公司 | Information transmission system, transmitter, and transmission method as well as information reception system, receiver and reception method |
US7002958B1 (en) | 1999-09-10 | 2006-02-21 | Pluris, Inc. | Method for load-balancing with FIFO guarantees in multipath networks |
US7093137B1 (en) | 1999-09-30 | 2006-08-15 | Casio Computer Co., Ltd. | Database management apparatus and encrypting/decrypting system |
US6594780B1 (en) | 1999-10-19 | 2003-07-15 | Inasoft, Inc. | Operating system and data protection |
US7240303B1 (en) | 1999-11-30 | 2007-07-03 | Synplicity, Inc. | Hardware/software co-debugging in a hardware description language |
US6460050B1 (en) | 1999-12-22 | 2002-10-01 | Mark Raymond Pace | Distributed content identification system |
US20080192928A1 (en) * | 2000-01-06 | 2008-08-14 | Super Talent Electronics, Inc. | Portable Electronic Storage Devices with Hardware Security Based on Advanced Encryption Standard |
US6788782B1 (en) | 2000-01-20 | 2004-09-07 | 3Com Corporation | Method and apparatus for switching between multiple communication lines |
US7178021B1 (en) | 2000-03-02 | 2007-02-13 | Sun Microsystems, Inc. | Method and apparatus for using non-secure file servers for secure information storage |
US7054948B2 (en) * | 2000-03-07 | 2006-05-30 | Opcoast Llc | Collaborative host masquerading system |
US7627531B2 (en) | 2000-03-07 | 2009-12-01 | American Express Travel Related Services Company, Inc. | System for facilitating a transaction |
US7565450B2 (en) * | 2000-03-16 | 2009-07-21 | Adara Networks Inc. | System and method for using a mapping between client addresses and addresses of caches to support content delivery |
US7552233B2 (en) * | 2000-03-16 | 2009-06-23 | Adara Networks, Inc. | System and method for information object routing in computer networks |
US7412422B2 (en) | 2000-03-23 | 2008-08-12 | Dekel Shiloh | Method and system for securing user identities and creating virtual users to enhance privacy on a communication network |
JP2001282641A (en) | 2000-04-03 | 2001-10-12 | Oki Electric Ind Co Ltd | Content-certifying electronic mail service system |
US7844504B1 (en) | 2000-04-27 | 2010-11-30 | Avaya Inc. | Routing based on the contents of a shopping cart |
US6400815B1 (en) | 2000-05-23 | 2002-06-04 | At&T Corp. | Method and apparatus for subscriber line to telephone call distribution |
US7200673B1 (en) | 2000-06-09 | 2007-04-03 | Steven Augart | Determining the geographic location of a network device |
US7225423B2 (en) | 2000-06-30 | 2007-05-29 | Zenasis Technologies, Inc. | Method for automated design of integrated circuits with targeted quality objectives using dynamically generated building blocks |
US7844513B2 (en) | 2000-07-17 | 2010-11-30 | Galactic Computing Corporation Bvi/Bc | Method and system for operating a commissioned e-commerce service prover |
US7350204B2 (en) | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
JP2004506361A (en) | 2000-08-04 | 2004-02-26 | ファースト データ コーポレイション | Entity authentication in electronic communication by providing device verification status |
US7203741B2 (en) * | 2000-10-12 | 2007-04-10 | Peerapp Ltd. | Method and system for accelerating receipt of data in a client-to-client network |
WO2002037260A1 (en) | 2000-10-24 | 2002-05-10 | Hmi Co., Ltd. | Random number generator |
EP1364510B1 (en) | 2000-10-26 | 2007-12-12 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
EP1329076A1 (en) | 2000-10-26 | 2003-07-23 | BRITISH TELECOMMUNICATIONS public limited company | Telecommunications routing |
US6889209B1 (en) | 2000-11-03 | 2005-05-03 | Shieldip, Inc. | Method and apparatus for protecting information and privacy |
US6466470B1 (en) * | 2000-11-04 | 2002-10-15 | Virage Logic Corp. | Circuitry and method for resetting memory without a write cycle |
US6996101B2 (en) | 2000-11-29 | 2006-02-07 | International Business Machines Corporation | Re-mapping and interleaving transport packets of multiple transport streams for processing by a single transport demultiplexor |
US7765163B2 (en) | 2000-12-12 | 2010-07-27 | Sony Corporation | System and method for conducting secure transactions over a network |
US20030084020A1 (en) * | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
US7284274B1 (en) | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US7168093B2 (en) | 2001-01-25 | 2007-01-23 | Solutionary, Inc. | Method and apparatus for verifying the integrity and security of computer networks and implementation of counter measures |
WO2002063828A1 (en) * | 2001-02-06 | 2002-08-15 | Polycom Israel Ltd. | Control unit for multipoint multimedia/audio conference |
US7274658B2 (en) * | 2001-03-01 | 2007-09-25 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US7149797B1 (en) * | 2001-04-02 | 2006-12-12 | Akamai Technologies, Inc. | Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP) |
US7320071B1 (en) | 2001-05-22 | 2008-01-15 | National Semiconductor Corporation | Secure universal serial bus |
US7350207B2 (en) | 2001-05-25 | 2008-03-25 | Tellabs Operations, Inc. | Rule-based system and method for downloading computer software over a network |
US7747853B2 (en) | 2001-06-06 | 2010-06-29 | Sony Corporation | IP delivery of secure digital content |
US8205193B2 (en) | 2001-06-11 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | Runtime updating of virtual machine class files |
US20020194596A1 (en) * | 2001-06-18 | 2002-12-19 | Srivastava Gopal K. | Control of multiple AV-devices by a single master controller using infrared transmitted commands and bus transmitted commands |
US7440994B2 (en) | 2001-07-06 | 2008-10-21 | Intel Corporation | Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list |
US7562112B2 (en) | 2001-07-06 | 2009-07-14 | Intel Corporation | Method and apparatus for peer-to-peer services for efficient transfer of information between networks |
US20030016825A1 (en) | 2001-07-10 | 2003-01-23 | Eastman Kodak Company | System and method for secure watermarking of a digital image sequence |
US6978383B2 (en) | 2001-07-18 | 2005-12-20 | Crystal Voice Communications | Null-packet transmission from inside a firewall to open a communication window for an outside transmitter |
US6958984B2 (en) | 2001-08-02 | 2005-10-25 | Motorola, Inc. | Method and apparatus for aggregation of wireless resources of proximal wireless units to facilitate diversity signal combining |
US7002942B2 (en) | 2001-08-02 | 2006-02-21 | Motorola, Inc. | Method and apparatus for communicating information by splitting information among a plurality of proximal units |
US6820160B1 (en) | 2001-08-21 | 2004-11-16 | Cypress Semiconductor Corporation | Apparatus for optically isolating a USB peripheral from a USB host |
CA2408766A1 (en) * | 2001-10-17 | 2003-04-17 | Telecommunications Research Laboratory | Content delivery network bypass system |
US7548506B2 (en) | 2001-10-17 | 2009-06-16 | Nortel Networks Limited | System access and synchronization methods for MIMO OFDM communications systems and physical layer packet and preamble design |
US7917444B1 (en) | 2001-10-29 | 2011-03-29 | Mcafee, Inc. | Secure single-use transaction numbers |
CA2410172A1 (en) * | 2001-10-29 | 2003-04-29 | Jose Alejandro Rueda | Content routing architecture for enhanced internet services |
US7188163B2 (en) | 2001-11-26 | 2007-03-06 | Sun Microsystems, Inc. | Dynamic reconfiguration of applications on a server |
US7171493B2 (en) * | 2001-12-19 | 2007-01-30 | The Charles Stark Draper Laboratory | Camouflage of network traffic to resist attack |
US20030147369A1 (en) | 2001-12-24 | 2003-08-07 | Singh Ram Naresh | Secure wireless transfer of data between different computing devices |
US7032224B2 (en) | 2001-12-31 | 2006-04-18 | Slam Dunk Networks, Inc. | Method for the secure and timely delivery of large messages over a distributed communication network |
TW530202B (en) | 2001-12-31 | 2003-05-01 | Icp Electronics Inc | Computer peripheral equipment monitor and computer system equipped with the monitor |
US7292691B2 (en) | 2002-01-02 | 2007-11-06 | Sony Corporation | Progressive video refresh slice detection |
US7287107B2 (en) | 2002-01-04 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for passive PCI throttling in a remote server management controller |
US6760845B1 (en) | 2002-02-08 | 2004-07-06 | Networks Associates Technology, Inc. | Capture file format system and method for a network analyzer |
JP4071517B2 (en) | 2002-03-26 | 2008-04-02 | 富士通株式会社 | Data processing method, information communication terminal device, server, and software program |
JP2003316913A (en) | 2002-04-23 | 2003-11-07 | Canon Inc | Service providing method, information processing system, control program thereof and recording medium |
US7096200B2 (en) | 2002-04-23 | 2006-08-22 | Microsoft Corporation | System and method for evaluating and enhancing source anonymity for encrypted web traffic |
US20030204602A1 (en) * | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
JP3977157B2 (en) | 2002-06-17 | 2007-09-19 | Kddi株式会社 | Route control method and apparatus, and computer program |
US7478235B2 (en) | 2002-06-28 | 2009-01-13 | Microsoft Corporation | Methods and systems for protecting data in USB systems |
US7486678B1 (en) | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
AU2003266962A1 (en) | 2002-08-06 | 2004-02-25 | Brainshield Technologies Inc. | Device for carrying out the copy-protected distribution of electronic documents |
US6782424B2 (en) | 2002-08-23 | 2004-08-24 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
KR100448220B1 (en) | 2002-10-07 | 2004-09-10 | 한국전자통신연구원 | A null packet insertion method and its apparatus in digital broadcasting transmission system |
US7149992B2 (en) | 2002-10-23 | 2006-12-12 | Via Technologies, Inc. | Method for faster timing closure and better quality of results in IC physical design |
US7120666B2 (en) * | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
US7328243B2 (en) * | 2002-10-31 | 2008-02-05 | Sun Microsystems, Inc. | Collaborative content coherence using mobile agents in peer-to-peer networks |
US7724907B2 (en) | 2002-11-05 | 2010-05-25 | Sony Corporation | Mechanism for protecting the transfer of digital content |
US7634230B2 (en) | 2002-11-25 | 2009-12-15 | Fujitsu Limited | Methods and apparatus for secure, portable, wireless and multi-hop data networking |
US7104684B2 (en) * | 2002-11-29 | 2006-09-12 | Sigmatel, Inc. | On-chip digital thermometer to sense and measure device temperatures |
AU2003285634A1 (en) | 2002-12-16 | 2004-07-09 | Koninklijke Philips Electronics N.V. | Method and apparatus to encrypt video data streams |
US7055113B2 (en) | 2002-12-31 | 2006-05-30 | Lsi Logic Corporation | Simplified process to design integrated circuits |
US7586874B2 (en) | 2003-01-06 | 2009-09-08 | Interdigital Technology Corporation | Wireless communication method and apparatus for providing multimedia broadcast services |
US7707307B2 (en) | 2003-01-09 | 2010-04-27 | Cisco Technology, Inc. | Method and apparatus for constructing a backup route in a data communications network |
US7219131B2 (en) | 2003-01-16 | 2007-05-15 | Ironport Systems, Inc. | Electronic message delivery using an alternate source approach |
IL154921A (en) | 2003-03-13 | 2011-02-28 | Mosaid Technologies Inc | Telephone system having multiple distinct sources and accessories therefor |
WO2004084470A2 (en) | 2003-03-18 | 2004-09-30 | Ensconce Data Technology | Dead on demand disk technology |
US20080219122A1 (en) | 2003-03-18 | 2008-09-11 | Roger Detzler | Dead on demand technology |
US7149841B2 (en) | 2003-03-31 | 2006-12-12 | Micron Technology, Inc. | Memory devices with buffered command address bus |
US6922817B2 (en) | 2003-04-04 | 2005-07-26 | Lsi Logic Corporation | System and method for achieving timing closure in fixed placed designs after implementing logic changes |
US6844808B2 (en) * | 2003-04-22 | 2005-01-18 | Whelen Engineering Company, Inc. | Method and apparatus for detection of warning system breach |
US7437532B1 (en) * | 2003-05-07 | 2008-10-14 | Marvell International Ltd. | Memory mapped register file |
US7814128B2 (en) | 2003-05-30 | 2010-10-12 | Symantec Operating Corporation | Multi-volume file support |
US7133648B1 (en) | 2003-06-03 | 2006-11-07 | Xilinx, Inc. | Bidirectional multi-gigabit transceiver |
US7134121B2 (en) | 2003-06-12 | 2006-11-07 | International Business Machines Corporation | Installing fixes based on usage |
US7337100B1 (en) | 2003-06-12 | 2008-02-26 | Altera Corporation | Physical resynthesis of a logic design |
US8108500B2 (en) | 2003-06-13 | 2012-01-31 | Broadcom Corporation | Probing-based auto moding |
JP2005017992A (en) * | 2003-06-30 | 2005-01-20 | Yamaha Corp | Music playing data transmission device, and system and method for playing music |
TWI222598B (en) * | 2003-07-09 | 2004-10-21 | Sunplus Technology Co Ltd | Device and method protecting data by scrambling address lines |
KR100526183B1 (en) | 2003-07-15 | 2005-11-03 | 삼성전자주식회사 | Apparatus and Method for efficient data transmission/reception in Mobile Ad-hoc Network |
GB0317308D0 (en) | 2003-07-24 | 2003-08-27 | Koninkl Philips Electronics Nv | Wireless network security |
US7275213B2 (en) | 2003-08-11 | 2007-09-25 | Ricoh Company, Ltd. | Configuring a graphical user interface on a multifunction peripheral |
US7185204B2 (en) | 2003-08-28 | 2007-02-27 | International Business Machines Corporation | Method and system for privacy in public networks |
CH694215A5 (en) | 2003-09-10 | 2004-09-15 | Csaba Bona | Method is for transmission of electronic data via dual network for increasing Internet security and involves packet preparation which puts together each second bit of useful information in two types of packets |
US7783779B1 (en) | 2003-09-19 | 2010-08-24 | Vmware, Inc | Storage multipath management in a virtual computer system |
US7533377B2 (en) | 2003-09-29 | 2009-05-12 | International Business Machines Corporation | Achieving autonomic behavior in an operating system via a hot-swapping mechanism |
WO2006109236A2 (en) | 2005-04-13 | 2006-10-19 | Netmask (El-Mar) Internet Technologies Ltd. | Dynamic content conversion |
IL158282A0 (en) | 2003-10-02 | 2004-05-12 | Netmask El Mar Internet Techno | Configuration setting |
US7735078B1 (en) | 2003-10-30 | 2010-06-08 | Oracle America, Inc. | System and method for software patching for cross-platform products |
JP4448000B2 (en) | 2003-11-05 | 2010-04-07 | キヤノン株式会社 | Information transmission apparatus, information transmission destination designation method, storage medium, and program |
SE0303576D0 (en) | 2003-12-23 | 2003-12-23 | Ericsson Telefon Ab L M | Cost determination in a multihop network |
TW200527870A (en) | 2004-01-14 | 2005-08-16 | Nec Corp | Encrypted communication method, encrypted communication system, node device and program |
US7120892B1 (en) | 2004-03-03 | 2006-10-10 | Xilinx, Inc. | Process for adjusting data structures of a floorplan upon changes occurring |
GB0406095D0 (en) | 2004-03-17 | 2004-04-21 | Koninkl Philips Electronics Nv | Method for providing secure data transfer in a mesh network |
US7817659B2 (en) * | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US7275685B2 (en) | 2004-04-12 | 2007-10-02 | Rearden Capital Corporation | Method for electronic payment |
US7853782B1 (en) | 2004-04-14 | 2010-12-14 | Sprint Spectrum L.P. | Secure intermediation system and method |
US7697438B2 (en) | 2004-05-12 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Method of routing packet |
US7848240B2 (en) | 2004-06-01 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for forwarding data in a data communications network |
US8606891B2 (en) | 2004-09-10 | 2013-12-10 | Freestyle Technology Pty Ltd | Client processor device for building application files from file fragments for different versions of an application |
NZ552196A (en) | 2004-06-24 | 2010-09-30 | Freestyle Technology Pty Ltd | Client processor device |
US7860922B2 (en) | 2004-08-18 | 2010-12-28 | Time Warner, Inc. | Method and device for the wireless exchange of media content between mobile devices based on content preferences |
US7860923B2 (en) | 2004-08-18 | 2010-12-28 | Time Warner Inc. | Method and device for the wireless exchange of media content between mobile devices based on user information |
WO2006023836A2 (en) | 2004-08-18 | 2006-03-02 | Time Warner, Inc. | Method and apparatus for wirelessly sharing a file using an application level connection |
US7403204B2 (en) | 2004-08-23 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing changes in a virtual screen buffer |
DE102004047371A1 (en) | 2004-09-29 | 2006-03-30 | Siemens Ag | Method for distributing software and configuration data and corresponding data network |
US8005831B2 (en) | 2005-08-23 | 2011-08-23 | Ricoh Co., Ltd. | System and methods for creation and use of a mixed media environment with geographic location information |
US7848332B2 (en) | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
FI118291B (en) | 2004-12-22 | 2007-09-14 | Timo D Haemaelaeinen | Energy efficient wireless sensor network, node devices for the same and method of arranging, the communications in a wireless sensor network |
US20060143617A1 (en) | 2004-12-29 | 2006-06-29 | Knauerhase Robert C | Method, apparatus and system for dynamic allocation of virtual platform resources |
US20120084566A1 (en) | 2010-10-04 | 2012-04-05 | Edward Chin | Methods and systems for providing and controlling cryptographic secure communications across unsecured networks |
CN100499459C (en) | 2005-02-24 | 2009-06-10 | 华为技术有限公司 | Method for implementing information stream transmission in next generation network |
JP4617985B2 (en) * | 2005-04-25 | 2011-01-26 | ソニー株式会社 | Encoding apparatus and encoding method |
US7515565B2 (en) | 2005-05-09 | 2009-04-07 | Kyocera Corporation | Multiple source wireless communication system and method |
US8800042B2 (en) | 2005-05-16 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Secure web application development and execution environment |
JP5057656B2 (en) | 2005-05-24 | 2012-10-24 | 株式会社日立製作所 | Storage system and storage system operation method |
US7396257B2 (en) | 2005-05-26 | 2008-07-08 | Itt Manufacturing Enterprises, Inc. | Computer input/output (I/O) connector assembly having a security circuit disposed therein |
US7340700B2 (en) | 2005-05-27 | 2008-03-04 | Lsi Logic Corporation | Method for abstraction of manufacturing test access and control ports to support automated RTL manufacturing test insertion flow for reusable modules |
JP2006344294A (en) * | 2005-06-09 | 2006-12-21 | Hitachi Ltd | Information reproducing device and reproducing signal processing circuit |
CN1881908A (en) | 2005-06-13 | 2006-12-20 | 华为技术有限公司 | Method for measuring MPLS network performance parameter |
US20070156855A1 (en) * | 2005-06-17 | 2007-07-05 | Moses Johnson | Channel searching media player |
US7200576B2 (en) | 2005-06-20 | 2007-04-03 | Microsoft Corporation | Secure online transactions using a captcha image as a watermark |
US7730142B2 (en) | 2005-07-01 | 2010-06-01 | 0733660 B.C. Ltd. | Electronic mail system with functionality to include both private and public messages in a communication |
US7848224B2 (en) | 2005-07-05 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for constructing a repair path for multicast data |
US20070011448A1 (en) | 2005-07-06 | 2007-01-11 | Microsoft Corporation | Using non 5-tuple information with IPSec |
EP1905256B1 (en) * | 2005-07-15 | 2013-05-15 | Research In Motion Limited | Methods and apparatus for providing ptt data buffering support indications from mobile devices and ptt data buffering control by wireless networks |
US7406711B2 (en) | 2005-09-02 | 2008-07-29 | Motorola, Inc. | Method and apparatus for enforcing independence of processors on a single IC |
US20070053512A1 (en) | 2005-09-02 | 2007-03-08 | Sbc Knowledge Ventures Lp | Method and apparatus for improving security in a voice over internet protocol session |
US20070074187A1 (en) | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US8171101B2 (en) * | 2005-09-30 | 2012-05-01 | Cleversafe, Inc. | Smart access to a dispersed data storage network |
US20070091926A1 (en) | 2005-10-21 | 2007-04-26 | Apostolopoulos John G | Method for optimizing portions of data from a plurality of data streams at a transcoding node |
US8014389B2 (en) | 2005-12-06 | 2011-09-06 | Lippershy Celestial Llc | Bidding network |
US7809670B2 (en) | 2005-12-09 | 2010-10-05 | Microsoft Corporation | Classification of malware using clustering that orders events in accordance with the time of occurance |
US20080276302A1 (en) | 2005-12-13 | 2008-11-06 | Yoggie Security Systems Ltd. | System and Method for Providing Data and Device Security Between External and Host Devices |
US7697529B2 (en) | 2006-02-28 | 2010-04-13 | Cisco Technology, Inc. | Fabric channel control apparatus and method |
US7890547B2 (en) * | 2006-03-22 | 2011-02-15 | Oy International Business Machines Ab | Content delivery server |
US7970835B2 (en) | 2006-04-04 | 2011-06-28 | Xerox Corporation | Peer-to-peer file sharing system and method using downloadable data segments |
JP4772569B2 (en) * | 2006-04-07 | 2011-09-14 | 株式会社日立製作所 | System and method for performing directory unit migration in a common namespace |
EP1850554A3 (en) | 2006-04-21 | 2010-03-17 | LONMARK Deutschland e.V. | Safe communications in a network |
US7962755B2 (en) | 2006-04-28 | 2011-06-14 | Ceelox, Inc. | System and method for biometrically secured, transparent encryption and decryption |
US7818395B2 (en) | 2006-10-13 | 2010-10-19 | Ceelox, Inc. | Method and apparatus for interfacing with a restricted access computer system |
US20070277224A1 (en) | 2006-05-24 | 2007-11-29 | Osborn Steven L | Methods and Systems for Graphical Image Authentication |
US7945689B2 (en) * | 2007-03-23 | 2011-05-17 | Sony Corporation | Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model |
US8832179B2 (en) * | 2006-06-20 | 2014-09-09 | Ianywhere Solutions, Inc. | Method, system, and computer program product for a relay server |
US20100167690A1 (en) | 2006-06-20 | 2010-07-01 | Mats Andersson | user terminal for enhanced security in a wireless communications system, and a system for its use |
US20080022374A1 (en) | 2006-06-29 | 2008-01-24 | Research In Motion Limited | System and method for securely communicating with a server |
US20090254900A1 (en) | 2006-07-13 | 2009-10-08 | Seiko Epson Corporation | Network system, computers, and method and program for providing and executing applications in network system |
JP2008027327A (en) * | 2006-07-25 | 2008-02-07 | Sony Corp | Memory access controller and memory access control method, and communication equipment |
US7733913B1 (en) | 2006-07-31 | 2010-06-08 | Hewlett-Packard Development Company, L.P. | Striping data over transmission channels |
US7635272B2 (en) | 2006-08-17 | 2009-12-22 | Acco Brands Usa Llc | USB port locking and blocking device |
US8601538B2 (en) | 2006-08-22 | 2013-12-03 | Fuji Xerox Co., Ltd. | Motion and interaction based CAPTCHA |
US7849455B2 (en) | 2006-08-23 | 2010-12-07 | Sap Ag | Synchronization and transmission of distributed user interfaces over computer networks |
IL177756A (en) | 2006-08-29 | 2014-11-30 | Lior Frenkel | Encryption-based attack prevention |
US7986718B2 (en) | 2006-09-15 | 2011-07-26 | Itron, Inc. | Discovery phase in a frequency hopping network |
US7701845B2 (en) | 2006-09-25 | 2010-04-20 | Cisco Technology, Inc. | Forwarding data in a data communications network |
US7809955B2 (en) | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
US8218539B2 (en) | 2006-10-18 | 2012-07-10 | Broadcom Corporation | Flexible packet field processor |
WO2008047351A2 (en) | 2006-10-19 | 2008-04-24 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
CN101179389A (en) * | 2006-11-07 | 2008-05-14 | 朗迅科技公司 | Peer-to-peer file download system of IMS network |
US20080125123A1 (en) * | 2006-11-27 | 2008-05-29 | Motorola, Inc. | Method and system for to enable communication for a wireless device having a plurality of identifiers |
GB2446199A (en) | 2006-12-01 | 2008-08-06 | David Irvine | Secure, decentralised and anonymous peer-to-peer network |
GB2446200A (en) | 2006-12-01 | 2008-08-06 | David Irvine | Encryption system for peer-to-peer networks which relies on hash based self-encryption and mapping |
US8301179B2 (en) | 2006-12-06 | 2012-10-30 | Research In Motion Limited | Method and system for communicating a message attachment |
US7971241B2 (en) | 2006-12-22 | 2011-06-28 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for providing verifiable security in storage devices |
KR100913025B1 (en) | 2006-12-27 | 2009-08-20 | 주식회사 하이닉스반도체 | Non volatile memory device and encryption method thereof |
US7865585B2 (en) * | 2007-03-12 | 2011-01-04 | Citrix Systems, Inc. | Systems and methods for providing dynamic ad hoc proxy-cache hierarchies |
US7853680B2 (en) | 2007-03-23 | 2010-12-14 | Phatak Dhananjay S | Spread identity communications architecture |
EP1976201A1 (en) | 2007-03-30 | 2008-10-01 | Lucent Technologies Inc. | Shared communication capabilities of mobile stations for high bandwidth communications |
KR101391152B1 (en) | 2007-04-05 | 2014-05-02 | 삼성전자주식회사 | Method and apparatus for protecting digital contents stored in USB Mass Storage device |
US8011010B2 (en) | 2007-04-17 | 2011-08-30 | Microsoft Corporation | Using antimalware technologies to perform offline scanning of virtual machine images |
WO2009009489A1 (en) | 2007-07-06 | 2009-01-15 | Es & S Automark, Llc | Unidirectional usb port |
DE102007033667A1 (en) | 2007-07-17 | 2009-01-22 | GSMK Gesellschaft für sichere mobile Kommunikation mbH | Method and device for anonymous encrypted mobile data and voice communication |
US20090033668A1 (en) | 2007-07-31 | 2009-02-05 | Pederson Douglas A | Display EDID emulator system and method |
US20090076628A1 (en) | 2007-09-18 | 2009-03-19 | David Mark Smith | Methods and apparatus to upgrade and provide control redundancy in process plants |
US20090083366A1 (en) | 2007-09-26 | 2009-03-26 | Martin Roantree | Secure document transmission |
US20090113294A1 (en) | 2007-10-30 | 2009-04-30 | Yahoo! Inc. | Progressive captcha |
US8189768B2 (en) | 2007-10-31 | 2012-05-29 | First Principles, Inc. | Secure messaging |
US7827326B2 (en) | 2007-11-26 | 2010-11-02 | Alcatel-Lucent Usa Inc. | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral |
ATE522861T1 (en) | 2007-12-13 | 2011-09-15 | Ericsson Telefon Ab L M | FIRMWARE UPDATE ON AN ELECTRONIC DEVICE |
US20090172171A1 (en) | 2007-12-31 | 2009-07-02 | Shai Amir | Method and an apparatus for disguising digital content |
US8646040B2 (en) | 2007-12-31 | 2014-02-04 | International Business Machines Corporation | Method and system for securing access to an unsecure network utilizing a transparent identification member |
US8370627B2 (en) | 2008-01-04 | 2013-02-05 | University Of Yamanashi | Confidential communication method |
US7984285B2 (en) | 2008-02-26 | 2011-07-19 | Dell Products L.P. | Information handling system port security |
KR101430237B1 (en) | 2008-03-10 | 2014-08-18 | 주식회사 케이티 | Peer selction method and system in peer to peer communication |
US20090247293A1 (en) | 2008-03-26 | 2009-10-01 | Aristocrat Technologies Australia Pty Limited | Gaming machine |
EP2107731B1 (en) | 2008-03-31 | 2016-11-09 | Mitsubishi Electric R&D Centre Europe B.V. | Method and a device for transferring a flow of data by a first telecommunication device to a second telecommunication device |
EP2107730A1 (en) | 2008-03-31 | 2009-10-07 | Mitsubishi Electric R&D Centre Europe B.V. | Method for determining to which resource among plural resources, elements of a group of elements have to be allocated |
US20090271877A1 (en) | 2008-04-28 | 2009-10-29 | Dafca, Inc. | Method to secure embedded system with programmable logic, hardware and software binding, execution monitoring and counteraction |
WO2009134905A2 (en) | 2008-04-30 | 2009-11-05 | Motion Picture Laboratories, Inc. | Cooperative monitoring of peer-to-peer network activity |
FR2934395B1 (en) | 2008-07-23 | 2013-01-04 | Trusted Logic | SYSTEM AND METHOD FOR SECURING A USER INTERFACE |
US8208001B2 (en) * | 2008-09-12 | 2012-06-26 | Embarq Holdings Company, Llc | System and method for encoding changes for video conferencing through a set-top box |
US8204220B2 (en) * | 2008-09-18 | 2012-06-19 | Sony Corporation | Simulcrypt key sharing with hashed keys |
US7869446B2 (en) * | 2008-10-06 | 2011-01-11 | Cisco Technology, Inc. | Optimized dynamic multipoint virtual private network over IPv6 network |
DE102008061480A1 (en) | 2008-10-06 | 2010-04-08 | Siemens Aktiengesellschaft | Method and apparatus for exchanging a component of a computer system |
US8949449B2 (en) * | 2008-10-15 | 2015-02-03 | Aster Risk Management Llc | Methods and systems for controlling fragment load on shared links |
US7677065B1 (en) | 2008-11-18 | 2010-03-16 | Jin Tay Industries Co., Ltd. | Lock for a USB connector |
US8370520B2 (en) * | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
WO2010063119A1 (en) * | 2008-12-04 | 2010-06-10 | Tajinder Manku | Multi-transport mode devices having improved data throughput |
US8924460B2 (en) * | 2008-12-19 | 2014-12-30 | International Business Machines Corporation | Method and system of administrating a peer-to-peer file sharing network |
IT1392913B1 (en) | 2008-12-30 | 2012-04-02 | St Microelectronics Srl | METHOD FOR IMPLEMENTING VARIATIONS OF THE FUNCTIONALITY OF A PROJECT LAYOUT OF AN INTEGRATED DEVICE, IN PARTICULAR A SINGLE CHIP OR SYSTEM-ON-CHIP SYSTEM USING FILLING CELLS PROGRAMMABLE THROUGH THE MASK |
US9065812B2 (en) | 2009-01-23 | 2015-06-23 | Microsoft Technology Licensing, Llc | Protecting transactions |
EP2394409A4 (en) | 2009-02-06 | 2012-08-08 | Ericsson Telefon Ab L M | Network aware peer to peer |
US9046995B2 (en) | 2009-04-09 | 2015-06-02 | On24, Inc. | Editing of two dimensional software consumables within a complex three dimensional spatial application and method |
US8499059B2 (en) * | 2009-05-04 | 2013-07-30 | Rovi Solutions Corporation | System and methods for buffering of real-time data streams |
US20100293555A1 (en) * | 2009-05-14 | 2010-11-18 | Nokia Corporation | Method and apparatus of message routing |
US8955108B2 (en) | 2009-06-17 | 2015-02-10 | Microsoft Corporation | Security virtual machine for advanced auditing |
US8121136B2 (en) * | 2009-06-24 | 2012-02-21 | Cisco Technology, Inc. | Dynamic discovery mechanisms via inter-domain routing protocol |
US8285681B2 (en) | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
US8799322B2 (en) | 2009-07-24 | 2014-08-05 | Cisco Technology, Inc. | Policy driven cloud storage management and cloud storage policy router |
US8316125B2 (en) | 2009-08-31 | 2012-11-20 | Red Hat, Inc. | Methods and systems for automated migration of cloud processes to external clouds |
WO2011026661A1 (en) | 2009-09-03 | 2011-03-10 | International Business Machines Corporation | Shared-bandwidth multiple target remote copy |
US8750847B2 (en) | 2009-09-29 | 2014-06-10 | Orange | Method of masking an identifier of at least one destination of a call, and a corresponding device and computer program |
US20110093540A1 (en) | 2009-09-30 | 2011-04-21 | Bae Systems Information And Electronic Systems Integration Inc. | Method and system for communications using cooperative helper nodes |
US8769035B2 (en) * | 2009-10-30 | 2014-07-01 | Cleversafe, Inc. | Distributed storage network for storing a data object based on storage requirements |
US20110102443A1 (en) | 2009-11-04 | 2011-05-05 | Microsoft Corporation | Virtualized GPU in a Virtual Machine Environment |
EP2503741B1 (en) | 2009-11-18 | 2014-09-17 | Nec Corporation | Dynamic route branching system and dynamic route branching method |
AU2010326248B2 (en) | 2009-11-25 | 2015-08-27 | Security First Corp. | Systems and methods for securing data in motion |
EP2333997A1 (en) | 2009-12-14 | 2011-06-15 | Alcatel Lucent | Method of dispersity transmitting a piece of information |
US20110145336A1 (en) | 2009-12-14 | 2011-06-16 | Carroll Martin D | Electronic mail server and method for automatically generating address lists |
US9639347B2 (en) | 2009-12-21 | 2017-05-02 | International Business Machines Corporation | Updating a firmware package |
US20110197268A1 (en) | 2010-02-05 | 2011-08-11 | Yahoo! Inc. | Captchas that include overlapped characters, projections on virtual 3d surfaces, and/or virtual 3d objects |
US8483518B2 (en) | 2010-02-19 | 2013-07-09 | Microsoft Corporation | Image-based CAPTCHA exploiting context in object recognition |
TW201131417A (en) | 2010-03-15 | 2011-09-16 | F2Ware Inc | CAPTCHA (completely automated public test to tell computers and humans apart) data generation methods and related data management systems and computer program products thereof |
TW201131416A (en) | 2010-03-15 | 2011-09-16 | F2Ware Inc | Data processing methods and systems for processing data in an operation having a predetermined flow based on CAPTCHA (completely automated public test to tell computers and humans apart) data, and computer program products thereof |
US20120066672A1 (en) | 2010-03-16 | 2012-03-15 | Salesforce.Com, Inc. | Systems and Methods for Implementing Upgradeable Subscriber-Controlled Managed Package Components in a Multi-Tenant Environment |
FR2958478B1 (en) | 2010-04-02 | 2012-05-04 | Sergio Loureiro | METHOD OF SECURING DATA AND / OR APPLICATIONS IN A CLOUD COMPUTING ARCHITECTURE |
US20110258701A1 (en) | 2010-04-14 | 2011-10-20 | Raytheon Company | Protecting A Virtualization System Against Computer Attacks |
KR101109669B1 (en) | 2010-04-28 | 2012-02-08 | 한국전자통신연구원 | Virtual server and method for identifying zombies and Sinkhole server and method for managing zombie information integrately based on the virtual server |
WO2011150346A2 (en) | 2010-05-28 | 2011-12-01 | Laurich Lawrence A | Accelerator system for use with secure data storage |
US8739150B2 (en) | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
US8479290B2 (en) | 2010-06-16 | 2013-07-02 | Alcatel Lucent | Treatment of malicious devices in a mobile-communications network |
JP2012003644A (en) * | 2010-06-21 | 2012-01-05 | Fujitsu Ltd | Memory error part detection device and memory error part detection method |
US9672022B2 (en) | 2010-06-23 | 2017-06-06 | Microsoft Technology Licensing, Llc | Applications including multiple experience modules |
US9015649B2 (en) | 2010-07-19 | 2015-04-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method and apparatus for electronic system model generation |
WO2012011450A1 (en) | 2010-07-20 | 2012-01-26 | シャープ株式会社 | Content distribution device, content playback device, content distribution system, method for controlling a content distribution device, control program, and recording medium |
US8437471B2 (en) * | 2010-08-04 | 2013-05-07 | Lawrence P. Huang | System for scrambling and methods for use therewith |
WO2012042509A1 (en) | 2010-10-01 | 2012-04-05 | Peter Chacko | A distributed virtual storage cloud architecture and a method thereof |
US8462734B2 (en) * | 2010-10-20 | 2013-06-11 | Nokia Corporation | Wireless docking with out-of-band initiation |
US8671221B2 (en) * | 2010-11-17 | 2014-03-11 | Hola Networks Ltd. | Method and system for increasing speed of domain name system resolution within a computing device |
US8843618B2 (en) | 2010-11-24 | 2014-09-23 | Intel Corporation | Cloud service information overlay |
US9471907B2 (en) | 2010-12-21 | 2016-10-18 | Intel Corporation | Highly granular cloud computing marketplace |
IL210169A0 (en) * | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
US9230019B2 (en) | 2010-12-23 | 2016-01-05 | Virtuanet Llc | Semantic information processing |
JP5741022B2 (en) | 2011-01-31 | 2015-07-01 | ブラザー工業株式会社 | Communication device |
US8489760B2 (en) * | 2011-03-31 | 2013-07-16 | Juniper Networks, Inc. | Media file storage format and adaptive delivery system |
US8630983B2 (en) | 2011-08-27 | 2014-01-14 | Accenture Global Services Limited | Backup of data across network of devices |
US8943227B2 (en) * | 2011-09-21 | 2015-01-27 | Kevin Mark Klughart | Data storage architecture extension system and method |
FR2982107A1 (en) * | 2011-10-28 | 2013-05-03 | France Telecom | METHOD FOR MANAGING A COMMUNICATION FOR A USER AND APPLICATION SERVER |
US20140359431A1 (en) | 2011-12-12 | 2014-12-04 | Motorola Solutions, Inc. | Effectively communicating large presence documents within high latency and lossy network environments |
EP2608558A1 (en) * | 2011-12-22 | 2013-06-26 | Thomson Licensing | System and method for adaptive streaming in a multipath environment |
WO2013100783A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
US20130201316A1 (en) * | 2012-01-09 | 2013-08-08 | May Patents Ltd. | System and method for server based control |
US8682957B2 (en) * | 2012-02-16 | 2014-03-25 | Microsoft Corporation | Embedded wireless cloud connector |
US9740435B2 (en) | 2012-02-27 | 2017-08-22 | Fujifilm North America Corporation | Methods for managing content stored in cloud-based storages |
EP2885739B1 (en) | 2012-08-18 | 2019-10-02 | Fugue, Inc. | System and method for providing a secure computational environment |
US9471484B2 (en) * | 2012-09-19 | 2016-10-18 | Novachips Canada Inc. | Flash memory controller having dual mode pin-out |
US9264499B2 (en) | 2012-12-14 | 2016-02-16 | Intel Corporation | Cloud data storage location monitoring |
US9348840B2 (en) | 2012-12-14 | 2016-05-24 | Intel Corporation | Adaptive data striping and replication across multiple storage clouds for high availability and performance |
US9241044B2 (en) * | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
US20150067185A1 (en) | 2013-09-04 | 2015-03-05 | Akamai Technologies, Inc. | Server-side systems and methods for reporting stream data |
US20150358648A1 (en) * | 2014-06-09 | 2015-12-10 | Allen LeRoy Limberg | Digital television broadcasting system using coded orthogonal frequency-division modulation and multilevel LDPC convolutional coding |
US9948994B2 (en) * | 2014-07-16 | 2018-04-17 | Crestron Electronics, Inc. | Transmission of digital audio signals using an internet protocol |
-
2010
- 2010-12-22 IL IL210169A patent/IL210169A0/en unknown
-
2011
- 2011-12-14 US US13/325,438 patent/US9177157B2/en active Active
- 2011-12-19 WO PCT/IL2011/000953 patent/WO2012085908A2/en active Application Filing
-
2014
- 2014-09-22 US US14/492,551 patent/US9762547B2/en active Active
-
2015
- 2015-10-01 US US14/872,165 patent/US9634995B2/en active Active
-
2017
- 2017-08-17 US US15/679,185 patent/US10652214B2/en active Active
-
2020
- 2020-03-03 US US16/807,757 patent/US11303612B2/en active Active
- 2020-03-03 US US16/807,830 patent/US20200204522A1/en active Pending
-
2022
- 2022-03-03 US US17/685,410 patent/US11876785B2/en active Active
-
2023
- 2023-12-19 US US18/545,489 patent/US20240171549A1/en active Pending
- 2023-12-19 US US18/545,459 patent/US20240137345A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359626A (en) * | 1992-09-02 | 1994-10-25 | Motorola, Inc. | Serial interface bus system for transmitting and receiving digital audio information |
US5892826A (en) * | 1996-01-30 | 1999-04-06 | Motorola, Inc. | Data processor with flexible data encryption |
US6876696B1 (en) * | 1999-09-24 | 2005-04-05 | Adtran, Inc. | Timing device and method using a timing equalizer filter for a digital communications systems |
US20100167822A1 (en) * | 2000-10-17 | 2010-07-01 | Igt | Multi-system gaming terminal communication device |
US6622230B1 (en) * | 2000-11-28 | 2003-09-16 | Advanced Micro Devices, Inc. | Multi-set block erase |
US20020161973A1 (en) * | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Programmable data path accelerator |
US20030200451A1 (en) * | 2002-04-18 | 2003-10-23 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
US20050010954A1 (en) * | 2003-07-09 | 2005-01-13 | Serconet Ltd. | Modular outlet |
US20090016532A1 (en) * | 2005-05-12 | 2009-01-15 | Michael Baldischweiler | Portable data carrier featuring secure data processing |
US20080052497A1 (en) * | 2006-08-21 | 2008-02-28 | Renesas Technology Corp. | Parallel operation device allowing efficient parallel operational processing |
US20160065368A1 (en) * | 2014-08-29 | 2016-03-03 | The Boeing Company | Address-dependent key generator by xor tree |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11915552B2 (en) | 2012-06-14 | 2024-02-27 | Lnw Gaming, Inc. | Methods for augmented reality gaming |
US12093355B2 (en) | 2022-09-07 | 2024-09-17 | Bank Of America Corporation | Secure data transfer in a virtual environment using blockchain |
Also Published As
Publication number | Publication date |
---|---|
US11303612B2 (en) | 2022-04-12 |
US10652214B2 (en) | 2020-05-12 |
WO2012085908A3 (en) | 2012-08-16 |
US20160028695A1 (en) | 2016-01-28 |
US9177157B2 (en) | 2015-11-03 |
US20240137345A1 (en) | 2024-04-25 |
US20240171549A1 (en) | 2024-05-23 |
WO2012085908A2 (en) | 2012-06-28 |
US20180270204A1 (en) | 2018-09-20 |
US20200204522A1 (en) | 2020-06-25 |
US20150012757A1 (en) | 2015-01-08 |
IL210169A0 (en) | 2011-03-31 |
US9634995B2 (en) | 2017-04-25 |
US20120166582A1 (en) | 2012-06-28 |
US20200204521A1 (en) | 2020-06-25 |
US11876785B2 (en) | 2024-01-16 |
US9762547B2 (en) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11876785B2 (en) | System and method for routing-based internet security | |
US9735962B1 (en) | Three layer key wrapping for securing encryption keys in a data storage system | |
US10154013B1 (en) | Updating encrypted cryptographic key | |
US10116645B1 (en) | Controlling use of encryption keys | |
JP4929398B2 (en) | Transparent recognition data conversion at the file system level | |
CN107430668B (en) | Secure distributed backup for personal devices and cloud data | |
US9893885B1 (en) | Updating cryptographic key pair | |
EP3449607B1 (en) | Systems and methods for managing encryption keys for single-sign-on applications | |
US20180007038A1 (en) | Monitoring encrypted communication sessions | |
US20140064478A1 (en) | User input based data encryption | |
US20210281608A1 (en) | Separation of handshake and record protocol | |
WO2022179326A1 (en) | Encrypted communication using counter mode encryption and secret keys | |
Alhelal et al. | Systematic Analysis on the Effectiveness of Covert Channel Data Transmission | |
US11736275B2 (en) | Integrated infrastructure secure communication system | |
CN107517268A (en) | A kind of data manipulation method based on SAN storages, apparatus and system | |
US11005913B1 (en) | System for obtaining internet access for computing device tethered to mobile device having internet connection via universal translating software adapter and universal muxer data tracker | |
WO2023043368A1 (en) | Communication link | |
CN103905208A (en) | Interactive method using asymmetric security mechanisms | |
TW201418999A (en) | Method for access data and cloud server system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MAY PATENTS LTD., ISRAEL Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BINDER, YEHUDA, MR;REEL/FRAME:059787/0845 Effective date: 20220208 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |