Patent ID: 9558228
Date: 2017-01-31
CPC Classifications: F04C,G06F,H04L

Claim:
1. A client computer comprising one or more processors and a memory storing computer executable instructions executable by the one or more processors to: query a database stored on a server via a network, the server being coupled to the client computer via the network, wherein the database comprises a first relation, wherein the first relation comprises first data items, wherein the first data items are encrypted with a first cryptographic key in the first relation, wherein the first data items form a partially ordered set in the first relation, the partial order being formed with respect to the first data items in non-encrypted form, wherein the client computer has installed thereon an application program, the application program configured to perform the steps of receiving a search request specifying a search interval and determining the first data item forming an interval boundary of the search interval when executed with the one or more processors by a) requesting a current encrypted first data item from the database, b) in response to said requesting of the current encrypted first data item, receiving from the database the current encrypted first data item, c) decrypting the current encrypted first data item for obtaining a current decrypted first data item, d) determining if the current decrypted first data item lies within the search interval, e) if the current decrypted first data item lies outside the search interval, providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said providing the request for the new encrypted first data item, receiving the new encrypted first data item, f) repeating steps c)-e) with the new encrypted first data item being the current encrypted first data item in step c), until the current decrypted first data item lies within the search interval, g) if the current decrypted first data item lies within the search interval, providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said providing the request for the new encrypted first data item, receiving the new encrypted first data item, h) decrypting the new encrypted first data item to obtain a new decrypted first data item, i) determining if the new decrypted first data item lies outside the search interval, wherein if the new decrypted first data item lies outside the search interval, selecting the current decrypted first data item as the first data item forming the interval boundary of the search interval, j) if the new decrypted first data item lies within the search interval, repeating steps g)-j) with the new encrypted first data item being the current encrypted first data item in step g).