A method for storing a first data object (400. 700), comprising: decomposing, by applying a decomposition function, the first data object (400. 700) into a first fragment (410, 710) associated with a first original record locator and a second fragment (420, 720) associated with a second original record locator, wherein the first original record locator and the second original record locator are a common record locator shared by the first fragment (410, 710) and the second fragment (420, 720), the common record locator being an identifier; obfuscating the first original record locator to generate a first obfuscated record locator and the second original record locator to generate a second obfuscated record locator, wherein the first obfuscated record locator and the second original record locator are unique; encrypting the first fragment (410, 710) using a first encryption key (715, 810, 910) and the second fragment (420, 720) using a second encryption key (725, 815, 915); storing, to at least a first of a plurality of storage locations (140, 150, 160, 170), the first encrypted fragment with the corresponding first obfuscated record locator and the second encrypted fragment with the second obfuscated record locator; and selecting the decomposition function based at least in part on one or more variable storage parameters, wherein the one or more variable storage parameters include at least one of a username, a user passphrase, a current security model, a type of the first data object (400. 700), a size of the first data object (400. 700), one or more security requirements, and one or more performance requirements. decomposing, by applying a decomposition function, the first data object (400. 700) into a first fragment (410, 710) associated with a first original record locator and a second fragment (420, 720) associated with a second original record locator, wherein the first original record locator and the second original record locator are a common record locator shared by the first fragment (410, 710) and the second fragment (420, 720), the common record locator being an identifier; obfuscating the first original record locator to generate a first obfuscated record locator and the second original record locator to generate a second obfuscated record locator, wherein the first obfuscated record locator and the second original record locator are unique; encrypting the first fragment (410, 710) using a first encryption key (715, 810, 910) and the second fragment (420, 720) using a second encryption key (725, 815, 915); storing, to at least a first of a plurality of storage locations (140, 150, 160, 170), the first encrypted fragment with the corresponding first obfuscated record locator and the second encrypted fragment with the second obfuscated record locator; and selecting the decomposition function based at least in part on one or more variable storage parameters, wherein the one or more variable storage parameters include at least one of a username, a user passphrase, a current security model, a type of the first data object (400. 700), a size of the first data object (400. 700), one or more security requirements, and one or more performance requirements.