СПОСОБ И УСТРОЙСТВО УСТАНОВКИ КЛЮЧЕЙ И ОТПРАВКИ ДАННЫХ
METHOD AND DEVICE FOR INSTALLING KEYS AND SENDING DATA

Притязание на приоритет
Настоящая заявка испрашивает приоритет Китайской патентной заявки № 201710102824.3, поданной 24 февраля 2017, все содержание которой включено в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
Настоящая заявка относится к области компьютерных технологий, и в частности, к способу и устройству отправки данных.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
С развитием информационных технологий, информационные технологии принесли большое удобство в работу и жизнь людей. В области информационных технологий, информация хранится и передается с использованием данных в качестве носителя, и данные могут храниться как двоичное число в носителе хранения вычислительного устройства. Данные, упомянутые здесь, могут представлять собой текст, символ, видео или аудио и все другие элементы, которые могут быть идентифицированы вычислительным устройством.
Данные, в качестве носителя информации, обычно имеют определенную ценность (стоимость). Особенно в эпоху больших данных, каждый блок имеет тенденцию к накоплению большого количества данных в своей работе или в служебном процессе, и данные могут иметь определенную потребительную ценность для выполнения некоторой предпринимательской деятельности. Для обеспечения полного использования ценности данных, две стороны, сохраняющие данные, могут обмениваться данными друг с другом, чтобы получать данные, требуемые им самим.
Чтобы сделать удобным для обеих сторон обмена данными находить подходящий объект обмена данными, возникла платформа обмена данными. Платформа обмена данными может показывать информацию обмена данными, выпускаемую держателем данных, так что информация может быть легко найдена потребителем данных. В то же самое время в процессе обмена данными, платформа обмена данными, в качестве промежуточного звена, может принимать данные от держателя данных и затем отправлять данные потребителю данных. При таком способе, возможно, что платформа обмена данными использует данные, обмениваемые между обеими сторонами, для других целей или изменяет данные без авторизации до отправки данных на приемник, вызывая ущерб интересов сторон обмена данными. То есть, в существующем процессе обмена данными, безопасность данных является относительно низкой.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящей заявки обеспечивают способ отправки данных для решения проблемы низкой безопасности данных в существующем процессе обмена данными.
Варианты осуществления настоящей заявки реализуют следующее техническое решение:
Обеспечен способ отправки данных, включающий в себя:
запись платформой обмена данными соглашения обмена данными, достигнутого между первым пользователем и вторым пользователем, в блокчейн и сохранение соглашения;
прием платформой обмена данными первого ключа, отправленного первым терминалом и используемого для дешифрования зашифрованных первых данных, причем первый терминал представляет собой терминал, соответствующий первому пользователю; и
отправку, первым терминалом, зашифрованных первых данных на второй терминал, причем второй терминал представляет собой терминал, соответствующий второму пользователю;
отправку платформой обмена данными первого ключа на второй терминал; и
дешифрование, вторым терминалом, принятых зашифрованных первых данных на основе первого ключа, чтобы получить первые данные.
Варианты осуществления настоящей заявки дополнительно обеспечивают способ отправки данных для решения проблемы низкой безопасности данных в существующем процессе обмена данными.
Варианты осуществления настоящей заявки реализуют следующее техническое решение:
Обеспечен способ отправки данных, включающий в себя:
запись платформой обмена данными соглашения обмена данными, достигнутого между первым пользователем и вторым пользователем, в блокчейн и сохранение соглашения;
прием платформой обмена данными первого ключа, отправленного первым терминалом и используемого для дешифрования зашифрованных первых данных, причем первый терминал представляет собой терминал, соответствующий первому пользователю; и
отправку платформой обмена данными первого ключа на второй терминал, так что второй терминал, после приема первых данных, отправленных первым терминалом, дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные, причем второй терминал представляет собой терминал, соответствующий второму пользователю.
Варианты осуществления настоящей заявки дополнительно обеспечивают способ отправки данных для решения проблемы низкой безопасности данных в существующем процессе обмена данными.
Варианты осуществления настоящей заявки реализуют следующее техническое решение:
Обеспечен способ отправки данных, включающий в себя:
прием платформой обмена данными первого ключа, отправленного первым терминалом и используемого для дешифрования зашифрованных первых данных, причем первый терминал представляет собой терминал, соответствующий первому пользователю; и
отправку платформой обмена данными первого ключа на второй терминал, так что второй терминал, после приема первых данных, отправленных первым терминалом, дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные, причем второй терминал представляет собой терминал, соответствующий второму пользователю.
Варианты осуществления настоящей заявки дополнительно обеспечивают устройство отправки данных для решения проблемы низкой безопасности данных в существующем процессе обмена данными.
Варианты осуществления настоящей заявки реализуют следующее техническое решение:
Обеспечено устройство отправки данных, включающее в себя:
блок записи, сконфигурированный, чтобы записывать соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, в блокчейн и сохранять соглашение;
первый блок приема, сконфигурированный, чтобы принимать первый ключ, отправленный первым терминалом и используемый для дешифрования зашифрованных первых данных, причем первый терминал представляет собой терминал, соответствующий первому пользователю; и
первый блок отправки, сконфигурированный, чтобы отправлять первый ключ на второй терминал, так что второй терминал, после приема первых данных, отправленных первым терминалом, дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные, причем второй терминал представляет собой терминал, соответствующий второму пользователю.
По меньшей мере одно из вышеописанных технических решений, реализуемых вариантами осуществления настоящей заявки, может достигать следующих полезных результатов:
Во время обмена данными, платформа обмена данными записывает соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, которые обмениваются данными, в блокчейн. Платформа обмена данными затем принимает первый ключ, отправленный первым терминалом, соответствующим первому пользователю, для дешифрования зашифрованных первых данных. Первый терминал отправляет зашифрованные первые данные на второй терминал, соответствующий второму пользователю. Платформа обмена данными отправляет первый ключ на второй терминал, и второй терминал дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные. При этом платформа обмена данными держится в стороне от обмениваемых первых данных в процессе обмена данными, тем самым избегается риск, что первые данные могут использоваться платформой обмена данными для других целей, усиливается безопасность данных в процессе обмена данными и одновременно платформы обмена данными.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прилагаемые чертежи, описанные в настоящем документе, используются, чтобы обеспечить дополнительное понимание настоящей заявки и составляют часть настоящей заявки. Примерные варианты осуществления настоящей заявки и их иллюстрации используются, чтобы объяснять настоящую заявку, и не налагают какого–либо ограничения на настоящую заявку. На чертежах:
Фиг. 1 представляет собой блок–схему последовательности операций реализации способа отправки данных в соответствии с вариантом осуществления настоящей заявки;
Фиг. 2 представляет собой схематичную диаграмму сценария реализации способа отправки данных в соответствии с вариантом осуществления настоящей заявки;
Фиг. 3 представляет собой блок–схему последовательности операций реализации способа транзакции данных в соответствии с вариантом осуществления настоящей заявки; и
Фиг. 4 представляет собой конкретную схематичную структурную диаграмму устройства отправки данных в соответствии с вариантом осуществления настоящей заявки.
Фиг. 5 представляет собой блок–схему последовательности операций, иллюстрирующую другой пример реализуемого компьютером способа для безопасных транзакций данных, в соответствии с вариантом осуществления настоящей заявки.
ПОДРОБНОЕ ОПИСАНИЕ
Для того чтобы пояснить задачи, технические решения и преимущества настоящей заявки, технические решения настоящей заявки описываются ясно и полностью посредством конкретных вариантов осуществления настоящей заявки и соответствующих прилагаемых чертежей. Очевидно, описанные варианты осуществления представляют собой только некоторые варианты осуществления, а не все варианты осуществления настоящей заявки. На основе вариантов осуществления настоящей заявки, все другие варианты осуществления, полученные специалистами в данной области техники без приложения каких–либо творческих усилий, должны входить в объем защиты настоящей заявки.
Как описано в разделе, относящемся к предшествующему уровню техники, данные, в качестве носителя информации, обычно имеют определенную ценность. В особенности, в эпоху больших данных, большие данные имеют высокую ценность для правительства и организаций, чтобы выполнять различные типы работы. Информация, извлеченная из больших данных, может способствовать правительству и организациям в принятии лучших решений. Например, большие сайты социальных сетей обычно накапливают большое количество пользовательских данных, которые не только записывают персональную информацию идентичности пользователей, но также отображают персональные привычки, образ жизни, персональные отношения пользователя и другую информацию до некоторой степени. Информация, содержащаяся в данных, имеет высокую потребительную ценность для выполнения последующей предпринимательской деятельности, и ее потребительная ценность, например, может также способствовать маркетинговым компаниям в точной рассылке рекламных объявлений пользователям.
Чтобы обеспечить полное использование ценности данных, держатели данных могут обмениваться данными друг с другом, чтобы извлекать ценную информацию из обмениваемых данных, тем самым продвигая развитие их собственного бизнеса. Таким образом, чтобы сделать удобным для потребителей данных самостоятельный поиск полезных данных, обе стороны обмена данными могут обмениваться данными через платформу обмена данными.
Однако, поскольку данные являются воспроизводимыми, владение данными является не таким ясным, как владение реальным объектом. Когда реальный объект переносится от стороны A к стороне B, сторона A теряет владение реальным объектом. Однако когда данные переносятся от одной стороны к другой, если данные проходят через третью сторону в этом процессе, третья сторона может скопировать данные, тем самым завладевая данными. Это может наносить ущерб интересам обеих сторон обмена данными.
Платформа обмена данными может играть роль не только сопоставления обмениваемых данных между обеими сторонами, но также роль поручителя (гаранта), т.е., гарантируя интересы обеих сторон в процессе обмена данными. В существующем процессе обмена данными, чтобы предотвратить ситуацию, что после того как одна сторона обмена данными отправляет данные, другая сторона не отправляет свои собственные данные, платформа обмена данными может сначала получить данные обеих сторон обмена данными и затем отправить отдельно данные на обе стороны обмена данными, тем самым препятствуя любой стороне нарушить обещание. При таком способе, платформа обмена данными может иметь возможность использовать данные для других целей. Это приведет к низкой безопасности данных во время обмена. Чтобы решить эту проблему, настоящая заявка обеспечивает способ отправки данных. Способ отправки данных, обеспеченный в настоящей заявке, может исполняться платформой обмена данными, и платформа обмена данными может представлять собой программное обеспечение, аппаратные средства или комбинацию программного обеспечения и аппаратных средств для реализации этого способа.
Далее, техническое решение, обеспеченное в каждом варианте осуществления настоящей заявки, описано подробно со ссылкой на прилагаемые чертежи.
Вариант осуществления 1
Чтобы решить проблему низкой безопасности данных в существующем процессе обмена данными, Вариант осуществления 1 настоящей заявки обеспечивает способ отправки данных. В этом варианте осуществления настоящей заявки, для простоты описания, обе стороны обмена данными называются первым пользователем и вторым пользователем. Первый пользователь и второй пользователь могут представлять собой любую организацию или отдельного человека. Первый пользователь и второй пользователь здесь используются для различения обеих сторон транзакции данных и не должны пониматься как ограничение обеих сторон транзакции данных в настоящей заявке.
Обе стороны обмена данными во время обмена данными могут исполнять некоторые операции с использованием устройств терминалов. Для простоты описания, терминал, соответствующий операции, исполняемой первым пользователем, называется первым терминалом, и терминал, соответствующий операции, исполняемой вторым пользователем, называется вторым терминалом. Следует отметить, что в полном процессе обмена данными, один и тот же пользователь может использовать один и тот же терминал и может также использовать разные терминалы. То есть, первый терминал, упомянутый в каждом процессе в варианте осуществления настоящей заявки, может представлять собой разные терминалы, и второй терминал может также представлять собой разные терминалы. Терминал здесь, например, может представлять собой персональный компьютер, сервер, мобильный терминал или другие вычислительные устройства, что не ограничено в настоящей заявке.
Во время обмена данными обе участвующие стороны обмена данными часто достигают соглашения обмена данными перед обменом данными. Соглашение обмена данными здесь относится к соглашению о деталях обмена данными, достигнутому обеими сторонами обмена данными перед обменом данными. Соглашение обмена данными включает в себя положения, обусловленные обеими сторонами обмена данными, чтобы определить их соответственные права и обязанности, и положения соблюдаются обеими сторонами.
Когда соглашение обмена данными достигнуто, первый пользователь может выпустить информацию данных на платформе обмена данными через первый терминал. После приема информации данных, выпущенной первым терминалом, платформа обмена данными может затем опубликовать информацию данных. Таким образом, второй пользователь, который заинтересован в информации данных, после просмотра информации данных, может отправить запрос заказа на информацию данных на платформу обмена данными через второй терминал. Платформа обмена данными принимает запрос заказа второго терминала на опубликованную информацию данных и отправляет запрос на первый терминал. После того, как первый терминал выполняет подтверждение, платформа обмена данными может принять информацию подтверждения, отправленную первым терминалом, для запроса заказа, тем самым достигая соглашения обмена данными.
Описанное выше кратко описывает процесс достижения соглашения. В действительных применениях обе стороны обмена данными могут определять детали соглашения через повторяемые переговоры. Соглашение обмена данными может конкретно включать в себя информацию идентичности обеих сторон обмена данными, информацию свойства (признака) обмениваемых данных, спецификации использования данных и штрафные санкции при нарушении соглашения, которые соблюдаются обеими сторонами, и другую информацию. При таком способе, после приема данных, приемник может предпринимать соответствующие меры на основе соглашения при обнаружении, что данные не согласуются с описанием в соглашении.
В соглашении информация свойства данных, обмениваемых между обеими сторонами, может включать в себя по меньшей мере одно из следующего: дайджест сообщения для верификации целостности данных и основную информацию для суммирования конкретного содержания данных. Для первых данных, информация свойства первых данных тогда включает в себя по меньшей мере одно из следующего: дайджест сообщения для верификации целостности первых данных, и основную информация суммирования конкретного содержания первых данных.
Дайджест сообщения представляет собой значение фиксированной длины, уникально соответствующее сообщению или документу, значение определяется на основе одностороннего хэш–алгоритма. Таким образом, когда данные, подлежащие обмену, модифицированы, дайджест сообщения данных может также изменяться. Обычно используемые односторонние хэш–алгоритмы включают в себя: алгоритм 5 дайджеста сообщения (MD5), безопасный хэш–алгоритм (SHA), код аутентификации сообщения (MAC) и так далее.
На основе дайджеста сообщения первых данных, содержащегося в соглашении, после приема зашифрованных данных, второй пользователь может выполнить проверку целостности на зашифрованных данных, чтобы вынести суждение, были ли принятые данные модифицированы. При этом значение проверки целостности может также стать основой для использования в будущих спорах между обеими сторонами обмена данными.
Основная информация для суммирования конкретного содержания первых данных может представлять собой, например, тип данных, которые должны быть включены в первые данные, или некоторые конкретные условия, которым данные в первых данных должны удовлетворять, или результаты, которые могут быть достигнуты данными в первых данных в настоящей заявке, и так далее. На основе этой информации, второй терминал может проверить конкретное содержание первых данных, таким образом предотвращая введение в заблуждение второго пользователя и избегая потерь в своих собственных интересах.
Выше описан процесс достижения соглашения обмена данными обеими сторонами обмена данными перед отправкой данных. Процесс отправки данных обеими сторонами обмена данными в настоящей заявке, то есть, способ отправки данных, обеспеченный в настоящей заявке, будет представлен подробно ниже. Блок–схема последовательности операций для реализации способа показана на фиг. 1. Способ включает в себя следующие этапы:
Этап 101: Платформа обмена данными записывает соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, в блокчейн и сохраняет соглашение.
В эпоху информационных технологий, соглашение может также храниться в носителе хранения вычислительного устройства в виде данных, и данные, хранящиеся в носителе хранения, могут испытывать риск модифицирования. Чтобы препятствовать обеим сторонам обмена данными модифицировать соглашение без авторизации и усилить безопасность данных соглашения, платформа обмена данными может использоваться в качестве третьей стороны, чтобы сохранить соглашение.
Однако, если соглашение хранится платформой обмена данными, будет существовать риск того, что платформа обмена данными может модифицировать соглашение. Если платформа обмена данными вступает в сговор с одной стороной обмена данными, чтобы модифицировать соглашение, интересам другой стороны будет нанесен ущерб. Чтобы дополнительно усилить безопасность данных соглашения и усилить достоверность платформы обмена данными, во время сохранения соглашения, технология блокчейна может использоваться для сохранения соглашения обмена данными, достигнутого между первым пользователем и вторым пользователем.
Технология блокчейна представляет собой децентрализованную, недоверенную, устойчивую к взлому технологию распределенного хранения данных. Структура данных, сохраненных с использованием технологии блокчейна, представляет собой структуру сцепленных данных. Данные в структуре сцепленных данных могут изменяться только по возрастанию. Уже записанные данные будут сохранять исходное состояние и не будут охвачены.
При этом блокчейн следует механизму консенсуса при записи данных. Когда узел записывает данные, записываемые данные могут быть записаны в каждом узле блокчейна только после получения консенсуса большинства узлов в блокчейне. Это значительно уменьшает возможность того, что сохраненные данные представляют собой незаконные данные, таким образом значительно уменьшая вероятность того, что соглашение подверглось взлому.
Механизм консенсуса, используемый в технологии блокчейна, может представлять собой, например, механизм доказательства выполнения работы, механизм подтверждения доли, механизм делегированного подтверждения доли, механизм пула верификации и так далее. Если он предназначен для изменения существующих данных в блокчейне, единственным вариантом является замена исходных данных фальсификацией боковой цепью. Затраты на взлом являются огромными с точки зрения технической сложности, потребления времени и трудоемкости. Почти невозможно достигнуть этого при механизме консенсуса блокчейна.
Посредством приведенного выше анализа можно прийти к заключению, что вариант осуществления настоящей заявки сохраняет соглашение обмена данными посредством технологии блокчейна, что может эффективно избегать возможности взлома соглашения и значительно усиливать безопасность соглашения обмена данными.
Этап 102: Платформа обмена данными принимает первый ключ, отправленный первым терминалом и используемый для дешифрования зашифрованных первых данных.
Первые данные, упомянутые здесь, представляют собой данные, которые первый пользователь, как ожидается, отправит второму пользователю. Таким образом, первый пользователь здесь представляет собой отправителя первых данных, и второй пользователь представляет собой получателя первых данных. Разумеется, в компьютерной области, должно быть ясно специалистам в данной области техники, что так называемая отправка данных между пользователями, в действительных операциях, может представлять собой отправку пользователем данных на терминал другого пользователя через его терминал.
Чтобы предотвратить хищение данных третьей стороной иной, чем обе стороны обмена, первые данные могут быть зашифрованы и затем отправлены на второй терминал. В криптографии, шифрование используется, чтобы скрывать информацию незашифрованного текста, так что информация является нечитаемой при отсутствии ключа дешифрования, тем самым усиливая безопасность при передаче данных.
Данные передаются через платформу взаимодействия данных после шифрования, но это все еще не может полностью предотвратить использования зашифрованных первых данных платформой обмена данными. Например, данные могут быть взломаны платформой обмена данными. Зашифрованные первые данные могут тогда отправляться непосредственно первым терминалом на второй терминал, и платформа обмена данными держится в стороне от обмениваемых данных, таким образом дополнительно усиливая безопасность при передаче данных.
Данные могут быть зашифрованы первым терминалом с использованием множества способов шифрования. Например, первые данные могут быть зашифрованы с использованием алгоритма симметричного шифрования. В этом случае, первый ключ здесь представляет собой ключ, используемый, чтобы зашифровывать первые данные. При таком способе, платформа обмена данными определяет ключ для дешифрования зашифрованных первых данных путем приема ключа, который отправлен первым терминалом и используется для шифрования первых данных. Или первый терминал может также зашифровывать первые данные с использованием асимметричного алгоритма шифрования и зашифровывать первые данные при помощи открытого ключа, отправленного платформой обмена данными. При таком способе, платформе обмена данными требуется только определить частный ключ для дешифрования зашифрованных данных.
Чтобы ограничить обе стороны обмена данными, предпочтительно, чтобы первый ключ отправлялся платформой обмена данными в нужное время вместо непосредственной отправки первым терминалом на второй терминал. То есть, после того как первый терминал зашифровывает первые данные с использованием симметричного алгоритма шифрования, первый ключ, используемый в шифровании, может быть отправлен на платформу обмена данными. После приема ключа, отправленного первым терминалом, платформа обмена данными может отправить ключ на второй терминал путем выполнения этапа 103.
Этап 103: Платформа обмена данными отправляет первый ключ на второй терминал.
При таком способе, второй терминал, после приема первых данных, отправленных первым терминалом, может дешифровать принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные. Второй терминал представляет собой терминал, соответствующий второму пользователю.
Аналогично, при отправке данных на первый терминал, второй терминал может также зашифровать данные с использованием ключа. Здесь, подлежащие обмену данные, хранимые вторым пользователем, называются вторыми данными. После шифрования вторых данных, второй терминал отправляет зашифрованные вторые данные на первый терминал и затем отправляет второй ключ для дешифрования зашифрованных данные на платформу обмена данными. Платформа затем отправляет ключ на первый терминал, так что первый терминал может дешифровать зашифрованные вторые данные с использованием ключа, чтобы получить вторые данные, таким образом реализуя обмен данными между обеими сторонами. В этом процессе, данные, обмениваемые между обеими сторонами, не проходят платформу обмена данными, тем самым усиливая безопасность обмениваемых данных.
Следует отметить, что в варианте осуществления настоящей заявки для простоты описания, данные, хранимые первым пользователем, упоминаются как первые данные, данные, хранимые вторым пользователем, упоминаются как вторые данные, и процесс обмена данными обеими сторонами представляет собой процесс обмена первыми данными и вторыми данными друг с другом. Может быть понятно, что термины "первый" и "второй", используемые в варианте осуществления настоящей заявки, используются для различения разных описанных объектов и не ссылаются на конкретные объекты.
Чтобы дополнительно усилить безопасность данных и предотвратить ущерб интересам любой из сторон, после того, как ключи, отправленные обеими сторонами для зашифрованных данных, приняты, также возможно отправить ключи на обе стороны после того, как информация подтверждения, отправленная обеими сторонами для данных, принята, чтобы предотвратить случай, в котором одна сторона не отправляет ключ после приема данных, что значительно вредит интересам другой стороны. Например, после отправки первого ключа на второй терминал, платформа обмена данными отправляет второй ключ на первый терминал после приема информации подтверждения, отправленной вторым терминалом для первых данных. Информация подтверждения для первых данных указывает, что второй пользователь определяет, что первые данные соответствуют описанию в соглашении, таким образом, эффективно защищая интересы второго пользователя. Аналогично, после приема информации подтверждения, отправленной вторым пользователем для первых данных, платформа обмена данными может также принять информацию подтверждения, отправленную первым терминалом для вторых данных. Информация подтверждения для вторых данных указывает, что первый пользователь определяет, что вторые данные соответствуют описанию в соглашении.
Некоторыми типами данных можно обмениваться через платформу. Данные могут представлять собой, например, данные, в отношении которых пользователю все равно, были ли они получены третьей стороной, или данные, для которых ценность данных не может быть получена через дублирование. Эти типы данных нет необходимости зашифровывать, таким образом, сберегая вычислительные ресурсы и ресурсы хранения. Для простоты описания, данные, которые могут быть обмениваться через платформу, называются третьими данными.
Далее, способ обмена данными, обеспеченный в настоящей заявке, проиллюстрирован подробно с использованием примера, в котором подлежащие обмену данные второго пользователя представляют собой третьи данные, которыми можно обмениваться через платформу обмена данными, и технология для шифрования первых данных, подлежащих обмену, представляет собой технологию симметричного шифрования. Способ включает в себя следующие этапы:
Этап 201: Платформа обмена данными записывает соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, в блокчейн и сохраняет соглашение.
Этап 202: Платформа обмена данными принимает первый ключ, отправленный первым терминалом и используемый для дешифрования зашифрованных первых данных.
Этап 203: Первый терминал отправляет зашифрованные первые данные на второй терминал.
Этап 204: Второй терминал отправляет третьи данные на платформу обмена данными.
Следует отметить, что настоящая заявка не ограничивает последовательность исполнения этапа 202, этапа 203 и этапа 204.
Этап 205: Платформа обмена данными отправляет принятый первый ключ на второй терминал.
Поскольку второй пользователь отправляет третьи данные непосредственно на платформу обмена данными, платформа обмена данными может верифицировать третьи данные и может не отправлять первый ключ на второй терминал при обнаружении, что третьи данные не соответствуют соглашению, достигнутому обеими сторонами, чтобы избежать ущерба интересам первого пользователя. Поэтому, конкретный процесс реализации этого этапа может представлять собой: отправку принятого первого ключа на второй терминал, когда определено, что третьи данные согласуются с соглашением обеих сторон.
Этап 206: Второй терминал дешифрует принятые зашифрованные первые данные в соответствии с принятым первым ключом, чтобы получить первые данные.
Этап 207: Платформа обмена данными отправляет третьи данные на первый терминал.
Для первых данных, полученных вторым пользователем, поскольку платформа держится в стороне от первых данных, платформа не сможет верифицировать их аутентичность. В этом случае, первые данные верифицируются вторым терминалом. Во время верификации, второй терминал может получить информацию свойства первых данных, соглашение по которой было достигнуто обеими сторонами в соглашении транзакции. Конкретно, информация свойства может быть получена из соглашения, хранящегося в блокчейне. Разумеется, когда обе стороны договариваются о соглашении, второй терминал обычно также хранит соглашение локально. Поэтому, второй терминал может также получить информацию свойства из соглашения, сохраненного вторым терминалом. После получения информации свойства первых данных в соглашении, второй терминал может проверить, соответствуют ли полученные первые данные записи в соглашении, в соответствии с полученной информацией свойства.
При таком способе, если второй пользователь обнаруживает, что первые данные не соответствуют исходному соглашению, платформа не может отправлять третьи данные на первый терминал, чтобы избежать ущерба интересам второго пользователя.
Таким образом, третьи данные могут быть отправлены на первый терминал, когда принята инструкция отправки данных, отправленная вторым терминалом. Инструкция отправки данных здесь представляет собой инструкцию для предписания платформе обмена данными отправлять третьи данные первому пользователю. Например, инструкция может представлять собой вышеупомянутую информацию подтверждения для первых данных, указывающую, что третьи данные отправляются на первый терминал только после того, как второй пользователь определяет, что первые данные соответствуют описанию в соглашении.
Однако, если пользователь не отправляет инструкцию отправки данных на платформу, первый пользователь не способен принять третьи данные. Чтобы избежать ущерба интересам первых данных, в некоторых случаях, третьи данные могут также быть отправлены первому пользователю. Например, если первый пользователь все еще не отправляет информацию подтверждения для первых данных после предварительно установленной длительности со времени отправки первого ключа второму пользователю, третьи данные могут быть отправлены первому пользователю в это время.
На основе вышеизложенного, конкретный процесс реализации этапа 207 может представлять собой: отправку третьих данных первому пользователю, когда определено, что предварительно установленное условие удовлетворено. Здесь, время, когда предварительно установленное условие удовлетворено, может быть после того, как принята инструкция отправки данных, отправленная вторым терминалом, или после предварительно установленной длительности с того времени, как ключ отправлен на второй терминал.
До сих пор, реализуется обмен первыми данными и третьими данными между пользователями. Этот способ может предотвратить ситуацию, в которой одна сторона не отправляет данные другой стороне после получения данных, отправленных другой стороной, тем самым защищая интересы обеих сторон обмена данными.
После завершения обмена данными, платформа обмена данными может также записать, что обмен закончен, в результат соглашения обмена данными в блокчейн и сохранить запись для последующего использования.
В варианте осуществления настоящей заявки, состояние передачи зашифрованных данных может также определяться, чтобы предотвратить, что второй пользователь принимает зашифрованные данные, но заявляет, что зашифрованные данные не приняты, и чтобы предотвратить, что первый терминал не отправляет данные на второй терминал, но первый пользователь заявляет, что отправил данные на второй терминал. Зашифрованные данные здесь представляют собой зашифрованные обмениваемые данные, например, вышеупомянутые зашифрованные первые данные и зашифрованные вторые данные. Состояние передачи включает в себя одно из следующего: зашифрованные данные не были переданы, зашифрованные данные передаются, и зашифрованные данные были переданы на второй терминал.
Конкретный способ определить состояние передачи зашифрованных данных может быть следующим: платформа взаимодействия данных получает состояние передачи зашифрованных данных через предопределенную программу контроля. Программа контроля может представлять собой программу, используемую для передачи данных между обеими сторонами обмена данными. Или, конкретный способ определить состояние передачи зашифрованных данных может также представлять собой: прием состояния передачи зашифрованных данных, активно сообщаемого первым терминалом и вторым терминалом.
Зашифрованные данные, отправленные первым терминалом, не проходят платформу обмена данными. Поэтому, если первому терминалу необходимо выполнить обмен данными с множеством разных терминалов, поскольку разные терминалы могут поддерживать разные режимы передачи данных, первому терминалу необходимо разработать разные интерфейсы передачи данных для разных терминалов. Это не только затратит больше человеческих ресурсов, но также займет слишком много ресурсов хранения. Платформа передачи данных может затем составить спецификацию, используемую во время передачи данных, и определить стандартный интерфейс передачи, используемый во время передачи данных. Стандартный интерфейс передачи представляет собой универсальный интерфейс, используемый во время передачи данных между терминалами.
Так как терминал пользователя, выполняющего обмен данными через платформу передачи данных, реализует стандартный интерфейс передачи, терминал может передавать данные на любой терминал, который реализует стандартный интерфейс. В стандартном интерфейсе передачи, определенном платформой передачи данных, например, может быть определена информация, такая как протокол передачи данных во время передачи данных между обеими сторонами обмена данными. Подробности не описаны здесь.
Функция определенного стандартного интерфейса может также включать в себя функцию отправки состояния передачи данных на платформу обмена данными. При таком способе, после окончания отправки зашифрованных данных, платформа взаимодействия данных может определить, что зашифрованные данные были успешно отправлены на второй терминал, и затем выполняется соответствующая операция.
На основе варианта осуществления настоящей заявки, фиг. 2 показывает схематичную диаграмму сценария реализации способа отправки данных. После того, как обе стороны достигают соглашения обмена данными, конкретный процесс передачи, первым терминалом, первых данных на второй терминал является следующим:
Этап 301: Первый терминал зашифровывает первые данные, чтобы получить зашифрованные данные.
Этап 302: Первый терминал отправляет зашифрованные данные на второй терминал через реализованный стандартный интерфейс передачи.
Разумеется, второй терминал также реализует стандартный интерфейс передачи.
Этап 303: Первый терминал отправляет ключ на платформу обмена данными.
Этап 304: Платформа обмена данными отправляет принятый ключ на второй терминал.
Этап 305: Второй терминал дешифрует зашифрованные данные в соответствии с принятым ключом, чтобы получить первые данные.
В способе отправки данных, обеспеченном в варианте осуществления 1 настоящей заявки во время обмена данными платформа обмена данными записывает соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, которые обмениваются данными, в блокчейн. Платформа обмена данными затем принимает первый ключ, отправленный первым терминалом, соответствующим первому пользователю, для дешифрования зашифрованных первых данных. Первый терминал отправляет зашифрованные первые данные на второй терминал, соответствующий второму пользователю. Платформа обмена данными отправляет первый ключ на второй терминал, и второй терминал дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные. Очевидно, что платформа обмена данными держится в стороне от обмениваемых первых данных в процессе обмена данными, тем самым избегая риска, что первые данные могут использоваться платформой обмена данными для других целей, усиливая безопасность данных в процессе обмена данными и одновременно платформы обмена данными.
Следует отметить, что, для простоты описания, реализация способа отправки данных введена с использованием примера, в котором способ данных исполняется платформой обмена данными. Может быть понятно, что способ, исполняемый платформой обмена данными, представляет собой примерную иллюстрацию и не должен пониматься как ограничение на этот способ. Далее, этапы способа, обеспеченного в варианте осуществления 1, могут исполняться одним и тем же устройством, или способ может исполняться разными устройствами. Например, этап 101 и этап 102 могут исполняться устройством 1; в качестве другого примера, этап 101 может исполняться устройством 1, и этап 102 может исполняться устройством 2; и так далее.
Вариант осуществления 2
Принцип изобретения настоящей заявки подробно описан выше на основе варианта осуществления 1. Для лучшего понимания технических свойств, средств и результатов настоящей заявки, способ отправки данных настоящей заявки дополнительно проиллюстрирован ниже, тем самым образуя другой вариант осуществления настоящей заявки.
Процесс обмена данными в варианте осуществления 2 настоящей заявки аналогичен процессу обмена данными в варианте осуществления 1, и для некоторых этапов, которые не представлены в варианте осуществления 2, могут даваться ссылки на связанное описание в варианте осуществления 1. Подробности повторно здесь не описаны.
Перед подробным описанием реализации решения, сначала кратко вводится сценарий реализации решения.
В Интернете, деньги также представлены в форме данных. Поэтому, ценность данных, представляющих деньги, может представлять собой ценность денег, представленных данными. В Интернете, перевод данных, представляющих деньги, обычно реализуется, в действительной операции, путем изменения численных ценностей, идентифицирующих деньги. Например, если 100 юаней переводятся со счета A на счет B, перевод данных действительно соответствует изменениям в численных ценностях, представляющих деньги в счете A и счете B.
Как описано в варианте осуществления 1, ценности данных некоторых типов данных не могут быть получены через дублирование, и такие данные могут передаваться через платформу. Таким образом, в варианте осуществления 2, конкретный процесс реализации способа отправки данных, обеспеченного в настоящей заявке, проиллюстрирован подробно с использованием примера, в котором третьи данные представляют собой данные, представляющие деньги. Для простоты описания, третьи данные для представления денег упоминаются как деньги для краткости в описании далее. Таким образом, процесс обмена данными может пониматься как процесс транзакции данных, первый пользователь в варианте осуществления 1 представляет собой продавца данных, второй пользователь представляет собой покупателя данных, платформа обмена данными представляет собой платформу транзакции данных, которая может обеспечивать услугу транзакции данных для пользователей.
На основе сценария выше, процесс реализации транзакции данных в варианте осуществления 2 показан на фиг. 3, который включает в себя следующие этапы:
Этап 401: Продавец данных выпускает информацию данных в продаже через платформу транзакции данных.
Платформа транзакции данных может поддерживать пользователей, имеющих потребность продажи данных, чтобы выпустить информацию данных для продажи, так что пользователи, имеющие потребность потребления данных, могут найти требуемую информацию в платформе транзакции данных.
Этап 402: Потребитель данных и продавец данных достигают соглашения транзакции данных.
Потребитель данных может сообщить о конкретных деталях транзакции и затем наконец достигнуть соглашения транзакции данных. Функция соглашения транзакции данных аналогична функции соглашения транзакции данных, описанного в варианте осуществления 1, и поэтому не описывается здесь подробно.
Этап 403: Платформа транзакции данных записывает соглашение транзакции данных, достигнутое обеими сторонами, в блокчейн.
Когда соглашение транзакции данных записано в блокчейн, возможность взлома соглашения может быть значительно уменьшена, и безопасность соглашения поэтому усилена.
Этап 404: Потребитель данных платит сумму денег, соглашение о которой было достигнуто в соглашении, платформе.
В Интернете, перевод денег действительно представляет собой перевод данных, представляющих деньги. В действительной операции, он обычно реализуется путем изменения ценностей данных, идентифицирующих деньги на счетах.
Этап 405: Продавец данных зашифровывает данные в продаже, чтобы получить зашифрованные данные, и затем отправляет ключ для шифрования на платформу транзакции данных.
Данные могут быть зашифрованы с использованием технологии симметричного шифрования, так что ключ для шифрования является тем же самым, что и ключ для дешифрования.
Следует отметить, что вариант осуществления настоящей заявки не ограничивает последовательность исполнения этапа 404 и этапа 405.
Этап 406: Продавец данных передает зашифрованные данные на терминал потребителя данных через терминал, который реализует стандартный интерфейс передачи.
Как описано в варианте осуществления 1, стандартный интерфейс передачи здесь представляет собой универсальный интерфейс, определенный платформой обмена данными и используемый во время передачи данных между терминалами. Терминал потребителя данных должен также реализовывать стандартный интерфейс передачи, чтобы принимать данные. При таком способе, когда потребитель данных и продавец данных дополнительно выполняют обмен данными с другими пользователями платформы, нет необходимости разрабатывать другие интерфейсы передачи, таким образом, сберегая человеческие ресурсы и ресурсы хранения.
Этап 407: Платформа транзакции данных определяет, что зашифрованные данные были переданы на терминал потребителя данных.
Конкретный способ для определения того, что зашифрованные данные были переданы на терминал потребителя данных, аналогичен связанному описанию в варианте осуществления 1 и поэтому не описывается здесь подробно.
Этап 408: Платформа транзакции данных отправляет ключ потребителю данных после определения того, что сумма денег, заплаченная потребителем данных, соответствует сумме денег, записанной в соглашении.
Следует отметить, что вариант осуществления настоящей заявки не ограничивает последовательность исполнения этапа 407 и этапа 408.
Этап 409: Потребитель данных дешифрует зашифрованные данные с использованием принятого ключа и верифицирует, соответствуют ли дешифрованные данные описанию в соглашении.
Этап 410: Потребитель данных отправляет инструкцию подтверждения получения на платформу транзакции данных через терминал после определения того, что принятые данные соответствуют описанию в соглашении.
Функция инструкции подтверждения получения аналогична функции второй инструкции отправки данных, описанной в варианте осуществления 1 и поэтому не описывается здесь подробно.
Этап 411: Платформа транзакции данных, после приема инструкции подтверждения получения, переносит сумму денег, заплаченную потребителем данных, на счет продавца данных.
Если продавец данных и потребитель данных впоследствии имеют споры по поводу данных в транзакции, они могут защитить свои права в соответствии с соглашением в блокчейне.
В способе транзакции данных, обеспеченном в варианте осуществления 2 настоящей заявки, платформа транзакции данных принимает ключ, отправленный потребителем и используемый для шифрования данных в продаже, и затем отправляет ключ на терминал потребителя данных после приема денег, заплаченных потребителем данных через терминал. При таком способе, после приема зашифрованных данных, отправленных продавцом данных, потребитель данных может дешифровать зашифрованные данные с использованием ключа, чтобы получить данные, проданные продавцом данных. Таким образом, в процессе транзакции данных, платформа обмена данными держится в стороне от проданных данных, тем самым избегая риска, что проданные данные могут использоваться платформой обмена данными для других целей, и усиливая безопасность данных в процессе транзакции данных.
Вариант осуществления 3
Чтобы решить проблему низкой безопасности данных в существующем процессе обмена данными, вариант осуществления 1 настоящей заявки обеспечивает устройство отправки данных. Схематичная структурная диаграмма устройства отправки данных, как показано на фиг. 4, главным образом включает в себя следующие функциональные блоки:
блок 501 записи, сконфигурированный, чтобы записывать соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, в блокчейн и сохранять соглашение;
первый блок 502 приема, сконфигурированный, чтобы принимать первый ключ, отправленный первым терминалом и используемый для дешифрования зашифрованных первых данных, причем первый терминал представляет собой терминал, соответствующий первому пользователю;
первый блок 503 отправки, сконфигурированный, чтобы отправлять первый ключ на второй терминал, так что второй терминал, после приема первых данных, отправленных первым терминалом, дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные, причем второй терминал представляет собой терминал, соответствующий второму пользователю.
В варианте осуществления настоящей заявки, существует множество других конкретных реализаций для обмена данными. В одной реализации, устройство дополнительно включает в себя третий блок 504 приема, сконфигурированный, чтобы, перед тем, как первый блок 503 отправки отправляет первый ключ на второй терминал, принимать второй ключ, отправленный вторым терминалом и используемый для дешифрования зашифрованных вторых данных; и
третий блок 505 отправки, сконфигурированный, чтобы отправлять второй ключ на первый терминал после того, как первый блок 503 отправки отправляет первый ключ на второй терминал, так что первый терминал, после приема зашифрованных вторых данных, отправленных вторым терминалом, дешифрует принятые зашифрованные вторые данные на основе второго ключа, чтобы получить вторые данные.
Чтобы гарантировать интересы второго пользователя, в одной реализации, устройство дополнительно включает в себя четвертый блок 506 приема, сконфигурированный, чтобы, после того, как первый блок 503 отправки отправляет первый ключ на второй терминал, и перед тем, как третий блок 505 отправки отправляет второй ключ на первый терминал, принимать информацию подтверждения, отправленную вторым терминалом для первых данных, причем информация подтверждения для первых данных указывает, что второй пользователь определяет, что первые данные соответствуют описанию в соглашении.
В реализации, устройство дополнительно включает в себя пятый блок 507 приема, сконфигурированный, чтобы, после того, как четвертый блок 506 приема принимает информацию подтверждения, отправленную вторым терминалом для первых данных, принимать информацию подтверждения, отправленную первым терминалом для вторых данных, причем информация подтверждения для вторых данных указывает, что первый пользователь определяет, что вторые данные соответствуют описанию в соглашении.
В реализации, устройство дополнительно включает в себя блок 508 записи, сконфигурированный, чтобы после того, как пятый блок 507 приема принимает информацию подтверждения, отправленную первым терминалом для вторых данных, записывать, что обмен закончен, в результат соглашения обмена данными в блокчейне и сохранять запись.
Чтобы гарантировать интересы обеих сторон в обмене данными, в реализации, устройство дополнительно включает в себя второй блок 509 приема, сконфигурированный, чтобы, перед тем, как первый блок 503 отправки отправляет первый ключ на второй терминал, принимать третьи данные, отправленные вторым терминалом; и второй блок 510 отправки, сконфигурированный, чтобы, после того, как первый блок 503 отправки отправляет первый ключ на второй терминал, отправлять третьи данные первому пользователю, когда определено, что предварительно установленное условие удовлетворено.
В реализации, определение, что предварительно установленное условие удовлетворено, конкретно включает в себя: прием платформой обмена данными инструкции отправки данных, отправленной вторым терминалом, причем инструкция отправки данных представляет собой инструкцию для предписания платформе обмена данными отправлять третьи данные на первый терминал.
В реализации, соглашение обмена данными включает в себя информацию свойства первых данных.
Информация свойства первых данных включает в себя по меньшей мере одно из следующего: дайджест сообщения для верифицирования целостности первых данных; и основную информацию для суммирования конкретного содержания первых данных.
Чтобы избежать потребления больших человеческих ресурсов в разработке интерфейса, в реализации, зашифрованные первые данные передаются на второй терминал через первый терминал, который реализует стандартный интерфейс передачи. Стандартный интерфейс передачи представляет собой универсальный интерфейс, определенный платформой обмена данными и используемый во время передачи данных между терминалами.
В устройстве отправки данных, обеспеченном в варианте осуществления 3 настоящей заявки во время обмена данными платформа обмена данными записывает соглашение обмена данными, достигнутое между первым пользователем и вторым пользователем, которые обмениваются данными, в блокчейн. Платформа обмена данными затем принимает первый ключ, отправленный первым терминалом, соответствующим первому пользователю, для дешифрования зашифрованных первых данных. Первый терминал отправляет зашифрованные первые данные на второй терминал, соответствующий второму пользователю. Платформа обмена данными отправляет первый ключ на второй терминал, и второй терминал дешифрует принятые зашифрованные первые данные на основе первого ключа, чтобы получить первые данные. Очевидно, что платформа обмена данными держится в стороне от обмениваемых первых данных в процессе обмена данными, тем самым избегая риска, что первые данные могут использоваться платформой обмена данными для других целей, усиливая безопасность данных в процессе обмена данными и одновременно платформы обмена данными.
В 1990–х, улучшение технологии можно ясно различить как улучшение аппаратных средств (например, улучшение структуры схемы, такой как диод, транзистор и переключатель) или улучшение программного обеспечения (улучшение процедуры способа). Однако, с развитием технологий, улучшения множества процедур способа в настоящем могут рассматриваться как прямые улучшения структур схем аппаратных средств. Почти все разработчики программируют улучшенные процедуры способа в схемы аппаратных средств, чтобы получить соответствующие структуры схем аппаратных средств. Поэтому, неуместно полагать, что улучшение процедуры способа не может быть реализовано с использованием модуля объекта аппаратных средств. Например, программируемое логическое устройство (PLD) (например, программируемая вентильная матрица (FPGA)) представляет собой такую интегральную схему, логические функции которой определяются устройствами, запрограммированными пользователем. Разработчики программируют самостоятельно, чтобы "интегрировать" цифровую систему в элемент PLD, без необходимости запрашивать производителя чипа спроектировать и изготовить специальный чип интегральной схемы. Более того, в настоящее время, программирование часто реализуется с использованием программного обеспечения логического компилятора, вместо производства чипа интегральной схемы вручную. Программное обеспечение логического компилятора аналогично компилятору программного обеспечения, используемого для разработки и написания программы, и исходный код до компилирования также должен быть записан с использованием конкретного языка программирования, который называется языком описания аппаратных средств (HDL). Существует множество типов HDL, таких как усовершенствованный язык булевых выражений (ABEL), язык описания аппаратных средств Altera (AHDL), Confluence, язык программирования Корнеллского университета (CUPL), HDCal, язык описания аппаратных средств Java (JHDL), Lava, Lola, MyHDL, PALASM и язык описания аппаратных средств Ruby (RHDL), среди которых язык описания аппаратных средств на высокоскоростных интегральных схемах (VHDL) и Verilog являются наиболее часто используемыми в настоящее время. Специалисты в данной области техники также должны знать, что схема аппаратных средств для реализации логической процедуры способа может быть легко получена путем незначительного логического программирования процедуры способа с использованием вышеуказанных различных языков описания аппаратных средств и программирования ее в интегральную схему.
Контроллер может быть реализован любым подходящим образом. Например, контроллер может быть в форме, например, микропроцессора или процессора и считываемого компьютером носителя, хранящего считываемый компьютером программный код (например, программное обеспечение или прошивку), исполняемый (микро)процессором, логической схемы, переключателя, специализированной интегральной схемы (ASIC), программируемого логического контроллера и встроенного микроконтроллера. Примеры контроллера включают в себя, но без ограничения, следующие микроконтроллеры: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 и Silicone Labs C8051F320. Контроллер памяти может также быть реализован как часть управляющей логики памяти. Специалисты в данной области техники также знают, что контроллер может быть реализован с использованием считываемого компьютером программного кода, и дополнительно этапы способа могут быть логически запрограммированы, чтобы обеспечивать возможность контроллеру реализовывать одну и ту же функцию в форме логической схемы, переключателя, специализированной интегральной схемы, программируемого логического контроллера, встроенного микроконтроллера и тому подобного. Поэтому, этот тип контроллера может рассматриваться как компонент аппаратных средств, и устройства, включенные в него для реализации различных функций, могут также рассматриваться как структуры внутри компонента аппаратных средств. Или, устройства, используемые для реализации различных функций, могут даже рассматриваться как модули программного обеспечения для реализации способа и структуры внутри компонента аппаратных средств.
Система, устройство, модуль или блок, проиллюстрированные в вариантах осуществления выше, могут быть конкретно реализованы с использованием компьютерного чипа или объекта или продукта, имеющего определенную функцию. Обычным устройством реализации является компьютер. Конкретно, компьютер может представлять собой, например, персональный компьютер, ноутбук, сотовый телефон, камерофон, смартфон, персональный цифровой ассистент, медиа–плеер, устройство навигации, устройство электронной почты, игровую консоль, планшетный компьютер, носимое устройство или комбинацию любых из этих устройств.
Для простоты описания, когда устройство описывается, оно разделяется на различные блоки с точки зрения функций для соответственного описания. Разумеется, при реализации настоящей заявки, функции блоков могут быть реализованы в одном и том же или множестве элементов программного обеспечения и/или аппаратных средств.
Специалисты в данной области техники должны понимать, что варианты осуществления настоящего изобретения могут быть обеспечены как способ, система или компьютерный программный продукт. Поэтому, настоящее изобретение может быть реализовано как вариант осуществления полностью в аппаратных средствах, вариант осуществления полностью в программном обеспечении или вариант осуществления, комбинирующий программное обеспечение и аппаратные средства. Более того, настоящее изобретение может представлять собой компьютерный программный продукт, реализованный на одном или нескольких используемых компьютером носителей хранения (включая, но без ограничения, память на магнитном диске, CD–ROM, оптическую память и тому подобное), включая используемый компьютером программный код.
Настоящее изобретение описано со ссылкой на блок–схемы последовательности операций и/или блок–схемы способа, устройства (системы) и компьютерного программного продукта в соответствии с вариантами осуществления настоящего изобретения. Следует понимать, что компьютерная программная инструкция может использоваться для реализации каждого процесса и/или блока в блок–схемах последовательности операций и/или блок–схемах устройства и комбинациях процессов и/или блоков в блок–схемах последовательности операций и/или блок–схемах устройства. Эти компьютерные программные инструкции могут быть обеспечены для универсального компьютера, специализированного компьютера, встроенного процессора или процессора любого другого программируемого устройства обработки данных, чтобы генерировать машину, так что инструкции, исполняемые компьютером или процессором любого другого программируемого устройства обработки данных, генерируют устройство для реализации заданной функции в одном или нескольких процессах в блок–схемах последовательности операций и/или в одном или нескольких блоках в блок–схемах устройства.
Эти компьютерные программные инструкции могут также храниться в считываемой компьютером памяти, которая может предписывать компьютеру или любому другому программируемому устройству обработки данных работать конкретным образом, так что инструкции, хранящиеся в считываемой компьютером памяти, генерируют артефакт, который включает в себя устройство инструкций. Устройство инструкций реализует заданную функцию в одном или нескольких процессах в блок–схемах последовательности операций и/или в одном или нескольких блоках в блок–схемах устройства.
Эти компьютерные программные инструкции могут также загружаться на компьютер или другое программируемое устройство обработки данных, так что последовательность этапов операции выполняются на компьютере или другом программируемом устройстве, тем самым генерируя реализуемую компьютером обработку. Поэтому, инструкции, исполняемые на компьютере или другом программируемом устройстве, обеспечивают этапы для реализации заданной функции в одном или нескольких процессах в блок–схемах последовательности операций и/или в одном или нескольких блоках в блок–схемах устройства.
В обычной конфигурации, вычислительное устройство включает в себя один или несколько универсальных процессоров (CPU), интерфейс ввода/вывода, сетевой интерфейс и память.
Память может включать в себя считываемые компьютером носители, такие как энергозависимая память, память с произвольным доступом (RAM) и/или энергонезависимая память, например, постоянная память (ROM) или флэш–RAM. Память представляет собой пример считываемого компьютером носителя.
Считываемый компьютером носитель включает в себя энергонезависимые и энергозависимые носители наряду со съемными и несъемными носителями и может реализовывать хранение информации посредством любого способа или технологии. Информация может представлять собой считываемую компьютером инструкцию, структуру данных и модуль программы или другие данные. Носитель хранения компьютера включает в себя, например, но без ограничения, память с изменением фазы (PRAM), статическую память с произвольным доступом (SRAM), динамическую память с произвольным доступом (DRAM), другие типы RAM, ROM, электрически стираемую программируемую постоянную память (EEPROM), флэш–память или другие технологии памяти, постоянную память на компакт–диске (CD–ROM), цифровой универсальный диск (DVD) или другие оптические хранилища, кассетную магнитную ленту, хранилище на магнитной ленте/магнитном диске или другие магнитные устройства хранения или любой другой носитель, не относящийся к среде передачи, и может использоваться, чтобы хранить информацию, доступ к которой осуществляется вычислительным устройством. В соответствии с определением настоящего текста, считываемый компьютером носитель не включает в себя переходные носители, такие как модулированный сигнал данных и несущая.
Следует дополнительно отметить, что термины "включать в себя", "содержать" или другие их вариации предназначены, чтобы охватывать не исключающее включение, так что процесс, способ, продукт или устройство, включающее в себя последовательность элементов, не только включает в себя эти элементы, но также включает в себя другие элементы, не перечисленные явно, или дополнительно включает в себя присущие элементы процесса, способа, продукта или устройства. В случае без каких–либо дополнительных ограничений, элемент, определенный посредством "включающий в себя …", не исключает того, что процесс, способ, продукт или устройство, включающие в себя этот элемент, дополнительно имеет другие идентичные элементы.
Настоящая заявка может быть описана в общем контексте исполняемой компьютером инструкции, исполняемой компьютером, например, программным модулем. В общем, программный модуль включает в себя подпрограмму, программу, объект, компоновку, структуру данных и тому подобное, используемые для исполнения конкретной задачи или реализации специального абстрактного типа данных. Настоящая заявка может также быть реализована в распределенных вычислительных средах, и в распределенных компьютерных средах задача исполняется с использованием удаленных устройств обработки, соединенных через сеть связи. В распределенной компьютерной среде, программный модуль может быть расположен в локальных или удаленных компьютерных носителях хранения, включая устройство хранения.
Варианты осуществления в спецификации описаны постепенным образом, идентичные или аналогичные части вариантов осуществления могут быть получены со ссылкой друг на друга, и каждый вариант осуществления концентрируется на части, отличающейся от других вариантов осуществления. В особенности, вариант осуществления системы в основном аналогичен варианту осуществления способа, поэтому он описывается просто, и для связанных частей, может даваться ссылка на описание частей в варианте осуществления способа.
Описание выше представляет собой только варианты осуществления настоящей заявки и не предназначено ограничивать настоящую заявку. Для специалистов в данной области техники, настоящая заявка может иметь различные модификации и вариации. Любая модификация, эквивалентная замена, усовершенствование или тому подобное, выполненные без отклонения от сущности и принципов настоящей заявки, должно соответствовать объему формулы изобретения настоящей заявки.
Фиг. 5 представляет собой блок–схему последовательности операций, иллюстрирующую другой пример реализуемого компьютером способа 500 для безопасных транзакций данных в соответствии с вариантом осуществления настоящей заявки. Для ясности представления, описание, которое следует далее, в общем описывает способ 500 в контексте других чертежей в настоящем описании. Однако, будет понятно, что способ 500 может выполняться, например, любой системой, средой, программным обеспечением и аппаратными средствами, или комбинацией систем, сред, программного обеспечения и аппаратных средств, по мере необходимости. В некоторых реализациях, различные этапы способа 500 могут применяться параллельно, в комбинации, в циклах или в любом порядке. В некоторых реализациях, способ 500 может включать в себя дополнительные или отличающиеся (или комбинацию того и другого) этапы, не показанные в блок–схеме последовательности операций. В некоторых реализациях, этапы могут также быть опущены из способа 500.
В 510, соглашение обмена данными между первым пользователем и вторым пользователем записывается платформой обмена данными в блокчейн. Соглашение обмена данными ассоциировано с первыми данными. Например, первые данные представляют собой данные, подлежащие переносу от первого пользователя на второго пользователя в соответствии с соглашением обмена данными. В некоторых реализациях, платформа обмена данными хранит соглашение обмена данными. Соглашение обмена данными включает в себя одно или несколько из информации идентичности первого и второго пользователей, информации характеристики обмениваемых данных, спецификаций использования данных, соблюдаемых первым и вторым пользователем, и санкции за нарушение соглашения, которые соблюдаются первым и вторым пользователем, и другую информацию, ассоциированную с обмениваемыми данными.
В некоторых реализациях, перед записью соглашения обмена данными в блокчейн, информация данных, ассоциированная с первыми данными, принимается, платформой обмена данными и от первого устройства, ассоциированного с первым пользователем, для публикации на платформе обмена данными. Информация данных, ассоциированная с первыми данными, затем публикуется платформой обмена данными. Заказ (ордер), ассоциированный с первыми данными, принимается платформой обмена данными и от второго устройства, ассоциированного со вторым пользователем. Заказ, ассоциированный с первыми данными, передается платформой обмена данными на первое устройство. Информация подтверждения для заказа, ассоциированного с первыми данными, принимается платформой обмена данными и от первого устройства. Заказ и информация подтверждения ассоциированы с соглашением обмена данными. В некоторых реализациях, соглашение обмена данными может быть достигнуто с использованием других подходящих способов. От 510, способ 500 переходит к 520.
В 520, первый ключ принимается платформой обмена данными и от первого устройства, ассоциированного с первым пользователем. Первый ключ используется для дешифрования зашифрованных первых данных. Например, первое устройство зашифровывает первые данные, чтобы получить зашифрованные первые данные. От 520, способ 500 переходит к 530.
В 530, принятый первый ключ передается платформой обмена данными на второе устройство, ассоциированное со вторым пользователем. В некоторых реализациях, перед передачей принятого первого ключа, второй ключ принимается платформой обмена данными и от второго устройства, ассоциированного со вторым пользователем. Второй ключ используется для дешифрования зашифрованных вторых данных, и вторые данные ассоциированы с соглашением обмена данными. Например, вторые данные представляют собой данные, подлежащие передаче от второго пользователя к первому пользователю в соответствии с соглашением обмена данными. После передачи принятого первого ключа, принятый второй ключ передается платформой обмена данными на первое устройство, ассоциированное с первым пользователем. Первое устройство дешифрует зашифрованные вторые данные, принятые от второго устройства, на основе второго ключа, чтобы получить вторые данные. От 530, способ 500 переходит к 540.
В 540, зашифрованные первые данные передаются первым устройством на второе устройство, без прохождения через платформу обмена данными. В некоторых реализациях, вместо прохождения зашифрованных первых данных через платформу обмена данными, первое устройство передает зашифрованные первые данные непосредственно на второе устройство, чтобы избежать использования платформой обмена данными зашифрованных первых данных для других целей (например, действий, не определенных в соглашении обмена данными между первым пользователем и вторым пользователем), или произведения неавторизованных изменений с зашифрованными первыми данными до передачи на второе устройство. В некоторых реализациях, зашифрованные первые данные передаются на второе устройство через стандартный интерфейс передачи первого устройства. Стандартный интерфейс передачи представляет собой универсальный интерфейс, определенный платформой обмена данными и используемый для передачи данных между разными устройствами. От 540, способ 500 переходит к 550.
В 550, зашифрованные первые данные дешифруются, вторым устройством, на основе первого ключа, чтобы получить первые данные. В некоторых реализациях, после передачи принятого первого ключа и перед передачей принятого второго ключа, информация подтверждения для первых данных принимается платформой обмена данными и от второго устройства, ассоциированного со вторым пользователем. Информация подтверждения для первых данных указывает, что второй пользователь определяет, что полученные первые данные соответствуют соглашению обмена данными.
В некоторых реализациях, после приема информации подтверждения для первых данных, информация подтверждения для вторых данных принимается платформой обмена данными и от первого устройства, ассоциированного с первым пользователем. Информация подтверждения для вторых данных указывает, что первый пользователь определяет, что полученные вторые данные соответствуют соглашению обмена данными. Запись, указывающая, что обмен данными между первым пользователем и вторым пользователем закончен в соответствии с соглашением обмена данными, записывается платформой обмена данными в блокчейне. Запись сохраняется платформой обмена данными.
В некоторых реализациях, перед передачей принятого первого ключа, третьи данные принимаются платформой обмена данными и от второго устройства, ассоциированного со вторым пользователем. Третьи данные ассоциированы с соглашением обмена данными. Например, третьи данные представляют собой данные, которые могут обмениваться через платформу обмена данными. После передачи принятого первого ключа, принятые третьи данные передаются платформой обмена данными на первое устройство, ассоциированное с первым пользователем, когда предопределенное условие удовлетворено. В некоторых реализациях, предопределенное условие включает в себя то, что платформа обмена данными принимает инструкцию от второго устройства. Инструкция представляет собой инструкцию, которая предписывает платформе обмена данными передавать принятые третьи данные на первое устройство.
В некоторых реализациях, соглашение обмена данными включает в себя информацию характеристики первых данных. Информацию характеристики первых данных получает второе устройство. Информация характеристики первых данных включает в себя по меньшей мере одно из дайджеста сообщений для верификации целостности первых данных и основной информации для суммирования конкретного содержания первых данных. Выполняется определение, вторым устройством, того, соответствуют ли полученные первые данные соглашению обмена данными на основе полученной информации характеристики первых данных. Если определено, что полученные первые данные соответствуют соглашению обмена данными на основе полученной информации характеристики первых данных, второе устройство передает информацию подтверждения для первых данных на платформу обмена данными. Если определено, что полученные первые данные не соответствуют соглашению обмена данными на основе полученной информации характеристики первых данных, второе устройство не будет передавать информацию подтверждения для первых данных на платформу обмена данными. После 550, способ 500 останавливается.
Реализации заявленного предмета и функциональных операций, описанные в настоящей спецификации, могут быть реализованы в цифровой электронной схеме, в осязаемо воплощенном компьютерном программном обеспечении или прошивке, в компьютерных аппаратных средствах, включая структуры, раскрытые в настоящей спецификации, и их структурные эквиваленты, или в комбинациях одного или нескольких из них. Реализации программного обеспечения описанного предмета могут быть осуществлены как одна или несколько компьютерных программ, то есть, один или несколько модулей компьютерных программных инструкций, закодированных на осязаемом, не–временном, считываемом компьютером носителе для исполнения посредством, или для управления работой, компьютера или реализуемой компьютером системы. Альтернативно, или дополнительно, программные инструкции могут быть закодированы в/на искусственно сгенерированном распространяющемся сигнале, например, сгенерированном машиной электрическом, оптическом или электромагнитном сигнале, который сгенерирован, чтобы кодировать информацию для передачи на устройство приемника для исполнения компьютером или реализуемой компьютером системой. Компьютерный носитель хранения может представлять собой считываемое машиной устройство хранения, считываемый машиной субстрат хранения, устройство памяти с произвольным или последовательным доступом или комбинацию компьютерных носителей хранения. Конфигурирование одного или нескольких компьютеров означает, что один или несколько компьютеров имеют установленные аппаратные средства, прошивку или программное обеспечение (или комбинации аппаратных средств, прошивки и программного обеспечения), так что, когда программное обеспечение исполняется одним или несколькими компьютерами, выполняются конкретные вычислительные операции.
Термин “в реальном времени”, “реальное время”, “реального времени”, “реального (быстрого) времени (RFT)”, “в почти (близко) реальном времени (NRT)”, “в квази–реальном времени” или аналогичные термины (как понятно специалисту в данной области техники), означает, что действие и ответ близки по времени, так что человек различает действие и ответ, происходящие по существу одновременно. Например, разница времени для ответа на отображение (или для инициации отображения) данных вслед за действием человека для доступа к данным может быть меньше, чем 1 миллисекунда (мс), меньше, чем 1 секунда (с), или меньше, чем 5 с. Хотя запрошенные данные не требуется отображать (или инициировать для отображения) мгновенно, они отображаются (или инициируются для отображения) без какой–либо преднамеренной задержки, с учетом ограничений обработки описанной вычислительной системы и времени, требуемого, чтобы, например, собрать, точно измерить, проанализировать, обработать, сохранить или передать данные.
Термины “устройство обработки данных”, “компьютер” или “электронное компьютерное устройство” (или эквивалентный термин как понятно специалисту в данной области техники) относятся к аппаратным средствам обработки данных и включают в себя все виды устройств, приборов и машин для обработки данных, включая, в качестве примера, программируемый процессор, компьютер или множество процессоров или компьютеров. Компьютер может также представлять собой или дополнительно включать в себя специализированную логическую схему, например, универсальный процессор (CPU), программируемую вентильную матрицу (FPGA) или специализированную интегральную схему (ASIC). В некоторых реализациях, компьютер или реализуемая компьютером система или специализированная логическая схема (или комбинация компьютера или реализуемой компьютером системы и специализированной логической схемы) может основываться на аппаратных средствах или программном обеспечении (или комбинации на основе аппаратных средств и программного обеспечения). Компьютер может опционально включать в себя код, который создает среду исполнения для компьютерных программ, например, код, который составляет прошивку процессора, стек протоколов, систему администрирования базы данных, операционную систему или комбинацию сред исполнения. Настоящее раскрытие предполагает использование компьютера или реализуемой компьютером системы с операционной системой некоторого типа, например LINUX, UNIX, WINDOWS, MAC OS, ANDROID, IOS, другой операционной системой или комбинацией операционных систем.
Компьютерная программа, которая может также называться или описываться как программа, программное обеспечение, приложение программного обеспечения, блок, модуль, модуль программного обеспечения, скрипт, код или другой компонент, может быть написана на языке программирования любой формы, включая компилированные и интерпретированные языки или декларативные или процедурные языки, и она может быть развернута в любой форме, включая, например, отдельную программу, модуль, компонент или подпрограмму, для использования в вычислительной среде. Компьютерная программа может, но не обязательно, соответствовать файлу в файловой системе. Программа может храниться в части файла, который хранит другие программы или данные, например, один или несколько скриптов, хранящихся в документе на языке разметки, в одном файле, выделенном для рассматриваемой программы, или во множестве координированных файлов, например, файлах, которые хранят один или несколько модулей, подпрограмм или частей кода. Компьютерная программа может быть развернута, чтобы исполняться на одном компьютере или на множестве компьютеров, которые расположены в одном месте или распределены по множеству мест и взаимосвязаны сетью связи.
В то время как части программ, проиллюстрированные на различных чертежах, могут быть проиллюстрированы как индивидуальные компоненты, такие как блоки или модули, они реализуют описанные признаки и функциональность с использованием различных объектов, способов или других процессов, программы могут вместо этого включать в себя ряд подблоков, подмодулей, услуги третьей стороны, компоненты, библиотеки и другие компоненты, в соответствии с требованиями. Напротив, признаки и функциональность различных компонентов могут комбинироваться в единичные компоненты, в соответствии с требованиями. Пороги, используемые, чтобы производить вычислительные определения, могут определяться статически, динамически или как статически, так и динамически.
Описанные способы, процессы или логические потоки представляют один или несколько примеров функциональности, согласованной с настоящим раскрытием, и не предназначены для ограничения раскрытия до описанных или проиллюстрированных реализаций, но должны соответствовать самому широкому объему, согласующемуся с описанными принципами и признаками. Описанные способы, процессы или логические потоки могут выполняться одним или несколькими программируемыми компьютерами, исполняющими одну или несколько компьютерных программ для выполнения функций путем работы на данных ввода и генерирования данных вывода. Способы, процессы или логические потоки могут также выполняться, и компьютеры могут также быть реализованы посредством специализированной логической схемы, например, CPU, FPGA или ASIC.
Компьютеры для исполнения компьютерной программы могут быть основаны на универсальных или специализированных микропроцессорах, обоих или другом типе CPU. В общем, CPU примет инструкции и данные от и запишет в память. Необходимыми элементами компьютера являются CPU, для выполнения или исполнения инструкций, и одно или несколько устройств памяти для хранения инструкций и данных. В общем, компьютер также будет включать в себя или будет оперативно присоединен, чтобы принимать данные и/или переносить данные от/на одно или несколько устройств массовой памяти для хранения данных, например, магнитные, магнитно–оптические или оптические диски. Однако компьютер не обязательно должен иметь такие устройства. Более того, компьютер может быть встроен в другое устройство, например, мобильный телефон, персональный цифровой ассистент (PDA), мобильный аудио– или видео–плеер, игровую консоль, приемник глобальной системы позиционирования (GPS) или портативное устройство хранения памяти.
Не–временные (непереходные) считываемые компьютером носители для хранения компьютерных программных инструкций и данных могут включать в себя все виды постоянной/не–постоянной или энергозависимой/энергозависимой памяти, носителей и устройств памяти, включая в качестве примера полупроводниковые устройства памяти, например, память с произвольным доступом (RAM), постоянную память (ROM), память с фазовым изменением (PRAM), статическую память с произвольным доступом (SRAM), динамическую память с произвольным доступом (DRAM), стираемую программируемую постоянную память (EPROM), электрически стираемую программируемую постоянную память (EEPROM) и устройства флэш–памяти; магнитные устройства, например, магнитные ленты, картриджи, кассеты, внутренние/съемные диски; магнитооптические диски; и оптические устройства памяти, например, цифровой универсальный/видео диск (DVD), компакт–диск (CD)–ROM, DVD+/–R, DVD–RAM, DVD–ROM, DVD высокой четкости/плотности (HD) и BLU–RAY/BLU–RAY DISC (BD) и другие технологии оптической памяти. Память может хранить различные объекты или данные, включая кэши, классы, структуры, приложения, модули, резервные данные, задания, веб–страницы, шаблоны веб–страниц, структуры данных, таблицы баз данных, репозитории, хранящие динамическую информацию или другую подходящую информацию, включая любые параметры, переменные, алгоритмы, инструкции, правила, ограничения или ссылки. Дополнительно, память может включать в себя другие подходящие данные, такие как журналы регистрации, политики, данные безопасности или доступа, или отчетные файлы. Процессор и память могут дополняться специализированной логической схемой или встраиваться в нее.
Чтобы обеспечить взаимодействие с пользователем, реализации заявленного предмета, описанные в настоящей спецификации, могут быть реализованы на компьютере, имеющем устройство отображения, например, электронно–лучевую трубку (CRT), жидкокристаллический дисплей (LCD), светодиодный (LED) или плазменный монитор, для отображения информации пользователю, и клавиатуру и указательное устройство, например, мышь, трекбол или трекпад, при помощи которых пользователь может обеспечивать ввод в компьютер. Ввод может также быть обеспечен в компьютер с использованием сенсорного экрана (тачскрина), такого как поверхность планшетного компьютера с чувствительностью к нажатию, мультитач–экран с использованием емкостного или электрического восприятия, или другой тип тачскрина. Другие типы устройств могут использоваться, чтобы взаимодействовать с пользователем. Например, обратная связь, обеспеченная пользователю, может представлять собой любой вид сенсорной обратной связи (например, визуальной, слышимой, тактильной или комбинации типов обратной связи). Ввод от пользователя может приниматься в любой форме, включая акустический, речевой или тактильный ввод. Кроме того, компьютер может взаимодействовать с пользователем путем отправки документов на и приема документов от клиентского вычислительного устройства, которое используется пользователем (например, путем отправки веб–страниц на веб–браузер на мобильном вычислительном устройстве пользователя в ответ на запросы, принятые от веб–браузера).
Термин “графический пользовательский интерфейс” или “GUI” может использоваться в единственном или множественном числе для описания одного или нескольких графических пользовательских интерфейсов и каждого из отображений конкретного графического пользовательского интерфейса. Поэтому, GUI может представлять любой графический пользовательский интерфейс, включая, но без ограничения, веб–браузер, тачскрин или интерфейс командной строки (CLI), который обрабатывает информацию и эффективно представляет результаты информации пользователю. В общем, GUI может включать в себя ряд элементов пользовательского интерфейса (UI), некоторые или все из которых ассоциированы с веб–браузером, таких как интерактивные поля, прокручиваемые списки и кнопки. Эти и другие элементы UI могут быть связаны с веб–браузером или представлять его функции.
Реализации заявленного предмета, описанные в настоящей спецификации, могут быть реализованы в вычислительной системе, которая включает в себя внутренний компонент, например, в качестве сервера данных, или которая включает в себя промежуточный компонент, например, сервер приложений, или которая включает в себя внешний компонент, например, компьютер клиента, имеющий графический пользовательский интерфейс или веб–браузер, через которые пользователь может взаимодействовать с реализацией предмета, описанного в настоящей спецификации, или любую комбинацию одного или нескольких таких внутренних, промежуточных или внешних компонентов. Компоненты системы могут быть взаимно соединены посредством любой формы среды проводной или беспроводной цифровой передачи данных (или комбинации передачи данных), например, сети связи. Примеры сетей связи включают в себя локальную сеть (LAN), сеть радиодоступа (RAN), городскую сеть (MAN), глобальную сеть (WAN), технологию Общемировой совместимости широкополосного беспроводного доступа (WIMAX), беспроводную локальную сеть (WLAN) с использованием, например, 802.11 a/b/g/n или 802.20 (или комбинации 802.11x и 802.20 или других протоколов, согласующихся с настоящим раскрытием), весь или часть Интернета, другую сеть связи или комбинацию сетей связи. Сеть связи может осуществлять связь, например, с пакетами интернет–протокола (IP), кадрами протокола ретрансляции кадров (frame relay), ячейками (пакетами) режима асинхронной передачи (ATM), голосом, видео, данными или другой информацией между сетевыми узлами.
Вычислительная система может включать в себя клиентов и серверы. Клиент и сервер в общем удалены друг от друга и обычно взаимодействуют через сеть связи. Отношение клиента и сервера возникают на основании компьютерных программ, работающих на соответствующих компьютерах и имеющих отношение клиент–сервер друг к другу.
В то время как настоящая спецификация содержит множество конкретных подробностей реализации, они не должны пониматься как ограничения объема любого принципа изобретения или объема того, что может быть заявлено, а как описания признаков, которые могут быть конкретными для конкретных реализаций конкретных принципов изобретения. Определенные признаки, которые описаны в настоящей спецификации в контексте отдельных реализаций, могут также быть реализованы, в комбинации, в одной реализации. Напротив, различные признаки, которые описаны в контексте одной реализации, могут также быть реализованы во множестве реализаций, отдельно или в любой подкомбинации. Более того, хотя ранее описанные признаки могут быть описаны как действующие в определенных комбинациях и даже первоначально заявлены как таковые, один или несколько признаков из заявленной комбинации может, в некоторых случаях, удаляться из комбинации, и заявленная комбинация может быть направлена на подкомбинацию или вариацию подкомбинации.
Были описаны конкретные реализации заявленного предмета. Другие реализации, изменения и перестановки описанных реализаций находятся в пределах объема следующей формулы изобретения, как будет очевидно специалистам в данной области техники. В то время как операции изображены на чертежах или формуле изобретения в конкретном порядке, это не должно пониматься как требование того, чтобы такие операции выполнялись в конкретном показанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись (некоторые операции могут рассматриваться как опциональные), чтобы достичь желаемых результатов. При определенных обстоятельствах, многозадачность или параллельная обработка (или комбинация многозадачности и параллельной обработки) могут быть предпочтительными и могут выполняться по мере необходимости.
Более того, разделение или интеграция различных системных модулей и компонентов в ранее описанных реализациях не должны пониматься как требующие такого разделения или интеграции во всех реализациях, и следует понимать, что описанные программные компоненты и системы могут в общем интегрироваться вместе в одном программном продукте или компоноваться во множество программных продуктов.
Соответственно, ранее описанные примерные реализации не определяют и не ограничивают настоящее раскрытие. Другие изменения, замены и видоизменения также возможны без отклонения от сущности и объема настоящего раскрытия.
Более того, любая заявленная реализация рассматривается как применимая к по меньшей мере реализуемому компьютером способу; не–временному считываемому компьютером носителю, хранящему считываемые компьютером инструкции для выполнения реализуемого компьютером способа; и компьютерной системе, содержащей компьютерную память, соединенную с возможностью взаимодействия с процессором аппаратных средств, сконфигурированным, чтобы выполнять реализуемый компьютером способ или инструкции, хранящиеся на не–временном считываемом компьютером носителе.